鱼C论坛

 找回密码
 立即注册
查看: 2728|回复: 4

请问这这串代码什么意思呀

[复制链接]
发表于 2021-4-26 06:01:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是我们老师写的掷色子的代码,好几段没看懂。
import random

r1 = [] # random rolls dice 1
r2 = [] # random rolls dice 2
s = [] # sum of values
#     1  2  3  4  5  6
q1 = [0, 0, 0, 0, 0, 0] #   
q2 = [0, 0, 0, 0, 0, 0] # roll value quantity
#     2  3  4  5  6  7  8  9 10 11 12
qs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # sums quantity

for i in range(600):
    r1.append(random.randint(1, 6))
    r2.append(random.randint(1, 6))

for v in r1:
    q1[v-1] = q1[v-1] + 1
for v in r2:
    q2[v-1] = q2[v-1] + 1

print("rolls dice 1: ", r1)
print("counts dice 1: ", q1)
print("rolls dice 2: ", r2)
print("counts dice 2: ", q2)

for i in range(len(r1)): # or r2 'cause it is the same
    s.append(r1[i] + r2[i])

for v in s:
    qs[v-2] = qs[v-2] + 1

print("sums of rolls: ", s)   
print("counts of sums: ", qs)

里面的:
for v in r1:
    q1[v-1] = q1[v-1] + 1
for v in r2:
    q2[v-1] = q2[v-1] + 1

for i in range(len(r1)): # or r2 'cause it is the same
    s.append(r1[i] + r2[i])

for v in s:
    qs[v-2] = qs[v-2] + 1

print("sums of rolls: ", s)   
print("counts of sums: ", qs)
是什么意思呀?最后print的哪个qs又是啥呀?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-26 08:49:47 | 显示全部楼层
本帖最后由 suchocolate 于 2021-4-26 08:50 编辑
# 统计各面出现的次数,1多少次,2多少次...6多少次:
for v in r1:
    q1[v-1] = q1[v-1] + 1
for v in r2:
    q2[v-1] = q2[v-1] + 1

# 把两组抛掷结果相加,再统计各种结果出现的次数:2多少次,3多少次...12多少次。
for i in range(len(r1)):
    s.append(r1[i] + r2[i])

for v in s:
    qs[v-2] = qs[v-2] + 1

print("sums of rolls: ", s)   
print("counts of sums: ", qs)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-4-28 16:34:35 | 显示全部楼层
import random
#三个空列表分别存骰子1的结果、骰子2的结果、两颗骰子的和
r1 = []
r2 = []
s = []
#q1、q2两个列表各有6个数来分别表示骰子1和2出现1-6的次数
q1 = [0, 0, 0, 0, 0, 0]
q2 = [0, 0, 0, 0, 0, 0]
#qs列表用来表示2-12(即两颗骰子的和)出现的次数
qs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
#循环600次(即投600次骰子)
for i in range(600):
    #在表示骰子1结果的r1列表添加结果(数值是1-6之间随机给一个)
    r1.append(random.randint(1, 6))
    # 在表示骰子2结果的r2列表添加结果(数值是1-6之间随机给一个)
    r2.append(random.randint(1, 6))
#遍历r1列表,即把r1列表的数一个一个取出来,用v来表示(由于r1列表中的值都是在1-6中取随机数,所以v的值在1-6之间)
#然后在q1列表中第v-1的位置的数加1
#列表索引是从0开始的
#即当v为1时,q1列表中第0的位置的数加1
for v in r1:
    q1[v-1] = q1[v-1] + 1
#遍历r2列表。。。。。
for v in r2:
    q2[v-1] = q2[v-1] + 1
print("rolls dice 1: ", r1)
print("counts dice 1: ", q1)
print("rolls dice 2: ", r2)
print("counts dice 2: ", q2)
#len(r1)表示r1列表的长度,即r1列表有多少个数值,这好像有点多余,毕竟上面在r1列表中添数值时是循环600次,这里肯定也是600。。。
#在表示两个骰子和的s列表添加数值,数值为(r1[i]+r1[i]),即r1列表和r2列表第i个数相加
for i in range(len(r1)):
    s.append(r1[i] + r2[i])
#遍历s列表。。。。
for v in s:
    qs[v-2] = qs[v-2] + 1
#打印结果,qs是上面用来表示两个骰子和出现次数的列表
print("sums of rolls: ", s)
print("counts of sums: ", qs)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-28 20:59:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-5 12:13:22 | 显示全部楼层
變量取名時盡量以自己看懂為名,不然寫到幾百行幾千行代碼後,才弄胡自己
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表