学籍注册小程序

需求:

1.要求用户输入姓名、年龄、手机号、身份证号、所选课程,然后为学院完成注册。

2.手机号、身份证号唯一。

3.课程只能从Python、Linux、网络安全、前端、数据分析这几门里选

4.学员信息存入文件

初始学员信息文件:

aaa,21,11111111111,111111,Python
bbb,21,22222222222,222222,Python
ccc,21,33333333333,333333,Linux
ddd,21,44444444444,444444,Linux
eee,21,55555555555,555555,网络安全
fff,21,66666666666,666666,前端
ggg,21,77777777777,777777,数据分析

程序代码:

# 1.打开存储学员信息的文件并加载到内存
f = open("student_data.db","r")    #读模式创建并打开文件
student_data = {}
for line in f:line = line.strip().split(',')  #此时,line是一个存储了一行信息的列表student_data[line[3]] = line    #使用唯一的身份证号作为key# 2.指示学员输入信息并检验
line = []
line.append(input("姓名:"))   #line[0]
line.append(input("年龄:"))   #line[1]
# 检验手机号
for key,val in student_data.items():phone_num = input("手机号:")# if int(student_data[id_num][2]) == int(student_data[key][2]):# 写法报错,因为这时用户输入的id_num还未存进字典中,所以student_data[id_num][2]不存在if int(phone_num) == int(student_data[key][2]):  #修改后的正确写法print("该手机号已注册,请重新输入。")else:line.append(phone_num)  #line[2]break
# 检验身份证号:
while True:id_num = input("身份证号:")if id_num in student_data:print("该身份证号已注册,请重新输入。")else:line.append(id_num) #line[3]break
# 检验课程
while True:course = input("选择课程(可选项:Python、Linux、网络安全、前端、数据分析):")if course not in ["Python","Linux","网络安全","前端","数据分析"]:print("无相应课程,请正确输入课程名称。")else:line.append(course) #line[4]break# 3.将新用户信息写入文件中
f_w = open("student_data.db","r+")  #使用写读模式,方便后面通过读来移动光标
line_w = ",".join(line)
# f_w.seek(-1)  想用这句来将光标移动到最后,失败了,语法错误
f_w.readlines() #使用这句话成功将光标移动到末尾,但是没有换行
f_w.write("\n"+line_w)  #添加这一句,成功换行
f_w.close()
print(f"学员{line[0]}注册成功!")

程序执行一次后的学员信息文件:

aaa,21,11111111111,111111,Python
bbb,21,22222222222,222222,Python
ccc,21,33333333333,333333,Linux
ddd,21,44444444444,444444,Linux
eee,21,55555555555,555555,网络安全
fff,21,66666666666,666666,前端
ggg,21,77777777777,777777,数据分析
hhh,21,00000000000,000000,Python

棋牌游戏发牌程序

需求:

1.允许用户一次性输入多个玩家姓名,不限个数,然后为每个玩家随机产生3张牌。

2.你只有一副扑克牌,确保发出去的每张牌不重样

3.牌需要有黑桃、红桃、方片,梅花之分

程序代码:

# 0.因为需要随机抽牌,引入random模块
import random# 1.生成扑克牌
card_stack = ['大王','小王']
card_nums = list(range(1,11)) + ['J','Q','K']
card_sign = ['黑桃','红心','梅花','方片']
for s in card_sign:for n in card_nums:# print(s,n)# print(type(s),type(n))card = str(s) + '_' + str(n)# 直接card=s+n 会出现TypeError: can only concatenate str (not “int“) to str,但s和n明明就是str啊,不懂card_stack.append(card)# 2.玩家上桌
# 输入玩家姓名
table = {}
player = input("请输入玩家姓名,可输入多个,使用英文逗号隔开:")
player = player.strip().split(',')
# 将姓名录入字典同时进行发牌
for per in player:table[per] = random.sample(card_stack,3)    # 发牌for i in range(3):  # 从牌堆中删除已发的牌card_stack.remove(table[per][i])# 3.打印牌面
while True:start = input("输入start进行发牌:")   #玩家输入start再打印发牌结果,使发牌结果展示可控if start == "start":for key in table:print(key,table[key])print("发牌结束。")break

执行结果

DAY 5 综合练习 - 学籍注册小程序 棋牌游戏发牌程序相关推荐

  1. Python实战—学籍注册小程序

    经过这么多天的学习,我们也掌握了不少python的知识,现在我们就动手实现一个学籍注册小程序. 程序名称:学籍注册 要求: 1.实现数据存储到文件格式中 2.实现选择课程时,给用户列出选项,供选择 3 ...

  2. python学籍注册小程序

    学籍注册小程序 这是本人python初步学习,用来练习的小程序,如有不正确的地方和建议,欢迎留言! 一.需求分析 要求用户输入姓名.年龄.手机号.身份证号.所选课程,然后为学员完成注册 手机号.身份证 ...

  3. alex学籍注册小程序学习

    需求: 1.用户输入姓名,年龄,手机号,身份证号,所选课程,然后为学员完成注册. 2.手机号身份证号唯一 3.可选课程只能从python,linux,网络安全,前端,数据分析这几门课里选择 4.学员信 ...

  4. linux运行.pak文件,使用game-to-flatpak脚本将商业Linux游戏安装程序转换为Flatpak应用程序...

    现在有一个新的脚本,它允许你将各种商业Linux游戏的安装程序转换成可以在各种GNU/Linux发行版上运行的Flatpak软件包. 这是一个开源的shell脚本,由GNOME开发人员Bastien ...

  5. java简单小程序_Java简易登录注册小程序

    这篇文章主要介绍了Java图形界面开发,简易登录注册小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的 ...

  6. 个人如何注册小程序账号,亲测有效!

    大家都知道微信小程序并没有开放个人申请注册账号,觉得很遗憾,作为一个开发者,居然不能一览究竟. 没事,前端君这次来教大家如何个人申请注册一个小程序账号. 闲话不多说,马上开始! 来来来,先登录微信公众 ...

  7. 注册小程序需要营业执照吗?

    随着小程序的普及,越来越多的人开始关注做小程序的问题.其中,有一个很常见的问题就是:注册小程序需要营业执照吗?下面,我们将为你介绍相关的情况和步骤. 一.营业执照是什么? 首先,我们需要了解营业执照是 ...

  8. 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序

    如今制作微信小程序已经是非常简单的事了,即使是完全不懂技术的小白,也能利用小程序制作工具快速生成小程序,基本上选一个模板就能快速把页面搭建好. 不过,虽然小程序页面搭建很简单,但还有不少人不知道页面搭 ...

  9. 小程序学习历程(二):注册小程序测试号

     该文适合还没有微信小程序开发者账号,以及有了开发者账号同时还想注册一个测试账号的读者. 开发者测试账号推出的用意,主要是:方便我们在决定正式注册小程序账号之前,或者仅仅只是想体验一下小程序(或小游戏 ...

  10. 如何用微信公众号快速注册小程序

    https://jingyan.baidu.com/article/ceb9fb109fab828cad2ba0ca.html 1 2 3 4 5 6 7 分步阅读 为方便公众号快捷接入小程序,并在各 ...

最新文章

  1. 测量几个光电传感器反向电容
  2. 第一章 为什么使用单元测试
  3. mac apache 和 nginx ssl 配置自签名的SSL
  4. dede 怎样调用其它栏目的文章或者缩略图列表且有分页效果?
  5. Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
  6. Java分析股票涨跌走势
  7. android九宫格密码源码,Android九宫格解锁的实现
  8. PCA、SVD、ZCA白化理论与实现
  9. Linux文件的三种时间属性
  10. 期货逼仓攻略之郑商所版
  11. 破解文件系统telnet密码【ZT】
  12. 程序设计与算法----动态规划之最长上升子序列
  13. java 抽象接口_JAVA中的“抽象接口”
  14. [linux/ unix] 查看占用端口的 进程ID 的区别
  15. Retinex算法Matlab代码——单尺度SSR
  16. 高通 mdm9607编译以及audio框架
  17. HBA的WWN号以及存储区域网络
  18. 测序数据量,测序深度和测序覆盖度
  19. 树莓派配合迅雷搭建远程下载机
  20. 全新 OceanBase 社区版开发者中心 ODC 核心功能解读

热门文章

  1. python自动答题助手_头脑王者python答题助手
  2. PLSQL 14.0.6 安装使用教程
  3. 简单FTP服务器搭建教程
  4. 微服务架构【技术点3】--- [初级] windows下zookeeper的配置+dubbo服务提供者端+dubbo消费者端配置
  5. linux基础篇(centeros)
  6. 屏幕取词翻译软件:Lingoes 灵格斯词霸
  7. python snownlp了解_分享python snownlp的实例教程
  8. 关于通信知识的思维导图
  9. 物体检测学习笔记-3D相机成像原理简介
  10. 凸优化非系统学习之笔记5:内点法