import random words = ['chicken', 'dog', 'cat', 'mouse', 'frog'] guessTimes = 14 guessedLetters = "" def pickWord(): return random.choice(words) def play(): word = pickWord() while True: guess = getGuess(word) if processGuess(guess, word): print('You Win') break if guessTimes == 0: print("You lose") break def getGuess(word): printWordWithBlanks(word) print('剩余' + str(guessTimes)) guess = input("请输入一个字母:") return guess def processGuess(guess,word): global guessTimes global guessedLetters guessTimes = guessTimes - 1 guessedLetters = guessedLetters + guess for letter in word: if guessedLetters.find(letter) == -1: return False return True def printWordWithBlanks(word): displayWord = '' for letter in word: if guessedLetters.find(letter) > -1: displayWord = displayWord + letter else: displayWord = displayWord + '-' print(displayWord) play()原理非常简单,一看就会,其实这串代码是我好早以前写的了,最近会运用了一些新的知识,下面讲解一下:
具体就是读取文件,然后替换掉哪个words,这样的话只需要修改words.txt就行,而不是每次修改都要修改代码
wenjian = open("words.txt", "r") words = wenjian.read().splitlines() wenjian.close()open是读取这个文件(记得把他放到同一级目录下),r是只读模式
然后read是获取数据,splitlines是改为列表
close是关闭文件,如果一个文件只打开不关闭的话可能会出现不必要的问题。
try: wenjian = open("words.txt", "r") words = wenjian.read().splitlines() wenjian.close() except IOError: print("文件words.txt并没有找到") exit()进阶版:进行抓取错误,毕竟说不定哪天就会把words文件当作垃圾文件删除掉了,所以要抓取一下错误。