Python

Python第一天

2018-11-28  本文已影响0人  zplus_


一、杂项

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

上一篇 下一篇

猜你喜欢

热点阅读