2

我正在尝试创建一个函数,当我调用该函数时,它会提示用户输入一个整数并返回它是偶数还是奇数。我正在尝试这样做,以便我的代码在没有输入任何内容或输入字符串时向控制台打印错误,我已经达到了这样的程度,即如果我输入一个数字它返回数字,“是偶数”如果是偶数和数字,则“不是偶数”

def is_even():
    x = int(raw_input("Enter number"))
    if x % 2 == 0:
        return x, "is an even number"
    else:
        return x, "is not an even number"

print is_even()
4

2 回答 2

6

您应该使用try-except块:

def is_even():
    try:
        x = int(raw_input("Enter an integer: "))  # 'number' != 'integer'
        if x % 2 == 0:
            return x, "is an even number"
        else:
            return x, "is not an even number"
    except ValueError:
        return "Error: You didn't enter an integer!"

ValueError如果输入不能被解析为 line 上的整数,则会引发A x = int(...),在这种情况下,我们会到达底部的 return 语句。

于 2013-04-07T21:38:58.313 回答
1

您可以isdigit()在转换为 int 之前使用该方法:

def is_even():
    x = raw_input("Enter number")
    if x.isdigit():
        if int(x) % 2 == 0:
            return x, "is an even number"
        else:
            return x, "is not an even number"
    else:
        return x, "is not an int"
于 2013-04-07T21:47:24.857 回答