当前位置: 萬仟网 > IT编程>脚本编程>Python > pythonABC学习:测试卷小游戏

pythonABC学习:测试卷小游戏

2020年07月07日 Python 我要评论
pythonABC学习:测试试卷小游戏正文项目题目使用工具实现代码经验总结正文项目题目素材:我国的省及对应的城市‘山东’:‘济南’,‘河北’:‘石家庄’,‘吉林’:‘长春’,‘黑龙江’:‘哈尔滨’,‘辽宁’:‘沈阳’,‘内蒙古’:‘呼和浩特’,‘新疆’:‘乌鲁木齐’,‘甘肃’:‘兰州’,‘宁夏’:‘银川’,‘山西’:‘太原’,‘陕西’:‘西安’,‘河南’:‘郑州’,‘安徽’:‘合肥’,‘江苏’:‘南京’,‘浙江’:‘杭州’,‘福建’:‘福州’,‘广东’:‘广州’,‘

pythonABC学习:测试试卷小游戏

正文

项目题目

素材:我国的省及对应的城市
‘山东’:‘济南’,
‘河北’:‘石家庄’,
‘吉林’:‘长春’,
‘黑龙江’:‘哈尔滨’,
‘辽宁’:‘沈阳’,
‘内蒙古’:‘呼和浩特’,
‘新疆’:‘乌鲁木齐’,
‘甘肃’:‘兰州’,
‘宁夏’:‘银川’,
‘山西’:‘太原’,
‘陕西’:‘西安’,
‘河南’:‘郑州’,
‘安徽’:‘合肥’,
‘江苏’:‘南京’,
‘浙江’:‘杭州’,
‘福建’:‘福州’,
‘广东’:‘广州’,
‘江西’:‘南昌’,
‘海南’:‘海口’,
‘广西’:‘南宁’,
‘贵州’:‘贵阳’,
‘湖南’:‘长沙’,
‘湖北’:‘武汉’,
‘四川’:‘成都’,
‘云南’:‘昆明’,
‘西藏’:‘拉萨’,
‘青海’:‘西宁’,
‘天津’:‘天津’,
‘上海’:‘上海’,
‘重庆’:‘重庆’,
‘北京’:‘北京’,
‘台湾’:‘台北’,
‘香港’:‘香港’,
‘澳门’:‘澳门’
需生成指定数目的试卷,每张卷子题目顺序要不同,答案要全部打乱,而且还需生成对应答案
在这里插入图片描述

使用工具

使用random模块,主要是里面的shuffle与sample命令,还有一些文件操作命令与循环的命令

实现代码

import random
provinces_dict = {
'山东':'济南',
'河北':'石家庄',
'吉林':'长春',
'黑龙江':'哈尔滨',
'辽宁':'沈阳',
'内蒙古':'呼和浩特',
'新疆':'乌鲁木齐',
'甘肃':'兰州',
'宁夏':'银川',
'山西':'太原',
'陕西':'西安',
'河南':'郑州',
'安徽':'合肥',
'江苏':'南京',
'浙江':'杭州',
'福建':'福州',
'广东':'广州',
'江西':'南昌',
'海南':'海口',
'广西':'南宁',
'贵州':'贵阳',
'湖南':'长沙',
'湖北':'武汉',
'四川':'成都',
'云南':'昆明',
'西藏':'拉萨',
'青海':'西宁',
'天津':'天津',
'上海':'上海',
'重庆':'重庆',
'北京':'北京',
'台湾':'台北',
'香港':'香港',
'澳门':'澳门'
}
# print(provinces_dict['广东'])
#请输入你要输出多少份试卷
paperNum = int(input('请输入试卷份数: '))
for papernum in range(paperNum):
    paperfile = open('student_paper{}.txt'.format(papernum+1),'w',encoding='utf-8')
    answerfile = open('student_answer{}.txt'.format(papernum+1),'w',encoding='utf-8')
    paperfile.write('\t姓名:\n')
    paperfile.write('\t班级:\n')
    paperfile.write('\t年龄:\n')
    paperfile.write(' '*20+'各省会测试券\n')
    provinces = list(provinces_dict.keys())
    random.shuffle(provinces)
    for questionNum in range(len(provinces)):
        paperfile.write('{}、 {}的省会是? \n'.format(questionNum+1, provinces[questionNum]))
        correct_answer = provinces_dict[provinces[questionNum]]
        wrong_answer = list(provinces_dict.values())
        wrong_answer.remove(correct_answer)
        wrong_answer = random.sample(wrong_answer,3)
        answer_list = wrong_answer + [correct_answer]
        random.shuffle(answer_list)  #shuffle后不用对象接受
        # print(answer_list[0])
        for selectNum in range(4):
            paperfile.write('{}. {}\n'.format('ABCD'[selectNum] , answer_list[selectNum]))
        paperfile.write('\n')
        answerfile.write('{}、 {}\n'.format(questionNum+1,'ABCD'[answer_list.index(correct_answer)]))
    paperfile.close()
    answerfile.close()

经验总结

  1. 关于random.shuffle(answer_list)中的shuffle使用是不需再用变量接受重排后的列表的
  2. 关于answer_list = wrong_answer + [correct_answer]中需要将correct_answer类型为字符串的转换为列表,再进行列表的加法
  3. 关于’ABCD’[selectNum],可以直接对特定的字符串进行str[num]的操作
  4. 程序完成后要记得close()文件,释放内存

本文地址:https://blog.csdn.net/weixin_43768611/article/details/107140956

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • 文件读写操作

    文件读写操作

    文件的读写操作 一般来说文件的读写分三步: 在读取或写入文件之前,必须使用python的内置open()函数打开文件。此函数将创建一个文件对象,该对... [阅读全文]
  • python实现验证码识别功能

    python实现验证码识别功能

    本文实例为大家分享了python实现验证码识别的具体代码,供大家参考,具体内容如下 1.通过二值化处理去掉干扰线 2.对黑白图片... [阅读全文]
  • Markdown编辑器

    Markdown编辑器

    Markdown编辑器 一、什么是Markdown ​ Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通... [阅读全文]
  • 如何优雅地处理Django中的favicon.ico图标详解

    如何优雅地处理Django中的favicon.ico图标详解

    前言 favicon.ico是网站的图标也是网站的头像,简单来说,就是让我们的网站更加好看。 本文主要给大家介绍了关于优雅处理D... [阅读全文]
  • python类和继承用法实例

    python类和继承用法实例

    本文实例讲述了python类和继承定义与用法。分享给大家供大家参考。具体如下: class Employee: pa... [阅读全文]
  • Python基本数据类型详细介绍

    Python基本数据类型详细介绍

    1、空(none)表示该值是一个空对象,空值是python里一个特殊的值,用none表示。none不能理解为0,因为0是有意义的,而... [阅读全文]
  • list学习内容总结

    list学习内容总结

    list定义:list[]或者[]内任意类型的内容,多个用逗号分开 name1 = list(['Cyberpunk2077', &... [阅读全文]
  • 聊聊Unity 自定义日志保存的问题

    聊聊Unity 自定义日志保存的问题

    前言 之前unity5.x在代码中写了debug.log..等等,打包之后在当前程序文件夹下会有个对应的"outlog.txt",2017之后这个文件被移到c盘... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2021  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com