“喝酒猜拳逢七必过”是一个有趣的聚会小游戏,以下是它的基本规则:
- **参与人数**:
一般建议3人及以上参与,人数越多越有趣。
- **游戏规则**:
- 所有人围坐成一圈,从某个玩家开始依次报数。 - 报数时,每逢7的倍数(如7、14、21等)或者包含7的数字(如17、27、37等),玩家不能说出这个数字,而要喊“过”。 - 如果有人报错数或者没有及时喊“过”,则要接受惩罚,通常是喝一杯酒或者表演一个节目。然后从报错数的玩家重新开始报数,继续游戏。 这个游戏可以锻炼玩家的反应能力和注意力,同时在喝酒聚会等场合能增加欢乐氛围。
以下代码是实现:
#1到100逢七必过
for i in range(1,101):
#能被七整除的数字
if i % 7 == 0:
print("过")
#被10地板除后结果为7,例如71
elif i // 10 == 7:
print("过")
#被10除后余数为7
elif i % 10 == 7:
print("过")
else:
print(i)
主要思路就是利用for循环遍历1~100范围内符合条件的数字,使用if语句添加条件
1.能被七整除 2.被10地板除后结果为七 3.余数为7的数
施加三种条件后得到的就是完美结果。
知识扩展:
地板除
数学定义:a // b
= 最大的整数 q
使得 q ≤ a / b
举例:7 / 2 = 3.5
7 // 2 =3
另一种思路:
for i in range(1,100):
#能被七整除的数字
if i % 7 == 0:
print("过")
#包含7的数字
elif '7' in str(i):
print("过")
else:
print(i)
条件直接使用规则中直白的条件,除去7的倍数,再就是包含7的数字。
还可以使用函数进行封装
def seven_pass_game(end_num):
for num in range(1, end_num + 1):
output = "过" if num % 7 == 0 or '7' in str(num) else str(num)
print(output, end=' ')
if num % 10 == 0: # 每10个换行
print()
seven_pass_game(200)
知识扩展:
三元运算符 a if 条件控制 else b
满足条件走左边的a ,不满足条件走右边的b
使用for循环,也可以使用列表生成式
res = ["过" if i % 7 == 0 or "7" in str(i) else str(i) for i in range(1,101)]
print(",".join(res))
知识扩展:
列表生成式(列表推导式)
[ ------ for i in --------- ]
for 前面的条件可以随意更改