我正在做一个愚蠢的项目,在那里我试图用尽可能多的代码打印一些东西。我想让它做的是接受一个输入,把它分成一个列表,然后遍历列表上的每个字母。然后它选择一个从0到26的随机数,查看它所在的字母是否与单独列表中的字母匹配,如果匹配,则将其附加到另一个列表中。很难解释,下面是我当前的代码(尚未完成):
import random
alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
inserted_words = []
target_word = input('what word do you want printed? (caps only): ')
target_word.split()
class Transform(object):
def __init__(self, letter, number):
self.letter = letter
self.number = number
def RandomChoose(self, insert):
let1 = random.randint(0, 26)
let2 = alphabet[let1]
if let2 == insert:
inserted_words.append(insert)
else:
RandomChoose()
for x in target_word:
y = alphabet.index(x)
x = Transform(x, y)
x.RandomChoose(x)
print(inserted_words)
但有一个问题。在这里:
def RandomChoose(self, insert):
let1 = random.randint(0, 26)
let2 = alphabet[let1]
if let2 == insert:
inserted_words.append(insert)
else:
RandomChoose()
我想让代码从我的“字母表”列表中随机选择一个字母,看看它是否与输入匹配。如果不是,我希望它从头开始重复代码。所以,如果输入是A,随机字母是B,它会重复,如果随机字母是Q,它会再次重复。以此类推,直到它随机选择一个,然后将其附加到“插入的单词”中。我试过递归,但没用。如果你知道怎么做,请告诉我
试试这个:
此外,您还可以将字母表和插入的单词声明为类的元素,并从中访问它们,因为否则RandomChoose作为类函数没有任何用处
此外,您没有将
target_word.split()
分配给任何对象。尝试使用:同样与问题没有直接关系,但是您可以使用
target_word.upper()
将输入大写-这样您就不必将输入限制为已经大写的单词相关问题 更多 >
编程相关推荐