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

    技术2026-01-28  8

    第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) 改变线条宽度

    作业画棋盘

    Processed: 0.024, SQL: 9