Python第一天
一、杂项
1、除法:/ 永远得到的都是浮点数
2、整除://
3、print() 输出的是无引号和转义字符(直接显示)
4、多行输出用三个引号,某行最后面加\表示不换行
5、字符串可以使用*表示重复,相邻的两个字符串文本自动连接在一起,无需+
6、python交互式可以使用_来表示上次的输出
二、列表+循环
1、.append(a)追加元素a
2、len(aa) 列表长度
3、print(end=",") 不换行,只输出逗号
4、range的返回值是range类型,不是list,需要强制转化,原因:为了节省空间,它并不真正构造列表
5、使用append实际是修改一个列表,使用+实际是创建一个新的列表
6、循环也有else,和for同列,当迭代完整个列表(中途没有break),才会被执行
for i in range(9):
if i>5:
print(i)
else:
print(i)
try 语句的 else 子句在未出现异常时运行
循环的 else 子句在未出现 break 时运行
三、函数
1、函数调用会为函数局部变量生成一个新的符号表。
2、变量引用查找顺序:局部符号表-》包含函数的局部符号表-》全局符号表-》内置名字表
3、因此,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用。
4、函数引用的实际参数在函数调用时引入局部符号表,因此,实参总是传值调用 (这里的值总是一个对象引用 ,而不是该对象的值)
5、函数的名可以重命名
6、函数可以默认参数
7、重要警告: 默认值只被赋值一次。
这使得当默认值是“可变对象”时会有所不同,比如列表、字典或者大多数类的实例。
例如,下面的函数在后续调用过程中会累积(前面)传给它的参数:
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
这将输出:
[1]
[1, 2]
[1, 2, 3]
如果你不想让默认值在后续调用中累积,你可以像下面一样定义函数:
def f(a, L=None):
if L is None:
L = [ ]
L.append(a)
return L