Chinaunix
标题:
函数测试1+2>3为真
[打印本页]
作者:
gleerat
时间:
2012-10-29 17:00
标题:
函数测试1+2>3为真
本帖最后由 gleerat 于 2012-10-29 17:01 编辑
>>> 1 + 2 > 3
False
复制代码
这是显而易见的。
使用(1, 2, 3)来测试函数,
def isTriangle(x,y,z):
if x+y > z:
return True
elif x+z > y:
return True
elif y+z > x:
return True
else:
return False
复制代码
结果报True。
为啥这样?
作者:
noword2k
时间:
2012-10-29 17:05
某个变量变成浮点数了吧。
作者:
gleerat
时间:
2012-10-29 17:11
回复
2#
noword2k
再次测试:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
def isTriangle(x,y,z):
x = int(x)
y = int(y)
z = int(z)
print x, y, z
if x+y > z:
return True
elif x+z > y:
return True
elif y+z > x:
return True
else:
return False
print isTriangle(sys.argv[1], sys.argv[2], sys.argv[3])
复制代码
这是运行结果
gleerat@lmde ~ $ ./c.py 1 2 3
1 2 3
True
复制代码
作者:
gleerat
时间:
2012-10-29 17:14
本帖最后由 gleerat 于 2012-10-29 17:17 编辑
回复
2#
noword2k
因为1 + 3 > 2确实成立。
囧阿
换成
if x+y > z and x+z > y and y+z > x
就好了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2