对不起,我知道这是一个非常简单的问题。但是我不明白为什么我的代码返回None
def fun(x, y):
''' takes an orderd list and an another number
as input'''
if y in x:
return print("it's in the list")
else:
return print("number is not in the list")
print(fun([2,3,4,5], 5))
答案 0 :(得分:1)
print
是一个在Python中不返回任何值的函数。它只会在屏幕上向用户打印自己的参数。
此处是修改后的代码:
def fun(x, y):
'''Takes an ordered list and another number as input'''
if y in x:
return "it's in the list"
else:
return "number is not in the list"
print(fun([2,3,4,5], 5))
为了更好的可读性,最好在“ short”之后使用“ long”参数。这是我更惯用的版本,只是为了养成更好的习惯:
def contains(item, sequence):
'''Check if item contains in sequence'''
if item in sequence:
return True
else:
return False
print(contains(5, [2,3,4,5]))
答案 1 :(得分:0)
问题是print
函数将字符串发送到STDOUT,但没有返回(它返回None
)。
如果仅删除打印调用,则函数将返回字符串。
答案 2 :(得分:0)
您打印从函数返回的打印件的返回值。
def fun(x, y):
''' takes an orderd list and an another number
as input'''
if y in x:
return print("it's in the list")
else:
return print("number is not in the list")
fun([2,3,4,5], 5)