我正在教授Python速成班,我认为汉格曼的表演会很有成效。
我有一个最终的产品,我将用我在课程中的时间来努力,我想知道什么可以重构或实现,以帮助从我自己,中级水平到绝对初学者的信息交换。
from random import choice
import os
def clear():
os.system('clear')
def play_again():
play_again = input("\nPlay again? Y/n ").lower()
if play_again != 'n':
clear()
game()
else:
print("\n\n\n\nCatch ya later!\n\n\n\n")
def get_secret_word():
words = ['angry', 'beautiful', 'brave', 'careful', 'charismatic', 'clever',
'creative', 'cute', 'dangerous', 'exciting', 'famous', 'friendly',
'happy', 'interesting', 'lucky', 'profound', 'popular', 'rich',
'thin', 'young']
secret_word = choice(words)
return secret_word
def get_guess(bad_guesses, good_guesses, secret_word):
while True:
guess = input("Guess a letter: ").lower()
if guess == '':
print("What was that?")
board(bad_guesses, good_guesses, secret_word)
elif len(guess) != 1:
input("You can only guess a single letter!")
board(bad_guesses, good_guesses, secret_word)
elif guess in bad_guesses or guess in good_guesses:
input("You've already guessed that letter!")
board(bad_guesses, good_guesses, secret_word)
elif not guess.isalpha():
input("You can only guess LETTERS!")
board(bad_guesses, good_guesses, secret_word)
else:
return guess
def board(bad_guesses, good_guesses, secret_word):
clear()
print('** Strikes: {}/8 **'.format(len(bad_guesses)))
print('')
for guess in bad_guesses:
print(guess, end=" ")
print('\n\n')
for guess in secret_word:
if guess in good_guesses:
print(guess, end=" ")
else:
print('_ ', end=" ")
print('')
def game():
secret_word = get_secret_word()
good_guesses = []
bad_guesses = []
game_done = False
while not game_done:
board(bad_guesses, good_guesses, secret_word)
guess = get_guess(bad_guesses, good_guesses, secret_word)
if guess in secret_word:
good_guesses.append(guess)
found = True
for guess in secret_word:
if guess not in good_guesses:
found = False
if found:
print("\nYou win!\n")
print("The secret word was {}.".format(secret_word.upper()))
game_done = True
elif guess not in secret_word:
bad_guesses.append(guess)
if len(bad_guesses) == 8:
clear()
print("\n ** ENGHH! ** ")
print("\nStrike ! You lost!")
print("\nThe secret word was {}".format(secret_word.upper()))
game_done = True
if game_done:
play_again()
else:
board(bad_guesses, good_guesses, secret_word)
game()发布于 2017-05-01 04:41:41
首先,恭喜你教Python!我真希望有更多与之相关的车祸诅咒。
现在,关于您的代码:
while / for) -好的一见钟情就好了。我不喜欢你的代码的地方(我想我对语言一无所知):
play_again()的函数和一个同名的变量。这可能会误导你。os.system('clear')是特定于平台的,只在OSX / Linux上工作。在窗户上,你会使用os.system('cls')。很高兴在代码中的某个地方对此进行评论。发布于 2017-05-01 03:38:04
你的代码可以有很多改进..。以下是我认为你可以改进的地方。
你说这是为初学者准备的速成班..。那么你的理想目标应该是“尽量简单!”为学生(S)。我觉得你做了相反的事情,但是你仍然可以改进它。
PS:如果你想知道初学者的好代码(容易理解和简单),你应该查看几个初学者的Python书籍。他们通常会在一个章节里谈论刽子手。
我可能错过了一些改进,所以我道歉,如果我没有谈到他们!
我尊重你教初学者,我希望你做得很好!祝你好运!)
https://codereview.stackexchange.com/questions/162198
复制相似问题