程序不会只打印单个字母的完整单词

时间:2015-01-09 18:59:38

标签: python-3.x

我对python很新,我正在尝试为大学作业做一个小游戏。我试图从一些外部文本文件中打印一个随机选择的单词(每个单词中都有较难的单词),并将其显示2秒钟,然后该单词消失,用户必须拼写它。目前,我的程序只显示文本文件中的随机字母,而不是整个单词。有什么想法吗?

感谢。

print ("""Welcome to the Spelling Game
What difficulty do you want to play?
Easy, Medium or Hard?""")
strDifficulty = input().upper

if strDifficulty is ("EASY"):
    with open ('EASY.txt', 'r') as f:
        (chosen) = f.readlines()

if strDifficulty is ("MEDIUM"):
    with open ('MEDIUM.txt', 'r') as f:
        (chosen) = f.readlines()

if strDifficulty is ("HARD"):
    with open ('HARD.txt', 'r') as f:
        (chosen) = f.readlines()

import random
x = ('chosen')
print (random.choice (x))

2 个答案:

答案 0 :(得分:2)

您的代码存在多个问题,为什么会打印出单个字符:

strDifficulty = input().upper不是命令行的大写输入。它将读取您键入的内容,即字符串(python中为str),并将该字符串的方法upper分配给strDifficulty。您可能正在寻找的是strDifficulty = input().upper()(额外的括号将调用方法upper,返回从标准中读取的大写版本。

x = ('chosen')将字符串'chosen'分配给x,而不是变量chosen的值。您可能需要x = chosen,将chosen的值分配给x

print (random.choice(x))并不遥远,但会从x中选择一个随机元素。由于x始终是字符串'chosen',因此您可能会收到其中一封字母。您只需删除该行x = ('chosen')并致电print(random.choice(chosen))

关于你的代码还有很多话要说,但让我们从这里开始:)

答案 1 :(得分:0)

我对您的代码进行了一些修改。

print ("""Welcome to the Spelling Game
What difficulty do you want to play?
Easy, Medium or Hard?""")
strDifficulty = input().upper()

if strDifficulty=="EASY":
    with open ('EASY.txt', 'r') as f:
        chosen = f.readlines()

if strDifficulty=="MEDIUM":
    with open ('MEDIUM.txt', 'r') as f:
        chosen = f.readlines()

if strDifficulty=="HARD":
    with open ('HARD.txt', 'r') as f:
        chosen = f.readlines()

import random
print (random.choice (chosen))