[英]How to use a variable from main in another function?
在下面的代码中,如何在“结束”函数中使变量“猜测”对我可用。 每当我尝试这个时,我都会收到一个未定义的猜测。 在播放功能中,我返回一个数字,如果我理解正确,那么该数字应该等于“猜测”,出于某种原因,我不明白“猜测”在“结束”中不起作用。
def main():
guesses = play()
play_again = again()
while (play_again == True):
guesses = play()
play_again = again()
total_games = 1
total_games += 1
end()
def end():
print("Results: ")
print("Total: " + print(str(guesses + 1)))
将其作为参数传递
def main():
guesses = play()
play_again = again()
while (play_again == True):
guesses = play()
play_again = again()
total_games = 1
total_games += 1
end(guesses)
def end(guesses):
print("Results: ")
print("Total: " + str(guesses + 1))
将输入作为参数传递,并使用return
将变量作为输出传出允许您控制程序中的数据流,而不是将global
变量用作拐杖。
像这样的东西:
def main():
guesses = play()
play_again = again()
while (play_again == True):
guesses = play()
play_again = again()
total_games = 1
total_games += 1
end(guesses)
def end(guesses):
print("Results: ")
print("Total: {}".format(guesses + 1))
main()
和end()
是两个具有不同作用域的独立函数。 您在函数main()
定义了变量guesses
。 它对end()
不可用,因为定义end()
的范围无法访问guesses
。 尽管在main()
调用了end()
main()
。 函数内部不知道在创建/定义end()
时存在guesses
。
在您尝试执行的过程中需要在两个函数之间传递信息,这凸显了对有关数据流的非常通用的编程范式的需求。 您可以通过使用“参数”或“参数”将信息传递给函数。 这些是在调用函数时定义或设置的变量。
在python中,它们看起来像这样:
def function(argument):
#do something with argument
print (argument)
只需将guesses
作为参数传递给end()
def main():
guesses = play()
play_again = again()
while (play_again == True):
guesses = play()
play_again = again()
total_games = 1
total_games += 1
end(guesses)
def end(guesses):
print("Results: ")
print("Total: " + str(guesses + 1))
或者另一种选择(尽管我不推荐它,除非你知道你在做什么),是在 main.js 中进行全局猜测。
guesses = None
def main():
global guesses
guesses = play()
play_again = again()
while (play_again == True):
guesses = play()
play_again = again()
total_games = 1
total_games += 1
end()
def end():
print("Results: ")
print("Total: " + str(guesses + 1))
请注意,我修复了您的打印报表。 您不需要使用 print 两次来打印您传递给print()
参数的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.