我正在尝试制作一个刽子手游戏。我一次做的很少,因为我还在搞清楚很多事情。
这个问题真的让我陷入困境。我试图在我的猜测列表中打印一个字符"猜测"只要我与之比较的角色在列表中。
但出于某种原因,它似乎认为角色不在列表中。即使我硬编码它仍然无法正常工作。
def win(guesses):
if guesses == lst:
return True
else:
return False
def check(guess):
fail = 0
#char = str(guess)
for char in lst:
if char in guess:
guesses.append(guess)
return True
else:
fail = fail + 1
if fail == len(lst):
return False
#Start up!
word = "jamie"
lst = []
Guess = ''
guesses = []
for c in word:
lst.append(c)
for char in word:
print '_',
# Lets play!
won = False
while won == False:
Guess = raw_input("\nGuess a letter: "),
while Guess in guesses:
Guess = raw_input("\nPlease choose a letter not already used: "),
ans = check(Guess)
if ans == True:
for c in lst:
if c in guesses:
print c,
else:
print "_",
won = win(guesses)
else:
print "Great job you won!"
print guesses
P.S
如果难以阅读,我很抱歉,但如果有任何提示或更明智的方法来改进我的代码,我很高兴听到它们。
答案 0 :(得分:10)
由于单个字符,您会收到意外结果:
Guess = raw_input("\nGuess a letter: "),
^
添加这样的逗号会产生一个元组,其中包含您感兴趣的字符串的单个元素。
>>> x = 1
>>> x
1
>>> type(x)
<class 'int'>
>>> x = 1,
>>> x
(1,)
>>> type(x)
<class 'tuple'>
请勿在{{1}}电话后添加逗号。它与raw_input
语句的工作方式不同。