程序不会只打印单个字母的完整单词
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))
我正在使用 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))