我在哪里放“回车”有什么区别?它给了我一个不同的答案,我真的很困惑。
正确:
<div [innerHTML]="ques.ans | safeHtml"></div>
和错误的答案:
def grades_sum(scores):
total=0
for i in scores:
total+=i
return total
print (total)
grades_sum(grades)
此外,为什么在此方差函数中包含返回值却给我错误的答案:
def grades_sum(scores):
total=0
for i in scores:
total+=i
return total
print (total)
grades_sum(grades)
这是正确的:
def grades_variance(scores):
average=grades_average(scores)
variance=0
for score in scores:
variance+=(average-score)**2
return variance/len(scores)
print (grades_variance(grades))
答案 0 :(得分:2)
print()
函数在控制台中写入一个字符串,即“ prints”。
return
语句使您的函数退出并将值返回给其调用方。
通常,函数的要点是接受输入并返回某些东西。
当函数准备向其调用者返回值时,使用return
语句。
例如,这是一个同时使用print()
和return
的函数:
def foo():
print("print foo")
return "return from foo"
现在,您可以运行调用foo的代码,如下所示:
if __name__ == '__main__':
print("before foo")
x = foo()
print("after foo")
print("foo returned - " + str(x))
如果将其作为脚本(例如.py
文件)而不是在Python解释器中运行,则会得到以下输出:
before foo
print foo
after foo
foo returned - return from foo
在您的第一个代码段中:
def grades_sum(scores):
total=0
for i in scores:
total+=i #for loop definition
return total #return is after for loop completes.
print (total)
grades_sum(grades)
return
在for
循环完成之后。 for
循环在遇到return
语句之前成功计算了一些,并且代码流返回到函数调用者-因此,它给出正确的输出。
在第二个片段中,return
在for
循环内。这意味着代码流将在第一次迭代本身后返回(&尚未完全计算出总和)-因此,这将产生错误的输出。
您的第3个代码段和第4个代码段示例不正确,因为第3个代码段返回了某些内容,第4个代码根本不返回任何内容-因此无法更正。
答案 1 :(得分:2)
我在哪里放“回车”有什么区别?它给了我一个不同的答案,我真的很困惑。
调用return时,将结束函数并将执行流程返回给调用函数。您放置在return
旁边的值可以视为函数的输出。
下面是一个示例函数,该函数在调用时返回10(给出10的输出):
def my_function():
return 10
如果我像这样在控制台中调用函数:
my_function()
我的输出(返回值)为10
如果我像这样在函数中添加一个print
值:
def my_function():
print ('This should work')
return 10
然后该函数现在将在调用时打印。
但是,如果我将print语句放置在return语句之后,如下所示:
def my_function():
return 10
print ('This should work')
然后,该功能将像以前一样在控制台中输出10,并且不打印任何内容。这是因为该函数在到达print
之前已经结束,因此它永远不会执行。
现在为您的示例:
def grades_sum(scores):
total=0
for i in scores:
total+=i
return total
print (total)
grades_sum(grades)
在此示例中,您已将print
放在函数中的return
之后。由于函数的执行已在此时终止,因此print
不被调用。如果运行该函数,它将为您提供作为输出返回的值(正确的答案,因为您允许该函数在退出前在for循环的每个循环中运行)。因此,如果您在控制台中运行它,您仍然会看到正确的答案。尽管这不是您致电print
的结果。
def grades_sum(scores):
total=0
for i in scores:
total+=i
return total
print (total)
grades_sum(grades)
在此示例中,return放置在for循环内。每个循环都会重复调用for循环内的所有内容。但是,在这种情况下,在循环的第一个周期,您调用return
,正如我已经提到的,它结束了该函数。在这种情况下,它将返回第一个分数的值(因为在返回之前只有一个循环完成了)。同样,print
不会被调用,因为它位于函数内部,并且被放置在函数的退出点之后(return
之后)。
您的最后2个示例没有意义,因为最后一个代码片段将不会打印任何内容(因为该函数没有返回值)。因此,我实际上不确定要从该功能获得什么。也许编辑问题以提供输入数据和所需输出数据的样本。
答案 2 :(得分:1)
return
做什么?” return
语句将值返回给函数的调用者。这是一个简单的示例:
def give_me_a_number():
return 7
现在,give_me_a_number
将始终返回7
,因此我们可以这样做:
x = give_me_a_number()
变量x
现在具有值7
,因为这就是give_me_a_number
返回的值。
return
放在哪里有什么区别?” 放置return
语句的位置很重要,因为语句是顺序执行的,遇到return
时,函数结束。例如:
def my_function():
a = 1
a = 2
return a
a = 3
函数my_function
将返回值2
,因为遇到a
时,它就是return
的值。请注意,a = 3
永远不会执行。
return
循环内的for
)在您的情况下,如果return
语句缩进,则它位于for
块中,并且将在第一次执行for
循环时执行,因此这意味着并非所有{{ 1}}将被循环通过。
scores
如果未缩进,则它在def grades_sum(scores):
total=0
for i in scores:
total+=i
return total
print (total)
循环之外,并且将在所有for
通过scores
循环后执行。
答案 3 :(得分:0)
第一代码段没有任何意义。因为您的退货在打印之前。什么都没打印。
秒没有意义,因为您在第一次循环迭代中返回。结果可能不正确。
我怀疑第四是否打印除None
以外的任何内容。
仅第三代码段返回可打印的内容。