如何在多个函数中更新变量:强力球游戏

时间:2019-04-18 18:20:42

标签: python global

Python的新手,但是要努力学习并尝试建立良好的实践。希望有人可以为我的python程序指出正确的方向:强力球。它在计算机和用户之间,其中每个人在1-9之间选择3个唯一(不可重复)的数字,在1-3之间选择一个强力球数字。我想添加一个货币变量,该变量将在main()函数之间共享(告诉您“欢迎”,并且“您当前的货币为:(货币)),还希望在compare_winnings()函数之间共享该变量,两个列表,并将总数添加到(money)变量中。

我已经通过google和SO进行了一些研究,发现将我的money变量放在每个函数之外会将其转换为“全局变量”,这似乎很有用,因为它将在2个函数中使用。我还了解到,使用语法'global'是不好的做法。但是,该代码运行良好,并且在compare_winnings()函数中,已更新了金额。当游戏提示您是否想再次玩游戏(另一个功能)时,游戏会重新开始,然后钱又恢复到其原始值。 (从20开始)。

def main():
  print("Each ticket costs $1. Your winnings will be totaled. Current money is",money, "dollars." )
  start = input("\n Are you ready? [y/n]: ")

  if start == "y" or start == "yes":      
    #erased variables for legibility; gathers numbers from computer and user
    compare_winnings(actual, chosen,cpb, comp_cpb,money)
  else: 
    play_again()
def compare_winnings(actual, chosen, cpb, comp_cpb,money):
  counter = 0
  print("You chose: ", chosen) #user-inputted
  print("Ticket was actually: ", actual) #random (actual)

  same_values = set(actual) & set(chosen)
  #print ("These are the values that are the same",same_values)
  if len(same_values) > 0:
    counter += len(same_values)
    print("Numbers correct was : ",counter)

    if counter == 1 and cpb != comp_cpb :
      print("You won $1")
      money += 1
      print("total money is:", money)
      play_again()
def play_again():
  play = input("Do you want to play again? ")
  if play == "y" or play == "yes":
    main()
  else: 
    print("Program will exit. Thanks for playing.")

我希望对money变量进行更新(并保留),直到他们决定停止玩游戏为止。但是,当他们决定再次播放或在main()播放时,似乎重新启动了。

0 个答案:

没有答案