本章通过模拟掷骰子计算的5案例来进行学习基础的Python程序
案例描述
通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率
比如:抛掷2个骰子50次,出现点数为7的次数是8,频率是0.16
模拟图
案例分析
根据以下函数判断密码强度并输出:
1.设置一个变量strength_level用于记录密码的强度,初始为0。满足一个条件,对其加1;
2.长度判断:使用len()方法;
3.包含数字判断:对密码字符串遍历,使用isnumeric()方法;
4.包含字母判断:对密码字符串遍历,使用isalpha()方法;
5.如果strength_level等于3,密码强度合格,否则不合格
v1.0
新建一个简单的Python程序,1.0功能:模拟抛掷1个骰子,并输出其结果;通过Python的random模块模拟随机事件或者生成随机数;遍历列表时,使用enumerate()函数同时获取每个元素的索引号及其元素值。首先掷骰子编写成一个函数,然后编写主函数设置参数并开始掷骰子,最后输出结果。
知识点:
1.random模块
(1)random模块用于生成随机数,包含整数,浮点数,获取列表中的随机元素
(2)常用函数,random库里面有几个常用的函数,分别如下:
random常用函数
2.enumerate()函数
(1)enumerate()函数用于将可遍历的组合转换为一个索引序列
(2)一般用于for循环中,同时列出元素和元素的索引号
random模块函数示例:
enumerate函数示例:
扔骰子函数,先引入ramdom库,randint(1,6)返回的是1 - 6的整数赋值给dice_num,最后返回该结果:
import random
def roll_dice():
"""
掷骰子
"""
dice_num = random.randint(1, 6)
return dice_num
主体代码,里面先初始化主要的参数是total_time次数和result_list次数统计列表,for循环迭代range(total_times)对象,计算每次掷骰子的结果然后再for循环给统计列表计数,若符合则+1,最后enumerate()会返回两个参数,第1个给i,第2个给result再进行for循环迭代,因为列表下标是从0开始的,所以format的i需要+1正确显示0:
# 掷骰子次数
total_times = 1000
# 初始化结果列表[0,0,0,0,0,0]
result_list = [0] * 6
# 开始掷骰子
for i in range(total_times):
roll = roll_dice()
# 给列表计数
for j in range(1, 7):
if roll == j:
result_list[j - 1] += 1
# 输出结果
for i, result in enumerate(result_list):
print("计数为{}的骰子出现次数{},频率:{}".format(i + 1, result, result / total_times))
结果如图所示: