Dans le code ci-dessous, lorsque les entrées de a, b et c sont respectivement 2,3 et 4,
True
La sortie est
a=float(input('Enter length of first side of triangle: ')) b=float(input('Enter length of second side of triangle: ')) c=float(input('Enter length of third side of triangle: ')) print((a+b)>c)
5 Réponses :
Que diriez-vous de convertir l'entrée qui est string
en int
Enter length of first side of triangle: 2 Enter length of second side of triangle: 3 Enter length of third side of triangle: 4 True
Cela donne
a=int(input('Enter length of first side of triangle: ')) b=int(input('Enter length of second side of triangle: ')) c=int(input('Enter length of third side of triangle: ')) print((a+b)>c)
Auparavant :
a=int(input('Enter length of first side of triangle: ')) # 2 b=int(input('Enter length of second side of triangle: ')) # 3 c=int(input('Enter length of third side of triangle: ')) # 4 print((a+b)>c) # (2 + 3) > 4 becoming 5 > 4
input
renvoie un str
, convertissez-le en int
puis comparez:
a=input('Enter length of first side of triangle: ') # '2' b=input('Enter length of second side of triangle: ') # '3' c=input('Enter length of third side of triangle: ') # '4' print((a+b)>c) # ('2' + '3') > '4' becoming '23' > '4'
La fonction d'entrée renvoie la valeur de chaîne et vous comparez les valeurs de chaîne et non les entiers.
Veuillez taper les valeurs d'entrée en entier en suivant le morceau de code.
a=input('Enter length of first side of triangle: ') b=input('Enter length of second side of triangle: ') c=input('Enter length of third side of triangle: ') print((int(a)+int(b))>int(c))
ou
a=int(input('Enter length of first side of triangle: ')) b=int(input('Enter length of second side of triangle: ')) c=int(input('Enter length of third side of triangle: ')) print((a+b)>c)
Le type de retour de input () est une chaîne. Ainsi, lorsque vous utilisez ('1' + '2')
en tant que chaîne, la sortie est 12
.
Vous devez donc convertir la chaîne en type de données numérique en utilisant int ()
ou float ()
et cela fonctionnerait.
Le résultat de votre premier extrait de code est:
(2.0 + 3.0) > 4.0
En python, les chaînes sont comparées en fonction de leur valeur Unicode, un caractère à la fois. Ainsi, la comparaison ci-dessus devient:
ord('2') > ord('4') # which is equivalent to 50 > 52
qui est False
.
D'un autre côté, votre deuxième extrait de code est un simple Comparaison de float
:
('2' + '3') > '4' # which is equivalent to: '23' > '4'
qui est Vrai
Vous comparez
str
dans votre premier extrait de code.Convertissez en
int
puis comparez.input
renvoie une chaîne représentant la séquence de caractères saisis, et non un entier représentant la valeur numérique de l'entrée analysée comme un entier en base 10, même si l'entrée est analysable en tant que telle. Les chaînes+
et>
ne fonctionnent pas par valeur numérique.Copie possible de Comment puis-je lire les entrées sous forme de nombres?
@SrinivasGadepalli Envisagez d'accepter une réponse qui vous a aidé à comprendre: meta.stackexchange.com/questions/5234/…