如何将随机选择的字母从字符串分配给python中的变量?

时间:2018-10-28 22:20:06

标签: python

首先,我想说一下,我是编码和python的新手。我刚刚学习了导入和随机函数。

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

我只需要一些帮助就可以开始使用。谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

有一个library用于随机化事物。像这样简单地使用它:

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

在这种情况下,您会从序列中获得随机字母,并将其保存在your_variable中。

答案 2 :(得分:0)

由于您是编程的新手,所以我想给您提供一个游戏性示例,以阐明一些概念。

  1. 字符串str在Python中作为序列实现(您可以认为字符串是一个字符数组)。因此它支持索引s = 'abc'; print(s[1]);显示b的索引。
  2. 标准库random包括一系列执行随机操作的函数。如其他答案所述,函数random.choice从序列中随机选择一个元素。因此,它可以用来从字符串中随机选择一个字符。
  3. 您提到了循环,您似乎能够掌握它们。因此,我特此使用另一种称为 recursion 的方法来继续游戏,直到找到所需的答案为止。
  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!