'for char in word:'不在Python中工作

时间:2014-09-21 14:59:32

标签: python random char choice

我正在制作一个简单的刽子手游戏,我的计算机上有一个单词列表,大约有5,000个单词,我从这些单词中列出了一个列表然后使用随机函数为游戏随机选择一个,但是它打印了太多这些:' - ',当试图猜测这个词时,我使用'for char in word:'命令来计算字符并打印正确数量的' - '。

import time
import random

List = open("nouns.txt").readlines()

name = input("What is your name? ")

print ("Hello, ", name, "Time to play hangman!")

time.sleep(1)

print ("Start guessing...")
time.sleep(0.5)

Word = random.choice(List)

guesses = ''
turns = 20

while turns > 0:         

    failed = 0

    for char in Word:      

        if char in guesses:    

            print (char)

        else:

            print ("_")     

            failed += 1    

    if failed == 0:        
        print ("\nYou won" ) 

        break              

    guess = input("guess a character:") 

    guesses += guess                    

    if guess not in Word:  

        turns -= 1        

        print ("Wrong")    

        print ("You have", + turns, "more guesses")

        print ("The word was ", Word)

        if turns == 0:           

            print ("You Loose" )

1 个答案:

答案 0 :(得分:0)

这里的原因是你从文件中读取行,每行的末尾都有一个“换行符”('\ n')。当你遍历字符时,你会把这个字符作为最后一个字符。

你可以使用strip()方法来摆脱它: Word = random.choice(List).strip()

我认为你应该在这里使用raw_input()而不是input()方法,或者你可以使用python 3.x然后就可以了。