Python三角验证程序代码中的错误
我觉得我有一个语义错误。即使我键入一个有效的三元组,如Python三角验证程序代码中的错误,python,geometry,conditional,Python,Geometry,Conditional,我觉得我有一个语义错误。即使我键入一个有效的三元组,如3、4、5,我也会得到不可能的消息。有人能发现我的错误吗?raw\u input返回一个字符串,您应该首先将它们转换为整数。否则,条件: 如果x>0且y>0且z>0:始终为真 所有字符串都大于整数 a = raw_input('side 1 \n') b = raw_input('side 2 \n') c = raw_input('side 3 \n') def triangle_check(x, y, z): if x >
3、4、5
,我也会得到不可能的消息。有人能发现我的错误吗?raw\u input
返回一个字符串,您应该首先将它们转换为整数。否则,条件:
如果x>0且y>0且z>0:
始终为真
所有字符串都大于整数
a = raw_input('side 1 \n')
b = raw_input('side 2 \n')
c = raw_input('side 3 \n')
def triangle_check(x, y, z):
if x > 0 and y > 0 and z > 0:
if z > (x + y) or y > (x + z) or x > (y + z):
print 'impossible'
else:
print 'possible'
triangle_check(a, b, c)
z>(x+y)
:这里实际上是先连接两个字符串,然后将其与另一个字符串z进行比较
修复:应用int()
将这些字符串转换为整数:
>>> "-1" > 0
True
>>> "" > 0
True
现在它工作得很好
演示:
需要将raw\u input
转换为int
,因为raw\u input
返回字符串
谢谢!我的系统刷新得有点晚,我没有看到你的答案。“很抱歉。”我很高兴这有帮助。
a = int(raw_input('side 1 \n'))
b = int(raw_input('side 2 \n'))
c = int(raw_input('side 3 \n'))
$ python so.py
side 1
3
side 2
4
side 3
5
possible
a = raw_input('side 1 \n')
b = raw_input('side 2 \n')
c = raw_input('side 3 \n')
def triangle_check(x, y, z):
if x > 0 and y > 0 and z > 0:
if z > (x + y) or y > (x + z) or x > (y + z):
print 'impossible'
else:
print 'possible'
triangle_check(int(a), int(b), int(c))