打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python每日一练(4)

目录

  • 1. 单一位置
  • 2. 位置随机
  • 3. 添加积分评价
  • 4. 文件获取
  • 5. 设置难度等级
  • 6. 限时完成
  • 7. 选择填空

1. 单一位置

编写一个小游戏,按列表中成语的顺序输出第一个字为空白的成语,要求用户填写答案并回车可以判断是否正确。正确输出正确,你真棒~,错误输出错了,正确答案:。运行效果下图所示。


示例代码如下:

print("====成语填填乐====\n")# idiom: 成语列表idiom_list = ["闭月羞花", "国色天香", "倾国倾城", "貌美如花", "明眸皓齿",              "冰肌玉骨", "小家碧玉", "窈窕淑女", "天生丽质", "秀色可餐", "亭亭玉立"]for idiom in idiom_list:    new_idiom = "__" + idiom[1:]  # 构造第一个字为空白的字符串: __月羞花    print(new_idiom)    word = input("输入: ").strip()  # 用户输入    if word == idiom[0]:        print("正确,你真棒~")    else:        print(f"错了,正确答案: {idiom[0]}")

2. 位置随机

编写一个小游戏,随机输出列表中的成语,同时将成语进行随机位置输出空格,要求用户填写答案,敲击回车键,程序可以判断是否正确。正确输出正确,你真棒~,错误输出错了,正确答案:。运行效果下图所示。


示例代码如下:

import randomprint("====成语填填乐====\n")# idiom: 成语列表idiom_list = ["闭月羞花", "国色天香", "倾国倾城", "貌美如花", "明眸皓齿",              "冰肌玉骨", "小家碧玉", "窈窕淑女", "天生丽质", "秀色可餐", "亭亭玉立"]while len(idiom_list) > 0:    idiom = random.choice(idiom_list)  # 随机获取列表中的一个成语    index = random.randint(0, 3)  # 随机产生索引    new_str = idiom.replace(idiom[index], "__", 1)  # 构建一个带空白的成语    print(new_str)    word = input("输入: ").strip()    if new_str.replace("__", word) == idiom:        print("正确,你真棒~")    else:        print(f"错了,正确答案: {idiom[index]}")    idiom_list.remove(idiom)  # 移除已经填写过的成语

3. 添加积分评价

编写一个小游戏,随机输出一条包含一个空格的成语,填写完答案,回车,程序可以判断是否正确。正确加2分,输出正确,你真棒!。错误减2分,输出错了,正确答案:。什么也不填忽略本成语,输出过!。本游戏一共8关,游戏完成输出成绩,选手原始分数为20分,如下图所示。


示例代码如下:

import randomprint("====成语填填乐====\n")# idiom_list: 成语列表idiom_list = ["闭月羞花", "国色天香", "倾国倾城", "貌美如花", "明眸皓齿",              "冰肌玉骨", "小家碧玉", "窈窕淑女", "天生丽质", "秀色可餐", "亭亭玉立"]score = 20  # 原始分数count = 1  # flag: 用来管控游戏是否结束 >8 结束print("直接填写答案,回车进入下一关,什么也不填忽略本成语!!!")while True:    if count > 8:  # 大于8结束游戏        break    idiom = random.choice(idiom_list)  # 随机获取列表中的一个成语    index = random.randint(0, 3)  # 随机产生索引    new_str = idiom.replace(idiom[index], "__", 1)  # 构建一个带空白的成语    print(new_str)    word = input("输入: ").strip()    if new_str.replace("__", word) == idiom:        score += 2  # 答对+2分        print("正确,你真棒~")    elif not word:        print("过!")        continue    else:        score -= 2  # 答错扣两分        print(f"错了,正确答案: {idiom[index]}")    count += 1print(f"\033[1;31m选手最后得分: {score}\033[0m")

4. 文件获取

在之前的成语填填乐(积分评价)基础上改进程序。将成语手动添加到列表中费时费事,可以将网络中的成语复制到文本文件当中,使用时从文件中读取后保存到列表,这样可以极大丰富成语填填乐的内容,提升成语填填乐内容的深度和广度。文本中成语保存方式如图所示。


示例代码如下:

5. 设置难度等级

在之前成语填填乐(文件读取)基础上改进程序,增加难度等级。将成语文件分成9个等级,让用户选择难度等级,程序根据难度等级调用对应的成语文件,实现成语填填乐(设置难度等级)。成语文件包括idiom1.txt~idiom9.txt。成语文件可以在我的百度网盘中获取,链接如下:

链接:https://pan.baidu.com/s/1IlHjg2PXZ6kn4YwrH7a8JA  密码:2tjl

程序运行效果如下图所示。


示例代码如下:

import randomprint("====成语填填乐====\n")print("""成语填填乐难度等级菜单1: 一级菜单2: 二级菜单3: 三级菜单4: 四级菜单5: 五级菜单6: 六级菜单7: 七级菜单8: 八级菜单9: 九级菜单""")level = input("请输入成语填填乐难度等级菜单的数字,如: 3\n").strip()file_name = "idiom" + level + ".txt"with open(file_name, encoding="utf-8") as file:    idiom_list = file.readlines()score = 20  # 原始分数count = 1  # flag: 用来管控游戏是否结束 >8 结束print("直接填写答案,回车进入下一关,什么也不填忽略本成语!!!")while True:    if count > 8:  # 大于8结束游戏        break    idiom = random.choice(idiom_list).strip()  # 随机获取列表中的一个成语 strip()去除成语后的\n    index = random.randint(0, 3)  # 随机产生索引    new_str = idiom.replace(idiom[index], "__", 1)  # 构建一个带空白的成语    print(new_str)    word = input("输入: ").strip()    if new_str.replace("__", word) == idiom:        score += 2  # 答对+2分        print("正确,你真棒~")    elif not word:        print("过!")        continue    else:        score -= 2  # 答错扣两分        print(f"错了,正确答案: {idiom[index]}")    count += 1print(f"\033[1;31m选手最后得分: {score}\033[0m")

6. 限时完成

在之前成语填填乐(设置难度等级)基础上改进程序,增加限时完成功能,要求用户在90秒内完成游戏,每完成一个成语,提示剩余答题时间。答题超时提示答题超过90秒答题时间,将退出答题!,并显示选手得分,运行效果如下图所示。


示例代码如下:

import randomimport datetimeprint("====成语填填乐====\n")print("""成语填填乐难度等级菜单1: 一级菜单2: 二级菜单3: 三级菜单4: 四级菜单5: 五级菜单6: 六级菜单7: 七级菜单8: 八级菜单9: 九级菜单""")level = input("请输入成语填填乐难度等级菜单的数字,如: 3\n").strip()file_name = "idiom" + level + ".txt"with open(file_name, encoding="utf-8") as file:    idiom_list = file.readlines()score = 20  # 原始分数print("直接填写答案,回车进入下一关,什么也不填忽略本成语!!!")remain = datetime.datetime.now() + datetime.timedelta(seconds=90)  # 限时90秒完成while True:    time_is = (remain - datetime.datetime.now()).seconds    if time_is > 90:  # 答题时间超过90秒 游戏结束        print("答题超过90秒答题时间,将退出答题!")        break    print(f"剩余答题时间\033[1;31m{time_is}\033[0m秒")    idiom = random.choice(idiom_list).strip()  # 随机获取列表中的一个成语 strip()去除成语后的\n    index = random.randint(0, 3)  # 随机产生索引    new_str = idiom.replace(idiom[index], "__", 1)  # 构建一个带空白的成语    print(new_str)    word = input("输入: ").strip()    if new_str.replace("__", word) == idiom:        score += 2  # 答对+2分        print("正确,你真棒~")    elif not word:        print("过!")        continue    else:        score -= 2  # 答错扣两分        print(f"错了,正确答案: {idiom[index]}")print(f"\033[1;31m选手最后得分: {score}\033[0m")

7. 选择填空

在之前成语填填乐(限时完成)基础上改进程序,实现程序选择填空功能。成语随机位置空格输出需要选择的一个字,随机从所有成语的词汇中选择三个假答案,结合正确答案让用户选择,用户只需输入正确答案前面的字母即可,如果输入非 A、B、C、D,将提示输入错误,将重新选择!,运行效果如下图所示。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python自制成语接龙小游戏
Python笔记:字符串操作
Python中去除字符串两端空格的方法!
BBC地道英语学习MP3第2页
python strip() 函数和 split() 函数的详解及实例
python 字符串操作2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服