【问题标题】:How do i add numbers to variables?如何将数字添加到变量?
【发布时间】:2022-11-23 20:43:18
【问题描述】:

所以,我一直在尝试构建一个 python 数字猜谜游戏。我是新手,我不知道如何将 +1 添加到我的机会变量中。我已经像这里一样尝试过 +=1 但无论如何它总是显示 1 作为输出。

import random

numbers = 1,2,3,4,5,6,7,8,9,10 
user = None
hidden = random.choice(numbers)

print("Welcome to volty's's number guessing game!")
def game():
  chance = 0
  user = int(input("choose a number from 1 to 10: "))
  if user > hidden:
    print ("ur number is more than the hidden number")
    game()
    chance += 1
  elif user < hidden: 
   print ("ur number is less than the hudden number")
   game()
   chance = +1
  elif user == hidden:
    print (" u guessed the hidden number!")
    print ("the hidden number was:",hidden)
    print (f"u guessed it in {chance +1} step {'s' if chance > 1 else ' '}")
  
game()

这就是代码。

【问题讨论】:

  • 你在哪里:chance += 1 这将增加你的变量。但是,您还有其他几个问题会破坏这种效果。

标签: python android python-3.x


【解决方案1】:

这里的大问题是您使用递归的方式。答案很简单: 在递归之前更改变量

import random

numbers = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
user = None
hidden = random.choice(numbers)

print("Welcome to volty's's number guessing game!")


def game(chance):
    user = int(input("choose a number from 1 to 10: "))
    if user > hidden:
        print("ur number is more than the hidden number")
        chance += 1
        game(chance)
    elif user < hidden:
        print("ur number is less than the hudden number")
        chance += 1
        game(chance)
    elif user == hidden:
        print(" u guessed the hidden number!")
        print("the hidden number was:", hidden)
        print(f"u guessed it in {chance + 1} step {'s' if chance > 1 else ' '}")


game(0)

查看有关递归的教程

【讨论】:

    【解决方案2】:

    这与 Noah 的回答非常相似,但您也可以在递归调用该函数时直接增加机会:

    import random
    
    numbers = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    user = None
    hidden = random.choice(numbers)
    print(hidden)
    
    print("Welcome to volty's's number guessing game!")
    
    chance = 0
    
    def game(chance):
        user = int(input("choose a number from 1 to 10: "))
        if user > hidden:
            print("ur number is more than the hidden number")
            game(chance + 1)
            # chance += 1
        elif user < hidden:
            print("ur number is less than the hudden number")
            game(chance + 1)
            # chance += 1
        elif user == hidden:
            print(" u guessed the hidden number!")
            print("the hidden number was:", hidden)
            print(f"u guessed it in {chance + 1} step{'s' if chance > 1 else ' '}")
    
    
    game(chance)
    

    【讨论】:

      【解决方案3】:

      这是因为您不必在每次失败时都重新调用函数“game()”。 理想情况下,您应该创建条件“is_hidden_​​found”,只有当玩家成功找到号码时该条件才为真。 因此,在获胜和“机会”增加之前使用相同的变量。

      import random
      
      print("Welcome to volty's's number guessing game!")
      def game():
        numbers = 1,2,3,4,5,6,7,8,9,10 
        user = None
        hidden = random.choice(numbers) # maybe use random.randint(0, 10)
      
        is_hidden_found = False
        chance = 0
        while is_hidden_found == False:
      
          user = int(input("choose a number from 1 to 10: "))
          if user > hidden:
            print ("ur number is more than the hidden number")
            chance += 1
          elif user < hidden: 
           print ("ur number is less than the hudden number")
           chance += 1
          elif user == hidden:
            is_hidden_found = True
            print (" u guessed the hidden number!")
            print ("the hidden number was:",hidden)
            print (f"u guessed it in {chance +1} step {'s' if chance > 1 else ' '}")
      
      game()
      

      在学习的同时玩得开心;)

      【讨论】:

        【解决方案4】:

        你可以像下面这样尝试

        import random
        
        numbers = 1,2,3,4,5,6,7,8,9,10 
        hidden = random.choice(numbers)
        
        print("Welcome to volty's's number guessing game!")
        
        def game(chance):
          user = int(input("choose a number from 1 to 10: "))
          if user > hidden:
            print ("ur number is more than the hidden number")
            game(chance)
            chance += 1
          elif user < hidden: 
           print ("ur number is less than the hudden number")
           game(chance)
           chance = +1
          elif user == hidden:
            print (" u guessed the hidden number!")
            print ("the hidden number was:",hidden)
            print (f"u guessed it in {chance +1} step {'s' if chance > 1 else ' '}")
          
        
        game(chance=0)
        

        【讨论】:

        • 你试过运行这段代码吗?
        【解决方案5】:

        解决方案:将您“chance = 0”移到函数范围之外开始。

        原因:每次您的代码进入 if 语句时,它都会将机会值重新初始化为 0。

        【讨论】:

        • print 仍然永远不会显示增加的机会......
        猜你喜欢
        • 1970-01-01
        • 2020-12-10
        • 1970-01-01
        • 1970-01-01
        • 2014-08-27
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2015-11-14
        相关资源
        最近更新 更多