a.sort()没有返回值。而sorted(a)是有返回值的。
Python的标准比较运算符:<、<=、 > 、>=、 ==、 !=
函数用法和底层分析:函数是一个可重用的程序代码块,函数也代表一个任务和功能(function),是代码复用的通用机制。
函数的分类:1、内置函数(str()) 2、标准库函数(可以用import调用) 3、第三方库函数 4、用户自定义函数
函数的定义语法:def 函数名(参数列表(无也可不写)):
’’’文档字符串’’’
函数体
要点:1、python执行def时候,会创建一个函数对象,并绑定到函数名上
··2、圆括号内是形式参数列表,有多个参数则使用逗号隔开
··3、形式参数不需要声明类型,也不需要指定函数返回值类型
··4、无参数,也必须保留空的圆括号
··5、实参列表必须与形参列表一一对应
return 返回值
(1) 如果函数体中包含return 语句,则结束函数执行并返回值;
(2) 如果函数体中不包含return 语句,则返回None 值。
4. 调用函数之前,必须要先定义函数,即先调用def 创建函数对象
(1) 内置函数对象会自动创建
(2) 标准库和第三方库函数,通过import 导入模块时,会执行模块中的def 语句
形参和实参:定义函数的时候使用,为形参,当做局部变量来使用,当调用这个函数的时候,传的参数为实参。形式参数的命名只要符合“标识符”命名规则即可。形参和实参必须一一对应,多个形参的时候用逗号隔开。
文档字符串(函数的注释):我们调用help(函数名.__doc__)可以打印输出函数的文档字符串。
return 返回值要点:
1. 如果函数体中包含return 语句,则结束函数执行并返回值;
2. 如果函数体中不包含return 语句,则返回None 值。
3. 要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。
return的作用:1、返回值 2、结束函数的执行。
函数也是对象。
变量的作用域:全局变量和局部变量。
全局变量:
1. 在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块
结束。
2. 全局变量降低了函数的通用性和可读性。应尽量避免全局变量的使用。
3. 全局变量一般做常量使用。
4. 函数内要改变全局变量的值,使用global 声明一下
局部变量:
1. 在函数体中(包含形式参数)声明的变量。
2. 局部变量的引用比全局变量快,优先考虑使用。
3. 如果局部变量和全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量
每当栈b用完后就丢掉,直到下次调用的时候再建一个,用完再丢掉。
全局变量要修改,需要先声明,再赋值。
参数的传递:从实参到形参,所有的赋值操作都是“引用的传递”,Python 中参数的传递都是“引用传递”,不是“值传递”。具体操作时分为两类:
1. 对“可变对象”进行“写操作”,直接作用于原对象本身。
2. 对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间。(起到其他语言的“值传递”效果,但不是“值传递”)
传递可变对象的引用,在函数体中不创建对象拷贝,而是直接修改所传递的对象。
传递不可变对象的引用(例如:int、float、字符串、元组、布尔值):实际传递的还是对象的引用。在”赋值操作”时,由于不可变对象无法修改,系统会新创建一个对象。
浅拷贝:不拷贝子对象的内容,只拷贝子对象的引用。
深拷贝:会连子对象的内存也全部拷贝,对子对象的修改不会影响源对象。
浅拷贝和深拷贝的引用地址一样。
传递不可变对象的时候,如发生拷贝,类似于浅拷贝。