学习笔记(2024.08.04)

文章目录

学习笔记(2024.08.04)

一、for循环结构、遍历各种和range对象

1. for循环和可迭代对象遍历

请添加图片描述

请添加图片描述

2.可迭代对象

(1)序列。包含:字符申、列表、元组

(2) 字典

(3) 迭代骼对象(iterator)

(4) 生成器函数(generator)

(5) 文件对象

请添加图片描述

3. range对象

请添加图片描述

操作:利用for循环,计算1-100之间数字的累加和;计算1-100 之间偶数的累加和,计算 1-100之间奇数的累加和。

请添加图片描述

二、嵌套循环

一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”•

例一:操作:打印如下图案

请添加图片描述

请添加图片描述

例二:操作:利用嵌套循环打印九九乘法表

请添加图片描述

例三:操作:用列表和字典存储下表信息,并打印出表中工资高于 15000的数据

请添加图片描述

请添加图片描述

三、break语句、continue语句和else语句

1.break语句

break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只能跳出最近一层的循环。

操作:使用break语句结束循环

请添加图片描述

2. continue语句

操作:要求输入员工的薪资,若薪资小于0则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资。

请添加图片描述

3. else语句

在这里插入图片描述

操作:员工一共4人。录入这4位员工的薪资。全部录入后,打印提示“您已经全部录,入4名员工的薪资”。最后,打印输出录入的薪资和平均薪资。

在这里插入图片描述

四、循环代码优化技巧

虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:

1. 尽量減少循环内部不必要的计算

2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提

3. 局部变量查询较快,尽量使用局部变量

在这里插入图片描述

4. 连接多个字符串,使用join()而不使用+

5. 列表进行元素插入和删除,尽量在列表尾部操作

# 初始化一个空列表
result = []

# 向列表尾部插入元素
result.append(1)
result.append(2)
result.append(3)

print(result)  # 输出: [1, 2, 3]
# 初始化一个列表
result = [1, 2, 3, 4, 5]

# 从列表尾部删除元素
result.pop()
result.pop()

print(result)  # 输出: [1, 2, 3]

五、使用zip()并行迭代

我们可以通过 zipO函数对多个序列进行并行迭代,zipO函数在最短序列“用完”时就会停止。

请添加图片描述

六、推导式创建序列、列表推导式、字典推导式、集合推导式和生成器推导式

1. 推导式创建序列

推导式是从一个或者多个选代留快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的 Python 风格,会使用它代表你已经超过 Python 初学者的水平。

2. 列表推导式

请添加图片描述

3. 字典推导式

请添加图片描述

4.集合推导式

请添加图片描述

5.生成器推导式(生成元组)

请添加图片描述

七、综合练习

练习一:绘制不同颜色的多个同心圆

import turtle

t = turtle.Pen()
my_colors = ("red", "green", "yellow", "black")
t.width(4)
t.speed(0)
for i in range(30):
    t.penup()
    t.goto(0, -i*10)
    t.pendown()
    t.color(my_colors[i % len(my_colors)])
    t.circle(15+i*10)
turtle.done()       # 程序执行完,窗口仍然在

请添加图片描述

作业:绘制一个18*18的棋盘格

import turtle

t = turtle.Pen()
width = 30
num = 18

# 定义横线的起点和终点坐标
x1 = [(-400, 400), (-400+width*num, 400)]
# 定义竖线的起点和终点坐标
y1 = [(-400, 400), (-400, 400-width*num)]

# 设置画笔速度
t.speed(0)

# 绘制横线
for i in range(19):
    t.penup()
    t.goto(x1[0][0], x1[0][1] - width * i)
    t.pendown()
    t.goto(x1[1][0], x1[1][1] - width * i)

# 绘制竖线
for i in range(19):
    t.penup()
    t.goto(y1[0][0] + width * i, y1[0][1])
    t.pendown()
    t.goto(y1[1][0] + width * i, y1[1][1])

# 完成绘图
turtle.done()

请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值