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

Program won't print complete words just single letters

我正在使用 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))

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

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)).

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

我对你的代码做了一些修改。

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))