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

Fermé
j.reunion Messages postés 1 Date d'inscription lundi 9 septembre 2019 Statut Membre Dernière intervention 9 septembre 2019 - 9 sept. 2019 à 15:15
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 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.
A voir également:

3 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 9 sept. 2019 à 19:13
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
2
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
9 sept. 2019 à 16:03
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
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
9 sept. 2019 à 17:39
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
0