Python之作业(三)

文章介绍了如何使用Python进行整数比较、生成相邻元素和的新列表以及随机生成符合特定格式的产品ID,涉及if语句、列表操作和random模块的使用。

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

Python之作业(三)

练习题

  • 给出3个整数,使用if语句判断大小,并升序输出
  • 有一个列表lst = [1,4,9,16,2,5,10,15],生成一个新列表,要求新列表元素是lst相邻2项的和
  • 随机生成100个产品ID,ID格式如下
    • 顺序的数字6位,分隔符点号,10个随机小写因为字符
    • 例如:000005.xcbaaduixy

1. 给出3个整数,使用if语句判断大小,并升序输出

x = [1, 5, 3] #6种可能,索引:0,1,2 0,2,1 1,0,2 1,2,0 2,0,1 2,1,0
y = []
if x[0] > x[1]: # 条件0比1大进入
    if x[1] > x[2]: # 1大于2进入
        y = [2, 1, 0]
    else: # 1<2 2>1
        if x[0] > x[2]:
            y = [1, 2, 0]
        else: # 1<2的另一种可能
            y = [1, 0, 2]
else: # 条件0比1小
    if x[0] > x[2]:
        y = [2, 0, 1]
    else:
        if x[1] > x[2]:
            y = [0, 2, 1]
        else:
            y = [0, 1, 2]

# print([x[i] for i in y]) # 列表解析式
print((list(x[i] for i in y))) # 生成器表达式

2.有一个列表lst = [1,4,9,16,2,5,10,15],生成一个新列表,要求新列表元素是lst相邻2项的和

x = [1, 3, 5]
y = []
for i in range(len(x) -1):
    y.append(x[i] + x[i+1])

print(y)
# 返回结果:[4, 8]
x = [1, 3, 5]
y = []
y = [x[i] + x[i+1] for i in range(len(x) -1)]
# 列表解析式的写法
print(y)
# 返回结果:[4, 8]

注释:不能被规模影响,先试3个数,3个数相邻加没问题再多也没问题了。

x = [1, 4, 9, 16, 2, 5, 10, 15]
y = []
y = [x[i] + x[i+1] for i in range(len(x) -1)]
# 列表解析式的写法
print(y)
# 返回结果:[5, 13, 25, 18, 7, 15, 25]

3.随机生成100个产品ID,ID格式如下

顺序的数字6位,分隔符点号,10个随机小写英文字符

例如:000005.xcbaaduixy

import random
x = [chr(0x61 + i) for i in range(26)]
for i in range(10):
	print("{:0>6}.{}".format(i+1, "".join(map(str, random.choices(x, k=10)))))

在这里插入图片描述

代码分析

需求是生成产品ID,有两部分前面是顺序的数字6位,分隔符点号,后面是10个随机小写英文字符。
1、先取出10位连续的英文字符可以重复取。

x = 'abcdefghijklmnopqrstuvwxyz'

# 第1种:额,手敲的,因为变量设定一次多次取,手敲也不失为一种办法。
import string
print(string.ascii_lowercase)

# 第2种:导入string模块,使用ascii_lowercase方法获取

在这里插入图片描述

alphabet = "".join(chr(i) for i in range(0x61, 0x61+26))
alphabet

# 第3种:直接去ascii编码表的内容
import random
x = [chr(0x61 + i) for i in range(26)]
for i in range(10):
    print("{:0>6}.{}".format(i+1, "".join(map(str, random.choices(x, k=10)))))

# 这是我自己写的取值方法
代码解析:
1、先导入random模块
2、定义一个x变量,内容是取Ascii码表的0x61 + i的值也就是26个字母
3、定义一个for循环,迭代对象是range(10),按题目要求应该写range(1, 101)
4print,format函数,第一个大括号中{:0>6}的意思是右对齐空格补零总空格最多6个,然后使用join方法连接,map变形一下,在用random
	模块的choices方法取x的值,k=10指定取10次。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值