列表、元组和字符串的共同点:
1. 可以通过索引得到每一个元素;
2. 默认索引值总是从0开始;
3. 可以通过分片的方法得到一个范围内的元素的集合;
4. 有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
list([literable])把一个可迭代对象转换为列表。例如:
list()生成一个空列表。
tuple([literable])把一个可迭代对象转换为元组
max:返回序列或参数集合中的max值
搜索出的结果是ASCII码的最小。
注意:使用max或min的方法必须保证比较的对象是同类的,而不能是str和int的比较。
sum()求和
sum(numbers,8):表示把列表求和之后再加上8。
sorted:排序
enumerate的使用:(忽略中间的输入错误)
zip:同位置的元素合成一组
P18
函数、对象、模块
函数:
定义函数:使用def(eg. def Myfirstfunction(): )
def 函数名称():不能漏了括号和冒号
调用函数时:
函数名()(Myfirstfunction())
试着制作简单的函数(同理可制作其他):如下,我们尝试制作一个元素相加的函数。
如果要得到字符串拼接而不是真正的相加,就在两个整型上分别加上引号即可。如:
我们也可以直接使用return函数返回结果而不使用print.
形参和实参:
形参只是一个形式:比如一开始在定义函数时,function(name):xxxx,
这时候的name就是一个形参,而我们调用函数时真正引用的字符为实参。
设置关键字参数:
默认参数
收集参数:(可变参数)加*星号,表示不确定括号内会有多少个参数,这样调用时可以根据实际情况选择参数数量,如下图:
如果有收集参数之后还要添加其他的参数,那么需要把其他的参数也设置为默认的参数,比如:
注意函数和过程的区别:
!有返回值的为函数,没有返回值的为单纯的过程~
python可以返回多个值:列表
局部变量:local variable
全局变量:global variable
我们可以这样使用函数:
当我们要尝试print final_price的时候,我们发现
python显示final_price not defined?为什么呢?这就是局部变量,意思是final price这个变量只在discount中的函数才是有效的,出了这个函数则不ok!
总结:在函数中定义的参数和变量都称为局部变量(意思为离开这个函数就无效),因为他们处于同一栈中,执行完语句之后变量所在的空间已经被删除。
在这个例子中,全局变量为original_price和discount_rate(在函数之外),所以即使在其他地方(包括函数范围内也可以调用,比如)
我们把两种情况放在一起更好比较。在下图中,第三行代码输入打印original_price,发现可以实现,但是最后一行代码的final price却打印不出来,这就是全局变量和局部变量的差距(局部变量好小气orz)
如果我们要尝试在函数内部修改一个全局变量,python会新建一个和这个全局变量相同的变量反映在函数中,但在函数外,这个全局变量并不会改变。
课后题:
1. 如何在函数中修改全局变量的值?
-->使用global关键字。
2. 如何修改外部函数中的局部变量:
-->nonlocal
网友评论