为什么没有作为输出?

时间:2019-08-02 23:50:50

标签: python python-3.x function return-value

对不起,我知道这是一个非常简单的问题。但是我不明白为什么我的代码返回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))

3 个答案:

答案 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)