当前位置: 首页 > news >正文

[Python学习日记-12] 双色球彩票程序练习(使用到列表、判断、循环等)

[Python学习日记-12] 双色球彩票程序练习

简介

题目

答案与解析

简介

        本章的练习将会使用到前面学习的知识点,用于检测前面学习的效果。

题目

双色球彩票选购程序:

  1. 先让用户依次选择6个红球,再选择2个蓝球,最后统一打印用户选择的球号。
  2. 确保用户不能选择重复的,选择的数不能超出范围。

程序效果如下:

答案与解析

程序代码:

# -*- encoding: utf-8 -*-
count = 0
red_count = 1
blue_count = 1
red_ball = []
blue_ball = []
print("Welcome to JoveZou lottery station")while count < 8:"""双色球游戏,选择红球"""if red_ball.__len__() < 6:# 防止不合法的输入# try:# input().strip()可已去掉输入的字符前后的空格,防止出错select_red_ball = input("\033[31;1m[" + str(red_count) + "]select red ball:\033[0m").strip()# 判断用户输入的字符是否完全为数字if select_red_ball.isdigit():# 判断选择的号码是否合法if int(select_red_ball) in red_ball:  # 判断是否已经选过print("number " + select_red_ball + " is already exist in red ball list")elif 1 <= int(select_red_ball) <= 32:  # 判断号码是否在规定范围内red_ball.append(int(select_red_ball))count += 1red_count += 1# print(red_ball)else:  # 若输入的号码不合法则提示用户print("only can select n between 1-32")else:print("Input is all number.")# except:#     print("号码输入错误,请重新输入")"""双色球游戏,选择蓝球在选择完红球后"""if red_ball.__len__() == 6 and blue_ball.__len__() < 2:  # 需要先判断红球是否已经选完了# 防止不合法的输入# try:# input().strip()可已去掉输入的字符前后的空格,防止出错select_blue_ball = input("\033[34;1m[" + str(blue_count) + "]select blue ball:\033[0m").strip()# 判断用户输入的字符是否完全为数字if select_blue_ball.isdigit():# 判断选择的号码是否合法if int(select_blue_ball) in blue_ball:  # 判断是否已经选过print("number " + select_blue_ball + " is already exist in blue ball list")elif 1 <= int(select_blue_ball) <= 16:  # 判断号码是否在规定范围内blue_ball.append(int(select_blue_ball))count += 1blue_count += 1# print(blue_ball)else:  # 若输入的号码不合法则提示用户print("only can select n between 1-16")else:print("Input is all number.")# except:#     print("号码输入错误,请重新输入")
# 输出用户所选号码
print("Red ball: ", red_ball)
print("Blue ball: ", blue_ball)
print("Good Luck.")

代码解析:

1、变量的定义

count        # 用于记录总共输入了多少个有效数字
red_count        # 用于记录红球输入了几个
blue_count        # 用于记录篮球输入了几个
red_ball        # 用于记录红球具体输入的数字,用列表存储
blue_ball        # 用于记录蓝球具体输入的数字,用列表存储

2、首先使用 while 循环做一个总体的循环,因为我们需要输入的全部数字为8个,其中我们的计数变量为 count,每当有数据输入成功后即加1

3、使用 if 来判断红蓝球是否已经选完

red_ball.__len__() 和 blue_ball.__len__() 是读取对应的列表长度的,题目中只要求红球选6个蓝球选2个,当发现没有选完时就可以进入该 if

4、最后在第3点创建的 if 当中嵌套 if 判断用户输入是否为合法

  • select_blue_ball.isdigit() 判断输入是否为数字
  • int(select_blue_ball) in blue_ball 判断输入是否已经在列表中了
  • 1 <= int(select_blue_ball) <= 16 判断输入是否在规定范围内,如果在规定范围内则把它加入到列表中,并把变量 count 和对应球色的统计变量(以蓝色为例:blue_count)加1,红色球也是同样的操作
  • 若不合法则为提示相关信息提示用户

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 运营有哪几种?
  • MySQL——表操作
  • Django+Vue3前后端分离学习(二)(重写User类)
  • 代码随想录-- 二叉树 -- 二叉树的所有路径
  • 未来的去中心化网络:Web3与AI的深度融合探讨
  • 操作系统:线程实现方式
  • 最大时间
  • Open3D 四元数、欧拉角及旋转向量转旋转矩阵的方式
  • application/x-www-form-urlencoded与multipart/form-data与application/json的区别
  • 多态与接口(Golang)
  • 金融业开源技术 术语
  • 报错module ‘markdown‘ has no attribute ‘version‘解决方法
  • 网络包处理库Scapy: 计算checksum,csum
  • 米壳AI:分享一个轻松保存外网高清原视频的方法!
  • 微信企业微信忽然爆满 怎么清理才干净?一招彻底清理干净垃圾文件
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • ES6 学习笔记(一)let,const和解构赋值
  • JavaScript 基本功--面试宝典
  • PHP的类修饰符与访问修饰符
  • Python_网络编程
  • SpiderData 2019年2月13日 DApp数据排行榜
  • swift基础之_对象 实例方法 对象方法。
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 安卓应用性能调试和优化经验分享
  • 从伪并行的 Python 多线程说起
  • 聊聊directory traversal attack
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 容器服务kubernetes弹性伸缩高级用法
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 自制字幕遮挡器
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​ubuntu下安装kvm虚拟机
  • ​如何使用QGIS制作三维建筑
  • ​香农与信息论三大定律
  • #ifdef 的技巧用法
  • #Ubuntu(修改root信息)
  • #数学建模# 线性规划问题的Matlab求解
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (java)关于Thread的挂起和恢复
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (力扣)循环队列的实现与详解(C语言)
  • (七)理解angular中的module和injector,即依赖注入
  • (十六)视图变换 正交投影 透视投影
  • (算法)求1到1亿间的质数或素数
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET NPOI导出Excel详解
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET中统一的存储过程调用方法(收藏)
  • /etc/sudoers (root权限管理)
  • @SpringBootApplication 包含的三个注解及其含义
  • [AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性