Écrire une fonction qui prend en charge trois nombres et renvoie le plus grand

Messages postés
1
Date d'inscription
lundi 9 septembre 2019
Statut
Membre
Dernière intervention
9 septembre 2019
- - Dernière réponse : [Dal]
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
- 9 sept. 2019 à 19:13
Bonsoir à tous, j'ai eu un exercice sur laquelle on me demande de : Écrire une fonction qui prend en paramètres trois nombres et renvoie le plus grand des trois nombres.
Je dois le faire sous forme de fonction et j'ai commencer ainsi :

a = int(input("Entrer le premier nombre "))
b = int(input("Entrer le deuxieme nombre "))
c = int(input("Entrer le troisieme nombre "))
a=10
b=20
c=30
if (a>b)and(b>c):
print(a)
if not (b>a)and(b>c):
print(b)

Le problème est que quand j'ai rentrer les trois nombres, il ne se passe plus rien après.
Merci de votre aide.
Afficher la suite 

3 réponses

Messages postés
3464
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
16 septembre 2019
914
0
Merci
Bonjour,

Sans parler des a=10, b=20 et c=30 qui, j'espère, ne sont là que pour les tests, il y a un soucis dans tes if.
- Le premier if suppose que a, b et c sont ordonnés, du coup si a= 30, b=10 et c=20 il est FAUX alors que c'est bien a le plus grand des trois.
- Le deuxième if a un not qui n'a pas de sens ici
- Ton code ne fait rien du tout si c est le plus grand. Et justement, avec c = 30, c'est ce qu'il se passe... Il te manque le cas où c est le plus grand.

Xavier
Commenter la réponse de Reivax962
Messages postés
8529
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 septembre 2019
423
0
Merci
bonjour, habituellement, on fait ainsi pour chercher un maximum:
- on utilise une variable supplémentaire, appelons-là "leplusgrand"
- on commence par supposer que le premier nombre, a est le maximum, donc on assigne a à leplusgrand
- on teste si b est plus grand que le maximum, est, si c'est le cas, on assigne b à le plus grand
- on fait de même avec c
Commenter la réponse de yg_be
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
801
0
Merci
Salut j.reunion,

Juste pour signaler qu'en Python, il serait absurde (en dehors du contexte d'un exercice imposé) de vouloir écrire une telle fonction, puisqu'elle existe déjà dans les fonctions faisant partie du langage :

https://docs.python.org/3/library/functions.html#max

print(max(1, 15, 3))

affiche :

15

Sinon, outre les conseils avisés de mes camarades, je dirais que ton code ne se présente pas sous la forme d'une fonction en Python, et ne répond donc pas au cahier des charges de ce qui t'est demandé.

Pour une présentation simplifiée sur les fonctions dans ce langage, tu peux voir :

https://www.w3schools.com/python/python_functions.asp

Dal
Commenter la réponse de [Dal]