用户输入的三角形边和程序(想想Python练习5-4-2)

用户输入的三角形边和程序(想想Python练习5-4-2),python,Python,我试图解决Think Python的练习5-4-2,该练习要求编写一个程序,提示用户输入三根棍子的大小,以便计算它们是否可以组成一个三角形。规则是,如果三根棍子中的任何一根长度大于另外两条的总和,则不能形成三角形 这是我的密码。问题是它总是返回“no triangle”(我尝试使用正确的值,如4、5和3,以及应该返回错误的值,如1、2和12),并且它总是指示“None”(好像我没有使用“return”): 提前感谢您的帮助!。。。Norpa您没有正确地将xy和z转换为整数,从而将输入的字符串与进

我试图解决Think Python的练习5-4-2,该练习要求编写一个程序,提示用户输入三根棍子的大小,以便计算它们是否可以组成一个三角形。规则是,如果三根棍子中的任何一根长度大于另外两条的总和,则不能形成三角形

这是我的密码。问题是它总是返回“no triangle”(我尝试使用正确的值,如4、5和3,以及应该返回错误的值,如1、2和12),并且它总是指示“None”(好像我没有使用“return”):


提前感谢您的帮助!。。。Norpa

您没有正确地将
x
y
z
转换为整数,从而将输入的字符串
进行比较

改变

 int(x)

y
z
执行相同的操作。
这里的问题是您忘记将
int(x)
的返回值赋给变量
x
,因此
int(x)
没有任何有意义的效果。

这里的问题是您没有将
int cast
重新赋回x、y和z。因此,它们被视为字符串,在上一次比较中,结果是
(x+y)=34
(作为字符串),比较结果为真

因此,所有提示部分应如下所示:

prompt1 = 'Input firt stick length for your triangle please...'
x = raw_input(prompt1)
x = int(x)
或:


构造函数时,可以将其设置为整数

def是_三角形(a、b、c):

这是考虑到范围仅限于您的练习。您可以通过将其设置为动态,将用户输入限制为仅为整数(在提示符中),从而将其提升到一个小的高级级别。希望你能做到这一点,一旦你移动到高级用户。祝你好运

 x = int(x)
prompt1 = 'Input firt stick length for your triangle please...'
x = raw_input(prompt1)
x = int(x)
prompt1 = 'Input firt stick length for your triangle please...'
x = int(raw_input(prompt1))
if (int(a)>int(b+c)) or (int(b)>int(c+a)) or (int(c)>int(a+b)):

    print("No")

else:

    print("Yes")