背景:Python的初学者;搜索这个问题,但我找到的答案更多的是关于“什么”而不是“为什么”
我打算做的是:创建一个函数,它接受用户输入的测试分数,并根据等级比例/曲线输出字母等级;下面是代码:
score = input("Please enter test score: ")
score = int(score)
def letter_grade(score):
if 90 <= score <= 100:
print ("A")
elif 80 <= score <= 89:
print ("B")
elif 70 <= score <= 79:
print("C")
elif 60 <= score <= 69:
print("D")
elif score < 60:
print("F")
print (letter_grade(score))
执行时,返回:
Please enter test score: 45
F
None
不打算使用None
。我发现如果我使用(letter_grade(score)
而不是print (letter_grade(score))
,那么None
将不再出现。
我能找到的最接近的答案是“python中的函数不返回任何值,除非明确指示执行其他操作”。但是我在最后一行调用了一个函数,所以我有点困惑。
所以我想我的问题是:是什么导致了None
的消失?我确信这是非常基本的东西,但我找不到任何解释“幕后”机制的答案。所以我很感激有人能帮我解释一下。谢谢您!
在python中,函数的默认返回值是
None
。所以,只要使用:
letter_grade(score) #remove the print
另一种选择是用
return
替换所有打印:现在使用
print()
:没有返回语句(称为void Functions)的函数不会从函数返回任何值。若要返回“无”以外的值,需要在函数中使用return语句。 像None、True和False这样的值不是字符串:它们是python中被保留的特殊值和关键字。 如果我们到达任何函数的末尾,并且没有显式执行任何返回语句,Python将自动返回值None。有关更好的理解,请参见下面的示例。这里stark不返回任何内容,因此输出将为无
以上代码输出为:
这是我的理解。如果没有给返回值,函数将向控制台返回“none”。由于print不是一个值,如果您将print()作为唯一希望函数执行的操作,则在打印语句之后,“none”将返回到控制台。所以,如果函数想要一个值,而您想要一个字符串作为返回的值。。。
将返回语句的值设为如下字符串。。。 下面是一个非常基本的例子:
然后将函数打印到您希望的位置:
结果是:
相关问题 更多 >
编程相关推荐