Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Programmation
- » devoir maison
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- yoshi
- 03-12-2023 12:56:12
Bpnjour,
@Hans
L'enfer est pavé de bonnes intentions dit-on, ce que tu lui fournis l'aidera-t-elle à avancer dans sa connaissance de Python ?
Non !
C'est pourquoi, ici, on aide les demandeurs d'aide, on ne fait pas le travail à leur place...
Alors, une analyse sur ce que tu proposes :
if n%1 == 5:
result += 1
si n =25, n%1 renvoie 0, si n= 27, n%1 renvoie 0 aussi...
Quel que soit n, n%1 ne renverra jamais 5 : normal !
Dans la division euclidienne de n par 1, le reste devant être strictement inférieur à 1, il ne pourra que valoir 0 !
Le bon test ne peut être que :
if n%10 == 5:
result+=1
Ensuite comment tester le seul chiffre des dizaines ?
1) n, nombre à deux chiffres peut s'écrire ainsi : n=10d+u (d pour dizaines, u pour unités) :
Le "chiffre" d, s'obtient facilement par (n-u)/10...
Mais d'une part, ça, ce sont des maths, et même si Python saurait que (27-7)/10 = 2, en fait pour Python (27-7)/10 = 2.0...
2) D'autre part, cela impose de connaître le chiffre des unités...
En fait, en Python, il existe une division qui donne le quotient entier d'une division : //.
Si tu ne l'as jamais vu, utilise la version ci-dessus au 1)... Ça, au moins, est censé, en maths, être connu depuis la 6e...
Pour ta connaissance personnelle (et tu ne ne connais très probablement pas, donc ne l'utilise pas), en Python existe la fonction divmod().
Exemple avec n=52
n=52 :
d,u=divmod(n,10)
print (d,u)
Et on obtient : 5 2
Enfin n'appelle pas ta fonction foo, ce serait le plus sûr moyen de montrer que tu as copié quelque chose quelque part et ce n'est pas une habitude à prendre : donne lui un nom "parlant" du genre def compte(n):
Je pense que le but de l'exercice est de te faire jouer avec reste % et quotient / (plus précis est : //)...
Pour écrire un petit script, on prend brouillon et stylo et on écrit en français :
def compte(n):
somme =0
extraire chiffre des unités
Si ce chiffre est égal à 5
ajouter 1 à somme
extraire chiffre des dizaines
si ce chiffre ==5
ajouter 1 à somme
renvoyer la somme
Demander un nombre à 2 chiffres avec input()
Petit commentaire : input() donne toujours une chaîne de caractères, donc pour le décompte comme tu as besoin d'un entier, tu es obligée de convertir ta chaine en un entier par int(input())
Envoi du nombre n à ta fonction et récupération du résultat renvoyé :
s = compte(n)
Phrase de conclusion :
print("Le nombre",n,"contient", s,"fois le chiffre 5")
Si tu n'arrives pas à écrire quelque chose qui fonctionne, reviens et montre ce que tu as fait, on expliquera pourquoi et on corrigera.
Courage, ce n'est pas si compliqué que tu pourrais le croire !
Voilà ce que j'obtiens avec 3 essais :
================== RESTART: C:/Python38/Progs_persos/Compte les 5.py ==================
Entrer un nombre à deux chiffres : 65
Le nombre 65 contient 1 fois le chiffre 5
>>>
================== RESTART: C:/Python38/Progs_persos/Compte les 5.py ==================
Entrer un nombre à deux chiffres : 55
Le nombre 55 contient 2 fois le chiffre 5
>>>
=================== RESTART: C:/Python38/Progs_persos/Compte les 5.py =================
Entrer un nombre à deux chiffres : 83
Le nombre 83 contient 0 fois le chiffre 5
@+
- camillebrichet43333
- 03-12-2023 12:24:19
Je vous remercie j'ai réussi pour mon devoir maison de demain
- Rescassol
- 03-12-2023 11:06:35
Bonjour,
s=input("n=")
print(s, 'contient',s.count('5'),'fois le chiffre 5')
Tu sauras, je l'epère, transformer ça en fonction.
Cordialement,
Rescassol
- Hans
- 03-12-2023 10:43:27
def foo(n):
result = 0
if n%1 == 5:
result += 1
if n%10 == 5:
result += 1
return result
print(foo(int(input())))
- camillebrichet43333
- 03-12-2023 10:21:36
sur python*
- camillebrichet43333
- 03-12-2023 10:19:49
Bonjour ,
je suis en seconde et j'ai un devoir maison à faire .
La question est 3)écrire une fonction qui prend un entier n à 2 chiffres en variable en entrée et qui sort le nombre de 5 qu'il contient.
Pouvez vous m'aider svp.







