python基础中一些重要的点
这是自己在学习python基础时记录的一些点,肯定不全,若有错误,欢迎指出,该文权当为日后回忆。
1. end
2. ctrl+q文档注释查看
3. 函数左上角加文档注释
4. 文件名也是一个模块,不可以数字开头
5. del本质是用来将一个变量从内存中删除。也可以用来对列表数据进行删除,del不建议使用
6. 列表可以存储不同数据类型的数据,但很少使用;对于不同类型的数据可以使用元组
7. 元组不支持增删改
8. 元组只有一个元素时要使用逗号,
9. 元组在for遍历时不方便,因为数据类型通常不相同,在执行一些相同操作就会不方便
10. 元组可以接收多个参数或多个数据;格式化字符串%,格式化字符串后面的()就是一个元组;保护数据安全
11. 元组和列表的转换:list(元组),tuple(列表)
12. 字典中键值只可以是字符串、数字或元组–》key值只可以是不可变类型的数据(25),可以一个key对应多个value
13. 字典使用update方法进行合并字典
14. 可以将多个字典放在一个列表中
15. 字符串中\t\n\r都可以视为空白字符,在使用isspace方法时返回true
16. 字符串中replace执行完成后返回新的字符串,原字符串不会改变(39)
17. 内置函数 len del max min 、cmp(python3.x已被删除,但可使用比较运算符比较,但是字典之间不可以进行比较)
18. 切片对于列表和元组同样适用,但对于字典不行
19. 运算符(+,*,)对于字符串,列表,元组均适用,但字典不行
列表的extend(value),如果value是列表,会在末尾逐渐追加value中的值,而列表的append(value)方法则会将其列表value直接加到末尾,也就是将整个value列表当作一个值
20. in和not in 对于字符串,列表,元组,字典均适用,对于字典比较key
21. TODO注释、shift+f6修改变量名
22. for可以和else配合使用
23. id()函数查看变量中保存数据所在的内存地址
24. 调用函数实际上是传递保存数据的引用
25. 数字类型、字符串、元组属于不可变类型,内存中的数据不允许被修改,但可使用其他方法,比如1.replace、2.切片、3.+=、4.字符转化为列表,再使用join组成新的字符串等进行修改内存中的数据,字符串使用replace修改后地址不变,但+=会发送变化;列表、字典属于可变类型,内存中的数据可以被修改,通过调用方法来实现,可变类型在使用赋值语句时地址会发送变化,但方法却不会(39)
26. hash函数只可以接收不可变类型的数据,和字典一样,hash是字典底层的代码,使用hash对key进行分配不同的地址。
27. 使用global关键字对后面的值声明其是全局变量,不会生成局部变量
28. 代码结构:shebang、import模块、全局变量、函数定义、执行代码
29. 局部变量和全局变量相同,局部变量下方会出现虚线
30. 可以使用元组让函数一次返回多个值,元组括号可以省略;对于接收可以使用多个变量一次接收函数的返回结果
31. 交换两个变量(1.使用第三个变量;2.求和计算;3.a,b=b,a)
32. 不管是可变类型还是不可变类型,针对参数使用赋值语句,在函数内部修改局部变量的值,不会影响外部函数的值(39)
33. 对于传递的参数是可变类型,在函数内部使用方法修改参数,函数内部局部变量的修改会影响到外部的数据(39)
34. 列表使用+=不是使用相加再赋值的操作,而是调用函数列表的extend方法,地址不会发送变化,因此会影响函数外部变量的值
35. 缺省参数在函数形参那直接赋值,应该对于最常见的值作为默认值,并且放在函数的所有行参的末尾;对于调用包含多个缺省参数,应该明确给出具体的参数名字
36. 多值参数:接收参数不确定时使用,*args存放元组参数,kwargs存放字典参数
37. 使用多值参数可以避免传递参数时还需要加其他,比如元组还要再加一个()
38. 多值参数的拆包,对于元组和字典,拆包时需要在实参那加上,*,如果不使用拆包,需要把元组和字典的值都打印上去,不方便;使用拆包可以先对元组或字典变量进行赋值,使用变量作为实参进行函数调用
39. 不管是可变类型还是不可变类型,使用赋值语句地址一定发送变化,在函数内部的修改不会影响函数外部的变量;使用方法对于可变类型,在函数内部的修改会影响函数外部的变量;(使用方法对于不可变类型,在函数内部的修改不会影响函数外部的变量)
40.也就是说,当我们传的参数是不可变类型{int、字符串(string)、float、(数值型number)、元组(tuple)}时,无论函数中对其做什么操作,都不会改变函数外这个参数的值;
当传的是字典型(dictionary)、列表型(list)时,如果是重新对其进行赋值,则不会改变函数外参数的值,如果是对其进行操作,则会改变。
可变与不可变类型、赋值与方法、地址是否变化、是否影响函数外部的值