拜师——python基础入门—第5大节课—推导式创建序列 列表推导式 字典推导式 集合推导式 生成器推导式;综合练习 绘制不同颜色的多个同心圆 绘制棋盘——day23

第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)
改变线条宽度
在这里插入图片描述

作业画棋盘

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值