1.安装测试
安装略····
检测:终端输入python
退出Ctrl - D 或者 exit()
python2 和 Python3的区别是前者不支持中文,后者支持和中文
2.字符编码
1 2 3 4 5 6
| ASCII 255 1bytes 1980 gb2312 7000多个字符 1995 GBK1.0 2w+ 2000 GB18030 27000多个 Unicode 2bytes utf-8 en:1byte,zh:3bytes
|
3.注释
1 2
| 单行注释 # 多行注释 ''''''注释内容''''''
|
4.输入输出
5.密码输入时密文
6.缩进错误
7.sys模块
1 2
| sys.path #环境变量 sys.argv #相对路径
|
8.os模块
1 2
| cmd_res = os.system("dir") #执行命令不保存结果 cmd_res = os.popen("dir").read() #执行命令保存结果并输出
|
9.bytes数据类型
Python3中在网络中的数据传输都必须用二进制数据进行
1 2 3
| '¥20'.encode('utf-8')
b'\xef\xbf\xa520'.decode('utf-8')
|
10.列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| list = ['a','b','c','d',' e']
print(list[1:3]) # 取值 b c print(list[-1]) #可以取负索引值 print(list[:3]) #取值相当于[0:3] print(list[-2:-1]) #取值相当于[-2:-1]
list.append('x') #拼接 list.insert(1,'y') #插入 list.remove('b') #删除 del list[1] #删除 list.pop() #没有下标就默认删除最后一个 list.index('a') #输出下标值 list.count('a') #输出a的个数 list.reverse() #反转 list.sort() #排序 ASCII码的排序规则 list2 = ['n','m'] list.extend(lists) #拼接list2
|
11.copy
1 2 3 4 5 6 7 8
| copy.copy() #浅copy,如果一个列表中的某个元素是一个列表,修改这个列表的元素值,结果不是自己想要的 copy.deepcopy() #深copy
实现浅copy的方法 person = ['a', 'b', ['n', 'm'], 'x'] p1 = copy.copy(person) p2 = person[:] p3 = list(person)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import copy
names = ['a', 'b', ['n', 'm'], 'x'] names2 = copy.copy(names) print(names) print(names2)
names[1] = 'x' names[2][0] = 'Tony'
print(names) print(names2)
#结果 ['a', 'b', ['n', 'm'], 'x'] ['a', 'b', ['n', 'm'], 'x'] ['a', 'x', ['Tony', 'm'], 'x'] ['a', 'b', ['Tony', 'm'], 'x']
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import copy
names = ['a', 'b', ['n', 'm'], 'x'] names2 = copy.deepcopy(names) print(names) print(names2)
names[1] = 'x' names[2][0] = 'Tony'
print(names) print(names2)
#结果 ['a', 'b', ['n', 'm'], 'x'] ['a', 'b', ['n', 'm'], 'x'] ['a', 'x', ['Tony', 'm'], 'x'] ['a', 'b', ['n', 'm'], 'x']
|
12.元组
又叫只读列表,和列表一样,就是只有count和index方法
1
| names = ('x','y','z') #用小括号表示
|
13.isdigit、enumerate
1 2 3 4 5 6 7 8 9
| Salary = input("input your salary:")
If salary.isdigit(): #判断是否是数字
names = ('x','y','z')
for index,item in enumerate(name): #enumerate()获取下标 print(index,item)
|
14.字符串常用操作
1 2 3
| strip去空格相关 join数组的拼接 maketrans可以做加密
|
15.集合
1 2 3 4 5 6 7 8 9 10 11
| 取交集intersection & list1.intersection(list2) 并集 union | 差集 difference - 子集 issubset 父集 issuperset 对称差集 symmetric_difference ^ isdisjoint是否有交集 pop 删除 remove 删除不存在的会出错 discard 删除不存在的不会报错
|
16.文件的操作
1 2 3 4 5 6 7 8 9 10 11
| open("文件").read(); open("yest",'r',encoding); 'r'读 'w'写 'a'读和写append 'r+'读写(不常用) 'w+'读写(读和追加) 'rb'、'wb'二进制的处理(不用写enconding否则报错) readlines() #读取一行,小文件
f = open("yesterday",'r', enconding = 'utf-8') f.tell() #光标的位置 f.seek(0) #回到0 f.enconding #编码 f.seekable(self) #是否光标可移动 f.truncate(20) #截断多少个字符
|
进度条flush的运用
1 2 3 4 5 6
| import sys, time
for i in range(30): sys.stdout.write('#') sys.stdout.flush() time.sleep(0.2)
|
1
| with open() ad f: 用with可以自动关闭
|
17.字符编码
18.函数
1 2 3 4 5 6
| 函数没有定义return任何数据的时候会返回None
*args接收N个位置参数转换为元组 **kwargs代表传递的参数是字典格式的,键值对,个数也是不固定
在函数内修改全局变量要用global(字符串和数字)
|
19.装饰器(重点较难)
1 2 3 4 5 6 7 8 9 10
| 原则: 不能修改被装饰的函数的源代码 不能修改被装饰的函数的调用方式 实现: 函数即“变量” 定义之后就才可以使用 高阶函数 把一个函数名当作实参传给另外一个函数 返回值中包含函数名字 嵌套函数
|
20.列表生成式
Android开发从事者,热爱IT、喜欢新科技、爱玩数码。