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()
exceptIOError:
print("文件words.txt并没有找到")
exit()
进阶版:进行抓取错误,毕竟说不定哪天就会把words文件当作垃圾文件删除掉了,所以要抓取一下错误。
python猜单词小游戏