第69课时: 推导式创建序列 列表推导式 字典推导式 集合推导式 生成器推导式
推导式创建序列:
推导式是典型的python风格,效率高:
1列表推导式:
列表推导式生成列表对象,语法如下:
带有判断语句的,就是只有满足 if条件的才被选上:
a=[x for x in range(5)]
print(a)
a=[x*8 for x in range(5)]
print(a)
[0, 8, 16, 24, 32]
a=[x*2 for x in range(5) if x>2]
print(a)
[6, 8]
传统的写法(不用推导式):
a=[]
for x in range(5):
if x>2:
a.append(x*2)
print(a)
[6, 8]
2字典推导式:
操作统计字符串各字符出现次数
my_text = 'wdnmd,woc'
char_count={c:my_text.count(c) for c in my_text}
print(char_count)
使用普通方法;实现上述要求:
my_text = 'wdnmd,woc'
a={}
for i in range(len(my_text)):
a[my_text[i]]=my_text.count(my_text[i])
print(a)
{‘w’: 2, ‘d’: 2, ‘n’: 1, ‘m’: 1, ‘,’: 1, ‘o’: 1, ‘c’: 1}
3集合推导式:
集合推导式生成集合,和列表推导式生成列表语法格式类似
a={x for x in range(5) if x%2==0 }
print(a)
{0, 2, 4}
4生成器推导式(生成元组):
元组与其他不同,
生成的是一个生成器(是可迭代对象)和range()类型一样
a=(x for x in range(5) if x%2==0 )
print(a)
<generator object at 0x000001BB42CA2DE0>
a=(x for x in range(5) if x%2==0 )
print(tuple(a))
(0, 2, 4)
a是一个生成器,必须用tuple()转化为元组。
a是一个可迭对象:
a=(x for x in range(5) if x%2==0 )
for x in a:
print(x , end=' ')
0 2 4
第70课时: .综合练习 绘制不同颜色的多个同心圆 绘制棋盘
绘制不同颜色的多个同心圆
Day 23-1
先绘制单个园(输入q或者Q退出显示):
import turtle
t = turtle.Pen()
t.circle(100)
while True:
s=input('wdnmd')
if s.upper()== 'Q':
break
或者用 turtle.done() 表示保留原图
import turtle
a=10
t = turtle.Pen()
t.circle(a)
for i in range(10):
t.penup()
t.goto(0,-(i+1)*10)
t.pendown()
t.circle(a+(i+1)*10)
turtle.done()
改变颜色
import turtle
a=10
t = turtle.Pen()
t.circle(a)
t.speed(10)
color = ('red','yellow','blue','black','green')
for i in range(10):
t.penup()
t.goto(0,-(i+1)*10)
t.pendown()
b=i
if b>4:
b=4
t.color(color[b])
t.circle(a+(i+1)*10)
turtle.done()
t.speed(100)
用于调整绘图速度的。
t.width(4)
改变线条宽度