python n个人围成一圈_Python练习实例69 | 有n个人围成一圈,顺序排号。从第一

本文通过一个有n个人围成一圈报数,报到3的人退出的游戏,来讲解Python中pop()函数的使用。通过创建列表模拟过程,最后留下的人的编号是原来的第几号。代码实现包括输入人数,利用pop()移除符合条件的元素,最终展示剩余的编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天的这道题,还是有一些难度的,我们先来看一下题目。

d73ae65582ed7b3a3c5de05e419b5219.png

小黄人.jpg

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

看完之后,是不是有种瞬间蒙圈的赶脚?

其实这道题考察的主要是Python当中的一个叫做pop()的函数,而这个函数也是在上一个实例当中使用到过的一个函数,明白了这个函数的用法之后,就能够比较轻松的将这道题目解答出来。

pop()函数的主要作用可以详见下图:

d9c9f019d20f9023986764b4e8facd47.png

image.png

下面我们来看一下代码:

# 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

n = int(input("请输入人数:"))

list = [] # 创建一个空列表

count = 0 #创建一个计数的值

for i in range(1,n+1): #创建一个循环,将列表当中的所有元素都添加进去

list.append(i)

while True: # 如果为真 创建一个条件循环

if len(list) == 1: # 如果列表的长度为1

print(list) # 打印出该列表的数字

break

else: #否则针对其余情况,单独创建一个如下的条件

count += 1 # 记数加1

pop = list[0] #取出列表当中的第一个元素,并赋值给pop

list.pop(0) #移除列表当中的第一个元素

if count == 3: # 如果count的数为3的时候

count = 0 #count归0

continue #并继续

else: # 否则

list.append(pop) #将移除的元素加入到list当中,如此循环往复

print(list) # 最后打印出剩余在list中的元素

我们再来看一下输出的结果:

C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/Python69.py"

请输入人数:34

[10]

[10]

Process finished with exit code 0

2020年4月1日(愚人节快乐!)

北京市通州区京贸中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值