Python 很难让我的代码正确运行

Python 很难让我的代码正确运行,python,Python,这里的初学者程序员正在使用Python,我目前遇到了一个bug 我试图编写一个函数,当用户输入一个数字时,如果数字输入为5,机器将返回True。如果输入的数字是任何其他数字,它将返回为无 目前,当我输入5时,我将得到True,后面是None。如果我输入任何其他数字,我将得到None,后面再加None。有人有什么想法吗 代码如下: x=int(输入('输入一个数字:')) def为五(x): 如果x==5: 打印(真) 其他: 打印(无) 打印(是五(x)) 第一个值来自循环,第二个值“None”

这里的初学者程序员正在使用Python,我目前遇到了一个bug

我试图编写一个函数,当用户输入一个数字时,如果数字输入为5,机器将返回True。如果输入的数字是任何其他数字,它将返回为无

目前,当我输入5时,我将得到True,后面是None。如果我输入任何其他数字,我将得到None,后面再加None。有人有什么想法吗

代码如下:

x=int(输入('输入一个数字:'))
def为五(x):
如果x==5:
打印(真)
其他:
打印(无)
打印(是五(x))

第一个值来自循环,第二个值“None”来自打印函数,因为您没有返回任何内容

您可以在不使用print语句的情况下调用函数:

is_it_five (x)
也可以从函数返回并打印

x = int(input('Enter a number: '))

def is_it_five (x):
    if x == 5:
        return True
    else:
        return None

print(is_it_five (x))

第一个值来自循环,第二个值“None”来自打印函数,因为您没有返回任何内容

您可以在不使用print语句的情况下调用函数:

is_it_five (x)
也可以从函数返回并打印

x = int(input('Enter a number: '))

def is_it_five (x):
    if x == 5:
        return True
    else:
        return None

print(is_it_five (x))

您的问题是,您正在打印一个函数,该函数在调用时已经打印了一些内容。替换

打印(是五(x))

仅仅

是五(x)吗


您的问题是,您正在打印一个函数,该函数在调用时已经打印了一些内容。替换

打印(是五(x))

仅仅

是五(x)吗


Python中的函数总是返回一些值。默认情况下,该值为“无”。 所以如果我创建任何随机函数,例如

def get_string(some_string):
    print(some_string)
然后执行它; 获取字符串(“示例”)

输出将是

Example
但是,如果您执行
打印(获取字符串(“示例”)
输出将更改为

Example
None
这是因为

获取字符串(“示例”)

在本例中,当您将其传递到print语句中时,它被视为对象

但是,当您调用函数而不打印它时,您不会打印函数返回的值

在同样的背景下,如果你做了

value = get_string(some_string)

您的字符串将像往常一样被打印出来,但是现在
value
变量将包含
None

Python中的函数总是返回一些值。默认情况下,该值为“无”。 所以如果我创建任何随机函数,例如

def get_string(some_string):
    print(some_string)
然后执行它; 获取字符串(“示例”)

输出将是

Example
但是,如果您执行
打印(获取字符串(“示例”)
输出将更改为

Example
None
这是因为

获取字符串(“示例”)

在本例中,当您将其传递到print语句中时,它被视为对象

但是,当您调用函数而不打印它时,您不会打印函数返回的值

在同样的背景下,如果你做了

value = get_string(some_string)

您的字符串将像往常一样打印,但是现在
value
变量将包含
None

这样使用名称
x
是否会导致错误?这样使用名称
x
是否会导致错误?将参数也命名为
x
不是一个好主意。当进行布尔测试时,只返回布尔值的结果测验使用
if:return True
else:return False
return
相比是完全多余的。将参数也命名为
x
不是一个好主意。进行布尔测试时,只需返回布尔测试的结果。使用
if:return True
else:return False
return
相比是完全冗余的。