栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python基础训练 day23

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python基础训练 day23

python基础训练 day23

小白打卡第23天!

题目来源

标题
      • python基础训练 day23
        • 第一题(移项)
        • 第二题(转圈)

第一题(移项)
# 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数

新建一个列表,把旧的列表经过操作,放到新的列表中

def fun(m, n):
    if m >= n:
        print('error')
    list0 = [int(input('请输入整数')) for i in range(n) ]
    list1 = []
    for i in range(n-m, n):
        list1.append(list0[i])
    for k in range(n-m):
        list1.append(list0[k])
    print(list1)
fun(2,5)

运行结果:

请输入整数1
请输入整数2
请输入整数3
请输入整数4
请输入整数5
[4, 5, 1, 2, 3]
第二题(转圈)
# 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

直接上代码:

def fun(n):
    list0 = []
    for i in range(1, n+1):     # 生成顺序数列
        list0.append(i)
        count = 0               # 用于标记3
        flag = 0                # 用于索引
    while True:
        if list0[flag] != 0:
            count += 1
            if count == 3:
                list0.remove(list0[flag])
                count = 0
                flag -= 1   # 因为数列变短1,所以索引减一
            if flag == len(list0) - 1:  # 因为是循环,所以索引到头时索引归零
                flag = -1   

        if len(list0) == 1:
            for j in list0:
                if j != 0:
                    print(j)
            break
        flag += 1
fun(34)
fun(3)

鬼知道这个临界条件我弄了多久…
运行结果:

10
2

进程已结束,退出代码为 0

今日打卡结束,

无了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656198.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号