[Python]清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干( 四 )


b = a VS b = a[:

b = a时 , b就是跟着a变化 , 并且a与b的id一样 。 b = a[:
时 , b与a是独立的整体 , id就不同 , 只不过指向了同一个值 。 对a做修改(增删改查) , 对b没有影响 。
19、程序的三种基本结构:
顺序结构、·分支结构(if-else、elif)、·循环结构(遍历:for…in、条件:while 。 循环控制:break/continue) 。
异常值处理:try-except 。
二分支结构简单语法:表达式1 if 条件 else 表达式2
循环结构分遍历循环(for)和无限循环(while):
遍历循环:for 循环变量 in 遍历结构:语句块(从遍历结构逐一提取元素 , 放在循环变量中 , 对每一个提取出的元素执行一次语句块 。 )
无限循环:while 条件:语句块 。 判断条件为True就一直循环 , 为false时魂环结束 , 执行与while同级别缩进的后续语句 。
break用于结束当前循环 , 如果有两层循环 , break用于跳出最内层for或while循环 , 脱离该循环后程序从循环后代码继续执行;
continue用来结束当前循环的当次循环过程 , 即跳出循环体中下面尚未执行的语句 , 但不跳出当前循环 。
当有输入要求时 , 可运用异常值处理try:except:
20、函数
(1)形参与实参:定义函数时的参数是形参 , 调用函数时的参数是实参 。
(2)参数传递的方法:位置参数、默认值参数、关键字参数、命名关键字参数 。。。
位置参数:按位置顺序传递参数值 , 位置参数要在所有参数之前 , 是第一个参数;
关键字参数:关键字参数就是在调用函数 , 传入实参时指定形参的变量名 。 关键字不用遵守位置的对应关系 。 参数之间的顺序可以任意调整 。 关键字传递可以和位置传递混用 。 但位置参数要在关键字参数之前 。 举例:def hello(nameage = 11gender = ‘F’):(age = 11gender = 'F’就是关键字参数)
。 举例:def hello(nameage = 11gender = ‘F’):(age = 11gender = 'F’就是关键字参数)
默认值参数:定义参数时已经给定值 , 一般参数为不可变对象 , (如果为可变的空列表 , 可用于装位置参数);
可变数量参数:*args、**kw
带有星号*的可变参数只能出现在参数列表的后面 。 调用时 , *参数被当作元组类型传递到函数中 。 (如: def func(*args): -> func(1020))
带双星号(**)的参数 , 在使用时必须指定参数值 , 使用key=value这种形式 , 只能出现在参数列表的最后 。 调用时 , **kw后的那些参数被当作字典类型传递到函数中 。 (如:def func(**kw): -> func(a=10b=20))
强制命名参数:参数带星号或者就是一个星号(def f(*c或*abc)) , 强制命令参数*c的含义是它后面的参数必须用实名调用 , 即必须用 a = …b = … 来调用 , 不能只写值 。
Python中只有函数 , 函数是有返回值的 , **如果没有return , 默认返回None 。 **return返回多个值时 , 多个值以元组形式保存 。
21、比较
(1)list.sort()与全局sorted()
list.sort(key = Nonereverse = False)是列表内置排序方法 。 但其返回值为None(x.sort()的结果、print(x.sort())、x = x.sort()后x的结果都是None)只有当文字说“执行语句x.sort() , x的值为” , x.sort()作用的结果 , 需要通过打印被作用的列表才可以查看结果 。 true是倒序 , false是正序 。
sorted():Python内置方法 。 返回新的列表 。
(2)list.reverse()和reversed()
list.reverse()返回的是None , 其作用的结果 , 需要通过打印被作用的列表才可以查看结果 。
reversed():内置方法 。 经过reversed()作用之后 , 返回的是一个吧序列值经过倒序的迭代器 , 所以 , 需要通过遍历或list、tuple或next()方法 , 才能获得作用后的值 。