Ali*_* J. 5 python if-statement python-3.x
我正在尝试猜词游戏.一切都有效,除了最后一个if语句部分.如果用户正确猜出名称,则不会打印"赢了!".但是,如果没有,则执行else语句,它会打印"Lost!".这是为什么?我多次检查过,但我找不到任何错误.
注意:我使用Python 3.6
import random
def get_random_word():
words = ["Ronnie", "Deskty", "Lorrie"]
word = words[random.randint(0, len(words)-1)]
return word
def show_word(word):
for character in word:
print(character, " ", end="")
print("")
def get_guess():
print("Enter a letter: ")
return input()
def process_letter(letter, secret_word, blanked_word):
result = False
for i in range(0, len(secret_word)):
if secret_word[i] == letter:
result = True
blanked_word[i] = letter
return result
def print_strikes(number_of_strikes):
for i in range(0, number_of_strikes):
print("X ", end="")
print("")
def play_word_game():
strikes = 0
max_strikes = 3
playing = True
word = get_random_word()
blanked_word = list("_" * len(word))
while playing:
show_word(blanked_word)
letter = get_guess()
found = process_letter(letter, word, blanked_word)
if not found:
strikes += 1
print_strikes(strikes)
if strikes >= max_strikes:
playing = False
if not "_" in blanked_word:
play?ng = False
if strikes >= max_strikes:
print("Lost")
else:
print("Won")
print("Game started")
play_word_game()
print("Game over")
Run Code Online (Sandbox Code Playgroud)
看看这段代码:
if not "_" in blanked_word:
play?ng = False
Run Code Online (Sandbox Code Playgroud)
你有一个?(U + 0131 LATIN SMALL LETTER DOTLESS I)代替i.Python会很乐意play?ng为您创建变量(与其他必须声明变量的语言不同).因此playing永远不会False在获胜案例中更新,并且函数永远不会退出.
正如Martijn在评论中指出的那样,通过发现错误拼写的变量和其他可能的错误,一个短信可能会有所帮助.考虑在编辑器或IDE中使用一个.两种流行的棉短绒是pylint的和Flake8.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |