编写函数构建一个静态单词表,随机选择表内的单词并将单词字母打乱,打乱的单词输入到屏幕外,然后用户输入单词,判断用户输入和原单词是否相同,对于用户可能的错误输入进行判断并抛出异常,
时间: 2024-09-19 22:11:36 浏览: 41
用c++实现将文本每个单词首字母转换为大写
为了创建这样一个程序,你需要定义一个函数来管理静态单词列表、生成打乱后的单词以及处理用户的输入。以下是一个简单的实现:
```python
import random
import string
# 假设这里有一个包含单词的静态列表
word_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']
def build_word_bank():
"""返回一个从word_list随机选择的单词"""
return random.choice(word_list)
def shuffle_word(word):
"""返回单词中的字母随机排列的新字符串"""
shuffled_chars = list(word)
random.shuffle(shuffled_chars)
return ''.join(shuffled_chars)
def get_user_input():
while True:
user_guess = input("请输入打乱后的单词:")
if not user_guess.isalpha(): # 检查用户输入是否只包含字母
raise ValueError("输入不合法,请只输入字母!")
return user_guess.lower() # 将输入转换为小写以统一比较
def main():
word = build_word_bank()
shuffled_word = shuffle_word(word)
print(f"打乱后的单词是:{shuffled_word}")
try:
is_correct = get_user_input() == shuffled_word
if is_correct:
print("恭喜,你猜对了!")
else:
print("很遗憾,不是这个单词。正确答案是:", word)
except ValueError as e:
print(e)
if __name__ == "__main__":
main()
```
在这个程序中,我们首先定义了一个包含单词的列表`word_list`。`build_word_bank`函数用于随机选择一个单词,而`shuffle_word`则使用`random.shuffle`将选定的单词中的字符打乱。
`get_user_input`函数负责获取用户输入并检查其有效性,如果输入包含非字母字符,则抛出`ValueError`异常。最后,在`main`函数中,我们将随机单词显示给用户,并根据用户输入进行验证。
阅读全文