2
votes

Obtenir faux pour une vraie déclaration

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 commentaires

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/…


5 Réponses :


1
votes

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)


0 commentaires

2
votes

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' 


0 commentaires

1
votes

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)


0 commentaires

0
votes

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.


0 commentaires

4
votes

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


0 commentaires