【问题标题】:How do I assign a randomly selected letter from a string to a variable in python? [closed]如何将字符串中随机选择的字母分配给python中的变量? [关闭]
【发布时间】:2018-10-28 22:20:06
【问题描述】:

首先,我想说我对编码和 python 不熟悉。我刚刚了解了导入和随机函数。

无论如何,我正在尝试在 python 中创建一个文本游戏,其中一个字母是从某个字符串/单词中随机选择的,用户必须尝试猜测选择了哪个字母。我想我知道如何很好地执行 for 循环,以便它一直持续到选择正确的字母,但我什至不知道如何随机选择字母。

我想要一些入门帮助。谢谢你。

【问题讨论】:

标签: python


【解决方案1】:

由于字符串是 Python 中的序列,您可以使用 random.choice 从列表中选择一个随机元素 - 在您的情况下,是字符串中的一个随机字母。

>>> import random
>>> c = random.choice("abcdefgh")
>>> c
'g'
>>> c = random.choice("abcdefgh")
>>> c
'a'

>>> 来自 REPL 控制台(单独运行 Python),如果您将代码包含在 Python 文件中,则不应包含在内。

【讨论】:

    【解决方案2】:

    有一个library 用于随机化事物。只需像这样使用它:

    import random
    text = "Some text"
    your_variable = random.choice(text)
    

    在这种情况下,您会从序列中获取随机字母,该字母保存在your_variable中。

    【讨论】:

      【解决方案3】:

      由于您对编程比较陌生,所以我想给您一个内容丰富的游戏示例,以澄清一些概念。

      1. 字符串str在Python中被实现为序列(你可以认为一个字符串是一个字符数组)。所以它支持索引s = 'abc'; print(s[1]);显示b
      2. 标准库random 包含一组用于执行随机操作的函数。正如其他答案中提到的那样,函数random.choice 从序列中随机选择一个元素。所以它可以用来从字符串中随机选择一个字符。
      3. 您提到了循环,并且您似乎能够掌握它们。所以我在此使用另一种称为递归的方法来继续游戏,直到找到所需的答案。
      4. 游戏以面向对象的方式编写。如果您打算在职业生涯的后期成为一名开发人员,那么最好看到这一点。

      代码如下:

      import random
      
      class Game:
      
          def __init__(self, string):
              self.string = string
      
          def start_game(self):
              self.answer = random.choice(string)
              self.ask_player()
      
          def ask_player(self):
              char = input("Just enter your guess: ")
              self.cheat(char)
      
              if char == self.answer:
                  print("Bingo!")
                  return None
              else:
                  print("You missed, try again! (Or press Ctrl+C to goddamn exit!)")
                  self.ask_player()
      
          def show_answer(self):
              print('The answer iiiis: %s \n' % self.answer)
      
          def cheat(self, user_input):
              if user_input == 'GG':
                  self.show_answer()
      
      
      if __name__ == '__main__':
          string = "This is the string from which the letters are ramdomly chosen!"
          gg = Game(string)
          gg.start_game() 
      

      一些测试运行:

      Just enter your guess: 2
      You missed, try again! (Or press Ctrl+C to goddamn exit!)
      
      Just enter your guess: T
      You missed, try again! (Or press Ctrl+C to goddamn exit!)
      
      Just enter your guess: GG (Haha, I left a cheat code in order to get the right anwser!)
      The answer iiiis: o 
      
      You missed, try again! (Or press Ctrl+C to goddamn exit!)
      
      Just enter your guess: o
      Bingo!
      

      【讨论】:

        猜你喜欢
        • 2016-02-12
        • 2021-06-01
        • 2017-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多