python编程<九>

这篇博客探讨了编程中的三个核心问题:如何实现0元素移动并保持列表排序,如何根据输入序列进行排序,以及解决数学上的四位数解谜。示例代码详细展示了Python实现,包括利用集合操作简化元素处理,以及通过双重循环实现数字的升序排列。此外,还通过编程求解了一个有趣的数学问题,即找出符合条件的四位数。这些例子旨在深化对编程技巧和数学应用的理解。
摘要由CSDN通过智能技术生成

学习目标:

1.实现0元素的移动;
2.列表排序和原位置;
3.求解四位数。


学习内容:

示例一 实现0元素的移动,题目如下:
列表中存放一组数据[0, 20, 0, 4, 31],请实现将列表中的所有的零元素移动到列表的尾部,非零的元素按照原来的顺序排列。

代码演示及解读:

ls = [0, 20, 0, 4, 31]
print(ls) #打印出原有的数据
n1 = len(ls) #计算出原有数据的长度
ls1 = set(ls) #将列表转化为集合的形式,集合具有将相同元素只显示一次的作用
ls1.remove(0)  #只能删除一次,将集合中可能含有的零元素删除
n2 = len(ls1) #计算出不含零元素集合的长度
ls = list(ls1)#将集合再次转化为列表
#n1 - n2 表示原有数组中含有零元素的个数,我们通过循环来在现有列表的尾部再添加上
for i in range(0, n1 -n2):
    ls.append(0)
print(ls) #显示要求的列表

运行结果演示:
在这里插入图片描述

示例二
在这里插入图片描述
代码演示:

s = input()
x = s.split(" ")
a = []  #用来存放元素
b = []  #用来存放元素的序号
n = 0   #表示元素的初始序号
#该循环实现输入元素的列表化以及存储输入元素的序号
for i in range(len(x)):
    a.append(int(x[i])) #将元素转化为整型,存在a列表中
    n = n + 1    
    b.append(n) #存储原序列的序号
# print(a) #显示输入列表的元素
# print(b) #显示输入列表元素的序号

#完成数字的排列
for i in range(len(x)):
    for j in range(i+1, len(x)):
    #比较大小,按照要求进行交换
        if a[i] > a[j]:
            a[i], a[j] = a[j], a[i] #交换元素
            b[i], b[j] = b[j], b[i] #交换编号
print(a)
print(b)

运行结果演示:
在这里插入图片描述
示例三 求解四位数,要求如下:
一个四位数,如果在它的左边加一个数字8,就可以得到一个五位数;如果在它的右边加一个数字6,就可以得到另一个五位数,这两个五位数的和是12141,求原来这个四位数是多少?

解析:我们令这个四位数为x,
在它的左边加一个数字8,就可以得到一个五位数:810000 + x;
在它的右边加一个数字6,就可以得到另一个五位数:x
10 + 6
这两个五位数的和是121410

代码演示:

for x in range(1000, 10000): #这四位数可能出现的范围
    M = 8*10000 + x  #第一个五位数
    N = x*10 + 6  #第二个五位数
    if M + N ==  121410:
        print(x)

运行结果演示:
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值