在if语句之后Python不返回任何内容

时间:2015-01-29 19:52:59

标签: python python-3.x

我需要一些指导,说明为什么在运行程序后shell中没有打印任何内容。 这是我的代码:

def numbersize1(x):
    """returns the string 'Negative!' if the number is less than zero, 'Small!' if the number is at least zero but less than 10, 'Medium!' if the number is at least 10 but less than 100, and 'Large!' if the number is greater than or equal to 100.

    Number -> str"""
    if x<0:
        return str('Negative!')
    if x==0 and x<10:
        return str('Small!')
    if x==10 and x<100:
        return str('Medium!')
    if x==100 and x>100:
        return str('Large!')

正如我之前所说,当我运行脚本时,shell中没有任何内容。换句话说,如果我输入&#39; 1,&#39;字符串&#39;小!&#39;应该出现,而且它没有。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:5)

如果你这样写:

if x==0 and x<10:

您说x等于零小于10.如果x不等于零,则if赢了&# 39; t匹配。

同样适用于所有其他人。看看他们说了什么,并考虑他们将要做什么。

您不必将字符串转换为字符串,因此您可以将其简化为:

if x<0:
    return 'Negative!'
if x<10:
    return 'Small!'
if x<100:
    return 'Medium!'
return 'Large!'

答案 1 :(得分:4)

你的条件都不好

if x==0 and x<10:

应该是

if x>0 and x<10:

if x==10 and x<100: - &gt; if x>10 and x<100:

if x==100 and x>100: - &gt; if x>100:

最好的方法是

if x<0:
    return ('Negative!')
elif 0<=x<10:
    return ('Small!')
elif 10<=x<100:
    return ('Medium!')
elif x>=100:
    return ('Large!')

答案 2 :(得分:1)

如果忽略不正确的条件,您的程序不会输出任何内容,因为您没有告诉它。 return未输出到控制台窗口,它返回一个值。将return的所有出现替换为{-1}用于Python-2.x或使用print函数用于python-3.x