结合 reversed() + 条件判断|动手做“反转猜词小游戏”
学习目标:综合运用 reversed()、input()、if-else、字符串操作,完成一个能交互的反转猜词小游戏(难度升级,侧重语法整合与逻辑思考)。
1. 今日核心:先吃透 reversed() 进阶用法
reversed() 核心是反转序列,但新手容易踩坑:
- 反转字符串后是迭代器,需用
''.join() 转回字符串; - 结合
input() 和条件判断,能实现“用户交互+逻辑验证”; - 今天重点:把单一语法融入小游戏,锻炼“语法整合能力”。
游戏规则:
- 验证答案:正确则提示“猜对了!”,错误则给出正确答案。
2. 完整游戏代码(直接复制运行)
# 步骤1:准备游戏单词库(可自行添加)
word_list = ["Python", "apple", "banana", "orange", "hello"]
# 步骤2:随机选一个单词(导入random模块,新手不用深究,直接用)
import random
target_word = random.choice(word_list)
# 步骤3:生成正确的反转单词(核心:reversed() + 字符串拼接)
reverse_correct = ''.join(reversed(target_word))
# 步骤4:游戏交互逻辑
print("🎮 反转猜词小游戏开始!")
print(f"请输入单词「{target_word}」的反转形式:")
user_answer = input("你的答案:")
# 步骤5:验证答案(条件判断)
if user_answer.lower() == reverse_correct.lower():
# lower():忽略大小写,比如用户输NohtyP也算对
print(f"🎉 恭喜!猜对了!{target_word} 的反转是 {reverse_correct}")
else:
print(f"❌ 答错啦~正确答案是:{reverse_correct}")
# 进阶拓展:让用户多猜一次(可选)
if user_answer.lower() != reverse_correct.lower():
print("\n再给你一次机会!")
user_answer2 = input("重新输入:")
if user_answer2.lower() == reverse_correct.lower():
print("🎉 这次猜对啦!")
else:
print(f"😥 还是错了,正确答案是 {reverse_correct}")
3. 代码拆解(新手逐行理解)
| | |
|---|
random.choice(word_list) | | |
''.join(reversed(target_word)) | | reversed() |
user_answer.lower() | | |
if-else | | |
| | |
4. 今日挑战练习(动手修改代码)
要求:在原有游戏基础上,增加2个功能(锻炼逻辑拓展能力):
- 提示用户“你输入的答案长度不对!”(比如原单词6个字符,用户输5个);
- 统计用户猜对用了几次(1次猜对/2次猜对/两次都错)。
参考代码(修改后):
import random
word_list = ["Python", "apple", "banana", "orange", "hello"]
target_word = random.choice(word_list)
reverse_correct = ''.join(reversed(target_word))
guess_count = 0# 统计猜题次数
print("🎮 反转猜词小游戏开始!")
print(f"请输入单词「{target_word}」的反转形式:")
# 第一次猜题
user_answer = input("你的答案:")
guess_count += 1
# 新增:判断长度是否正确
if len(user_answer) != len(target_word):
print(f"⚠️ 提示:答案长度不对!原单词有 {len(target_word)} 个字符")
user_answer2 = input("重新输入:")
guess_count += 1
# 验证第二次答案
if user_answer2.lower() == reverse_correct.lower():
print(f"🎉 猜对了!你一共猜了 {guess_count} 次")
else:
print(f"😥 答错啦,正确答案是 {reverse_correct},你猜了 {guess_count} 次")
else:
# 长度正确时验证答案
if user_answer.lower() == reverse_correct.lower():
print(f"🎉 恭喜!1次就猜对了!")
else:
print(f"❌ 答错啦~再试一次!")
user_answer2 = input("重新输入:")
guess_count += 1
if user_answer2.lower() == reverse_correct.lower():
print(f"🎉 这次猜对了!你一共猜了 {guess_count} 次")
else:
print(f"😥 还是错了,正确答案是 {reverse_correct},你猜了 {guess_count} 次")