建网站手续,手机蓝牙app开发教程,网上商城购物系统er图,网站域名 安全#x1f44f;作者简介#xff1a;大家好#xff0c;我是爱敲代码的小王#xff0c;CSDN博客博主,Python小白 #x1f4d5;系列专栏#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 #x1f4e7;如果文章知识点有错误… 作者简介大家好我是爱敲代码的小王CSDN博客博主,Python小白 系列专栏python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 如果文章知识点有错误的地方请指正和大家一起学习一起进步 如果感觉博主的文章还不错的话请三连支持一下博主哦 博主正在努力完成2023计划中以梦为马扬帆起航2023追梦人 python入门到实战专栏从入门到实战 Python爬虫开发专栏从入门到实战 Python办公自动化专栏从入门到实战 Python数据分析专栏从入门到实战 Python前后端开发专栏从入门到实战 目录
推导式创建序列
字典推导式
集合推导式 推导式创建序列
推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合从而避免冗长的代码。 ❤️推导式是典型的Python风格会使用它代表你已经超过 Python初学者的水平。
列表推导式
列表推导式生成列表对象语法如下
[表达式 for item in 可迭代对象 ] 或者{表达式 for item in 可迭代对象 if 条件判断}
[x for x in range(1,5)] #[1, 2, 3, 4]
[x*2 for x in range(1,5)] #[2, 4, 6, 8]
[x*2 for x in range(1,20) if x%50 ] #[10,20, 30]
[a for a in abcdefg] #[a, b, c,d, e, f, g]
#可以使用两个循环,使用zip并行迭代
cells [(row,col) for row,col in
zip(range(1,10),range(101,110))]
print(cells)
a [x for x in range(1,10) if x%20]
print(a)
#不适用推导式生成列表。二者对比。体现推导式的优势
b []
for x in range(1,10):if x%20:b.append(x)
print(b)
字典推导式
字典的推导式生成字典对象格式如下
{key_expression: value_expression for 表达式 in 可迭代对象}
类似于列表推导式字典推导也可以增加if条件判断、多个for循环。
values [北京,上海,深圳,广州]
cities {id*100:city for id,city in zip(range(1,5),values)}
print(cities)生成字典对象
{100: 北京
, 200: 上海
, 300: 深圳
, 400:
广州}
统计文本中字符出现的次数
my_text i love you, i love sxt, i love tong
char_count {c:my_text.count(c) for c in my_text}
print(char_count)结果输出
{ : 9, i: 4, l: 3, o: 5, v: 3, e:
3, y: 1, u: 1, ,: 2, s: 1, x: 1,
t: 1, g: 1, a: 1, q: 1}
集合推导式
集合推导式生成集合和列表推导式的语法格式类似
{表达式 for item in 可迭代对象 } 或者{表达式 for item in 可迭代对象 if 条件判断}{x for x in range(1,100) if x%90} {99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63} 生成器推导式不直接生成元组
很多同学可能会问“都有推导式元组有没有”能不能用小括号呢 (x for x in range(1,100) if x%90)
generator object genexpr at 0x0000000002BD3048
我们发现提示的是“一个生成器对象”。显然元组是没有推导式的。
一个生成器只能运行一次。第一次迭代可以得到数据第二次迭代 发现数据已经没有了。
gnt (x for x in range(1,100) if x%90)
for x in gnt:print(x,end )
for x in gnt:print(x,end )实时效果反馈
1. 如下列表推导式的代码输出的是 [x*2 for x in range(1,20) if x%50 ]A [5,10,15,20,25]
B [5,10,15, 20, 25,30]
C [1, 2, 3]
D [10, 20, 30] 2. 如下是字典推导式代码输出的是
values [北京,上海,深圳,广州]
cities {id*100:city for id,city in zip(range(1,5),values)}
print(cities)A {北京:1, 上海:2, 深圳:3, 广州:4}
B {北京:100, 上海:200, 深圳:300, 广州:400}
C {100: 北京, 200: 上海, 300: 深圳, 400: 广州}
D {1: 北京, 2: 上海, 3: 深圳, 4: 广州}
综合练习
1 、【操作】绘制多个同心圆
import turtle
p turtle.Pen() #画笔对象
radius [x*10 for x in range(1,11)]
#10,20,30,40...
my_colors (red,green,yellow,black)
p.width(4)
for r,i in zip(radius,range(len(radius))):p.penup()p.goto(0,-r)p.pendown()p.color(my_colors[i%len(my_colors)])p.circle(r)
turtle.done() #程序执行完毕窗口在
2 、【操作】绘制18*18棋盘
#画棋盘
import turtle
width 30
num 18
x1 [(-400,400),(-400width*num,400)]
y1 [(-400,400),(-400,400-width*num)]
t turtle.Pen()
t.speed(10)
# t.goto(x1[0][0],x1[0][1])
# t.goto(x1[1][0],x1[1][1])
for i in range(num1):t.penup()t.goto(x1[0][0],x1[0][1]-30*i)t.pendown()t.goto(x1[1][0],x1[1][1]-30*i)
for i in range(num1):t.penup()t.goto(y1[0][0]30*i,y1[0][1])t.pendown()t.goto(y1[1][0]30*i,y1[1][1])
t.hideturtle() #隐藏画笔
turtle.done() #保证运行窗口不被自动关闭
实操作业
1 输入一个学生的成绩将其转化成简单描述不及格(小于60)、 及格(60-79)、良好(80-89)、优秀(90-100)
2 已知点的坐标(x,y)判断其所在的象限
3 输入一个分数。分数在0-100之间。90以上是A,80以上是B70 以上是C60以上是D。60以下是E
4 利用while循环计算1-100之间数字的累加和计算1-100之间 偶数的累加和计算1-100之间奇数的累加和
5 利用for循环计算1-100之间数字的累加和计算1-100之间偶 数的累加和计算1-100之间奇数的累加和
6 打印如下图案: 7、利用嵌套循环打印九九乘法表
8 用列表和字典存储下表信息并打印出表中工资高于15000的数据
9、要求输入员工的薪资若薪资小于0则重新输入。最后打印出录 入员工的数量和薪资明细以及平均薪资
10 员工一共4人。录入这4位员工的薪资。全部录入后打印提示 “您已经全部录入4名员工的薪资”。最后打印输出录入的薪资和平均薪资 11 使用海龟绘图绘制同心圆 12 使用海龟绘图绘制18*18的棋盘