Python例题(07)

1.合并2个有序列表构成一个新的有序列表

法1:
l1=[1,2,3,4,5]
l2=[6,7,8,9,0]
l3=l1+l2
l3.sort()
print(l3)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
法2:
l1=list(eval(input('请输入第一个列表:')))
l2=list(eval(input('请输入第二个列表:')))
l1.extend(l2)  # extend 尾部追加一个完整列表
l1.sort()
print(l1)
# 请输入第一个列表:2,3,4,5,6,7,8
# 请输入第二个列表:9,0
# [0, 2, 3, 4, 5, 6, 7, 8, 9]

2.输入一个十进制转为二进制输出

法1:
a = int(input('请输入一个十进制整数:'))
print('转为二进制为:',bin(a))
# 请输入一个十进制整数:23
# 0b10111
法2:
m = int(input('请输入一个十进制整数:'))
l1=[]
if m==0:
    print('0000')
else:
    while m:
        m,r=divmod(m,2)  # divmod 计算m对2取余得到的商和余数
        l1.append(r)
    l1.reverse()
    print(l1)
# 请输入一个十进制整数:23
# [1, 0, 1, 1, 1]

3.编写程序实现判断列表是否为升序

l1=list(eval(input('请输入第一个列表:')))
f=1  # 标志位,默认为升序
for i in range(len(l1)-1):
    if l1[i]>l1[i+1]:
        f=0
        break
if f:
    print('升序')
else:
    print('无序')
# 请输入第一个列表:9,8,7,6,4,3,2,1
# 无序
# 请输入第一个列表:1,2,3,4,5,6,7,8,9
# 升序

4.将列表前p的元素平移到列表尾部输出

法1:
import random as a

l1=a.sample(range(0,20),10)
print(l1)
p=int(input('请输入移动元素个数:'))
for i in range(p):
    l1.append(l1[i])
l1=l1[p:]
print(l1)
# [14, 17, 4, 3, 13, 19, 7, 10, 5, 12, 2, 0, 18, 6, 1, 16, 9, 8, 15, 11]
# 请输入移动元素个数:6
# [7, 10, 5, 12, 2, 0, 18, 6, 1, 16, 9, 8, 15, 11, 14, 17, 4, 3, 13, 19]
法2
import random as a

l1 = a.sample(range(0, 20), 10)
print(l1)
p = int(input('请输入移动元素个数:'))
l2 = l1[0:p]
l1 = l1[p:]
l3 = l1 + l2
print(l3)
# [0, 17, 13, 6, 15, 14, 8, 10, 1, 9]
# 请输入移动元素个数:3
# [6, 15, 14, 8, 10, 1, 9, 0, 17, 13]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值