关于在Python中返回函数的值

时间:2015-05-19 11:27:56

标签: function python-3.x

我只是检查这个简单的代码,以便在另一个程序中实现。但它不起作用,我不明白。使用python 3我做

x = input("")
y = input("")
def f(y,x):
    if y == 0 and x != 0:
        y += 1
        return y
    elif x == 0 and y != 0:
        x += 1
        return x
print(f(y,x))

我输入“0”和“1”但得到它打印None

我不明白这一部分,如果我输入“0”而“1”不应该输出为1

为什么没有显示?这个程序有问题吗?如果是这样,怎么纠正? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您的上一个条件也可能是错误的,这意味着elif块将不会执行。在python中,默认返回值如果到达函数的末尾而没有返回返回,则为None

例如,如果您输入y=2x=1if条件和elif条件都不匹配,那么您只需到达函数的末尾,当你到达那里时,python返回None

此外,在python 3 input中总是返回一个字符串,因此您需要将该值转换为int(或类似)的数字,或者与字符串进行比较。例如,

x = int(input(""))
y = int(input(""))
def f(y,x):
    if y == 0 and x != 0:
        y += 1
        return y
    elif x == 0 and y != 0:
        x += 1
        return x
print(f(y,x))

虽然该代码没有进行任何错误检查,但如果有人输入的值无法转换为int,则会抛出异常