在下面的代码中,当a,b和c的输入分别为2,3和4时,
sample
输出为
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)
请解释为什么会发生
答案 0 :(得分:4)
第一个代码段的结果是:
('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
答案 1 :(得分:2)
以前:
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
答案 2 :(得分:1)
如何将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
答案 3 :(得分:1)
输入函数返回字符串值,并且您正在比较字符串值而不是整数。
请按照以下代码将输入值强制转换为整数。
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))
答案 4 :(得分:0)
input()的返回类型是字符串。因此,当您将('1'+'2')
做为字符串时,输出为12
。
因此,您需要使用int()
或float()
将字符串转换为数字数据类型,然后才能工作。