Python基础知识-pycharm版第五章学习笔记
for循环通常用于可迭代对象的遍历。for循环的语法格式如下:
for 变量 in 可迭代对象:
循环体语句


2.可迭代对象包含有:
包括以下几个主要类型:
1. 字符串型数据
2. 列表数据
3. 元组数据
4. 字典数据
5. 迭代器对象实例
6. 生成器函数定义
7. 文件操作的对象实例


3.range对象是一个迭代器对象,用来产生指定范围的数字序列:
range(start, end, [step])
该数值序列将从参数start处起始,并在参数end之前终止。如果未指定start,则默认设置为0。步长是一个可选参数,默认值设为1。
for i in range(10) 产生序列:0 1 2 3 4 5 6 7 8 9
for i in range(3,10) 产生序列:3 4 5 6 7 8 9
for i in range(3,10,2) 产生序列:3 5 7 9
练习:


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







- break 语句适用于 while 和 for 循环结构,并用于终止当前所有执行的循环。在存在嵌套的情况下,默认情况下该语句仅终止最内层的循环

continue语句用于终止当前的循环,并执行下一轮操作。当涉及多层嵌套时,该语句同样应用在内层最近的循环中。
录入员工的薪资信息。如果录入的薪资数据为负值,则需要重新录入数据。最后系统会输出录入的员工数量以及详细的薪资信息列表,并计算并显示所有录入员工的平均薪资



- while 和 for 循环可以附加一个 else 语句(可选)。如果 for 和 while 语句未被 break 结束,则会被执行;否则不会被执行;语法格式如下:
while 条件表达式:
循环体
else:
语句块
for 变量 in 可迭代对象:
循环体
else:
语句块
练习题:共有四名员工。录入这四人的薪资信息,在所有信息完整后,请打印并显示提示信息"您已成功录入全部四位员工的薪资"。最后一步,请计算并输出每位员工的工资总额以及全体人员的平均工资。


8.循环代码优化原则:
(1)尽量减少循环内部不必要的计算;
(2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提;
(3)局部变量查询较快,尽量使用局部变量;
(4)连接多个字符串,使用join()而不使用+;
(5)列表进行元素插入和删除,尽量在列表尾部操作。

借助zip()函数对多个序列实现同步遍历,在某一个序列耗尽其全部元素时该操作会终止:


基于这些迭代器构建序列的方法是一种高效的方式;它能够整合循环与条件判断,并且使得生成过程无需繁琐的代码。
(1)列表推导式:
列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象]
或者:
[表达式 for item in 可迭代对象 if 条件判断]
(2)字典推导式:
字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}
字典推导也可以增加if条件判断、多个for循环
(3)集合推导式:
集合推导式生成集合,和字典推导式的语法格式类似:
{表达式 for item in 可迭代对象 }
或者:
{表达式 for item in 可迭代对象 if 条件判断}
(4)生成器推导式:
元组不是推导式,在Python中使用(x for x in range(1,100) if x%9==0)时会生成一个生成器对象;每次只能运行一次该生成器对象,在第一次迭代时能够获取数据,在后续的任何一次迭代时均没有数据可获取:




11.练习




程序中的功能模块通常具有高度可重用性。
其主要功能不仅在于提高代码复用性,
还能保证整个系统的统一性和稳定性。
一致性体现在无论对任何地方进行功能优化或修改时,
在相关联的功能模块中都会得到相应更新。
(1)一个程序由一个个任务组成;函数就是代表一个任务或者一个功能;
(2)函数是代码复用的通用机制
按照功能划分,Python程序中主要包含以下几类基本功能:①预定义功能(如字符串操作str()、列表管理list()以及长度获取len());②标准库提供的辅助功能(可借助import语句引入系统预置工具包);③第三方模块功能(需从Python社区下载安装其他高质量的模块);④个人定制功能。
Python中,定义函数的语法如下:
def 函数名 ([参数列表]) :
'''文档字符串'''
函数体/若干语句
要点:
(1)使用def来定义函数,然后就是一个空格和函数名称:
Python执行def时,会创建一个函数对象,并绑定到函数名变量上。
(2)参数列表
圆括号内是形式参数列表,有多个参数则使用逗号隔开;
形式参数不需要声明类型,也不需要指定函数返回值类型;
无参数,也必须保留空的圆括号;
实参列表必须与形参列表一一对应。
(3)return 返回值
如果函数体中包含 return 语句,则结束函数执行并返回值;
如果函数体中不包含 return 语句,则返回 None 值。
(4)调用函数之前,必须要先定义函数,即先调用def创建函数对象
内置函数对象会自动创建;
内置库与第三方库中的函数,在使用import导入模块时会被该模块中的函数体所执行。
13.练习:定义一个函数,实现两个数的比较,并返回较大的值。


变量a与b被称为"形式参数"(简称"形参"),它们是在函数定义过程中所使用的(其名称需遵循"标识符"命名规定)。
当调用函数时,在代码中传递的参数被称为"实际参数"(即"real parameters"),简称为实参(real argument)。在代码中即是所使用的实际参数
文档字符串即为函数的注释,在文本中可通过三个单引号或三个双引号创建,并在其中加入多行文本用于详细说明
15.调用help(函数名.doc)可以打印输出函数的文档字符串:


16.return返回值要点:
(1)如果函数体中包含return语句,则结束函数执行并返回值;
(2)如果函数体中不包含 return 语句,则返回None值;
(3)要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。
练习:定义一个返回两个数平均值的函数:


练习:测试return返回值的基本用法


在Python编程语言中,“全部都是对象”,当使用def关键字定义函数时,程序就会自动生成相应的函数对象。


当编写def函数时,在开发环境中运行代码会导致以下情况:首先,在运行代码的过程中,系统会生成相应的函数实例;其次,在这些情况下,默认情况下会创建一个全局的print_star变量,并将其赋值给print_star;最后,在后续操作中可以通过该变量来引用对应的函数对象。

运行操作「c = print_star」后,则可观察到 print_star 变量的值已被成功赋值给变量 c;内存布局更新为:

通过观察发现变量c和print_star都共享相同的函数指针。这意味着调用c(3)与调用print_star(3)的结果将完全一致。在Python编程语言中,默认情况下使用圆括号来指示对函数的调用。如果未使用圆括号,则Python将处理该函数作为普通的对象。
再如:
zhengshu = int
zhengshu("234")
变量zhengshu被赋予了内置函数对象int()的引用,并且由此可知,zhengshu与int都指向同一个内置函数对象
