去年心血来潮学python,当时学习的文档整理一下,顺便再巩固一下(未完待续)
python3
2018-9-12
- Complex 复数 complex(a,b) a+bi
- print(r’c:\test\west’): 前加r表示不是一个普通字符串,而是一个原始字符串
- ‘hello world’ 如何截取’world’:切片
1)‘hello world’[6:]
2)‘hello world’[-5:] - 字符串的元素不能改变,list元素可以改变
- List:列表[],有序
Tuple: 元组() 不可修改元素, 但是tuple 里可以包含可变的对象如list列表来达到修改元素的目的, 定义只有一个元素的tuple (1,) 需要后面加一个逗号,有序 - Set 集合{} set(),创建空集合必须使用set(),元素不重复,无序,不可用切片, 用于求集合差集,可以进行 + - | & ^操作
Dictionary 字典 {} 键值对 创建空字典用{} 构造函数dict([(),(),()]), 无序
List 列表子元素选择 [][0]与[][0:2]答案形式不同 - Len() max(),min(),ord()输出ASCII码
- 切片 三个数字[a?️间隔]
- int str tuple值类型 list set dict引用类型
- 值类型不可变,引用类型可变
- 运算符优先级
逻辑运算符, and or not 注意返回值
身份运算符, is not is比较两个变量的内存地址是否相同(id()函数查看地址)
a=1 b=1 a is b(true) a=[1,2] b=[1,2] a is b(false) - type isinstance()判断变量类型
- isinstance(a,(int,str,float))判断tuple a的元素类型
2018-9-22
- not and 和 or优先级, not>and>or
A=1;b=2;c=3
A or b and c
答案:1 - 第六章:VSCode 中 ctrl +~打开终端
Tab 键补充文件名
缩进来区分代码块
#单行注释
‘’’ ‘’’ 多行注释 - Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
- 注意:
• 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
• 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
• 3、在Python中没有switch – case语句。 - 常量全为大写字母
- 每一段模块需要文字说明
- input()函数默认接受是字符串\
- while…. else….在while条件语句为false时执行else
for…else…. 一般不使用else… for循环结束后进入else执行语句 - 切片的方式或者range取值,最后一个数字为步长
b=[1,2,3,4,5,6,7,8]
for x in range(0,len(b),2):
print(b[x])
c=b[0:len(b):2]
print©
结果
1
3
5
7
[1, 3, 5, 7] - 包,模块
a. 包的定义:目录只有包含一个叫做 init.py 的文件才会被认作是一个包
import 只能导入模块,其中的变量不可用import导入
import t.c7 as m
pritnt(m.a) (t是包,c7是模块 用标识符m表示t.c7 用m.a引用模块c7里的变量a)
from ……import……导入模块里变量名
from t.c7 import a
print(a)
b. 对于import… from * 用__all__, 用在__init__.py里,决定包里的哪些模块被导入,用在模块文件里,决定模块文件里的那些变量被导入
c. 代码太长时在行末加入\表示换行,或者利用括号
d. 导入包时,init.py文件自动被运行
e. init.py的作用一般进行包,模块的初始化,批量导入模块
例如在包t的__init__.py文件中声明引入多个模块
则在其他文件中只需引入包t即可
包和模块是不会被重复导入的,导入时只执行一次
如果我们是直接执行某个.py文件的时候,该文件中那么”name == ‘main’“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。
这个功能还有一个用处:调试代码的时候,在”if name == ‘main’“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行! - 可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。 - 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
- python 函数的参数传递:
- 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
- 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
- python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
- Python 函数可以返回多个变量:return a,b 用逗号分隔