我只是检查这个简单的代码,以便在另一个程序中实现。但它不起作用,我不明白。使用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
?
为什么没有显示?这个程序有问题吗?如果是这样,怎么纠正? 提前谢谢!
答案 0 :(得分:0)
您的上一个条件也可能是错误的,这意味着elif块将不会执行。在python中,默认返回值如果到达函数的末尾而没有返回返回,则为None
例如,如果您输入y=2
和x=1
,if
条件和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,则会抛出异常