[英]Getting false for a true statement
在下面的代碼中,當a,b和c的輸入分別為2,3和4時,
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((a+b)>c)
輸出是
False
但是如果輸入變為浮動(如下所示),
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)
那么輸出就是
True
請解釋為什么會這樣
您的第一個代碼段的結果是:
('2' + '3') > '4'
# which is equivalent to:
'23' > '4'
在python中,字符串根據它們的unicode值進行比較,當時只有一個字符。 因此,上述比較變為:
ord('2') > ord('4')
# which is equivalent to
50 > 52
這是False
。
另一方面,你的第二個片段是一個簡單的float
比較:
(2.0 + 3.0) > 4.0
這是True
先前:
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'
input
返回一個str
,將其轉換為int
然后比較:
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
如何將輸入string
轉換為int
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)
這給了
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
輸入函數返回字符串值,並且您正在比較字符串值而不是整數。
請通過下面的代碼將輸入值輸入到整數。
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)
要么
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))
input()的返回類型是string。 所以當你做('1'+'2')
作為字符串時,輸出為12
。
所以你需要使用int()
或float()
將字符串轉換為numeric數據類型,這將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.