廖雪峰python教程笔记01
python基础
- Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。
- 在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。
数据类型和变量
布尔值只有True和False,注意大小写。
**逻辑运算**and or not
空值 None,None不是0,因为0是有意义的,而None是一个特殊的空值。
字符串和编码
ASCII码包含大小写英文字母、数字和一些符号。
Unicode把所有语言都统一到一套编码之中。
**ASCII和Unicode编码的区别:**ASCII编码是1个字节,而Unicode编码通常是2个字节。
UTF-8本着节约的精神,又出现了把Unicode编码转化为可变长度的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。
对于单个字符,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
>>>ord('A')
65
>>>ord('中')
20013
>>>chr(66)
'B'
**encode**str通过encode()方法编码为指定的bytes
'中文'.encode('utf-8')
decode我们从网络或者磁盘上读取了字节流,那么读到的数据就是byte。要把byte转成str,需要用decode。
b'ABC'.decode('ascii')
'ABC'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
计算字符长度
len('abc')
3
len('中文')
2
python文件头上需要写这两行
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#第一行是告诉Linux/OS X系统,这是一个python可执行程序,而Windows会忽略这一行。
#第二行告诉python解释器,使用utf-8来读取这个文件的源代码。
字符串的格式化
python的格式化方式和C语言是一致的,用%。
>>>'hello,%s.%d次'%('world',100)
hello,world.100次
常见的占位符:
%d | 整数 | |
---|---|---|
%f | 浮点数 | |
%s | 字符串 | |
%x | 十六进制整数 | |
%2d | 格式化整数或者浮点数 | ‘%2d-%02d’%(2,3)结果是’ 2-03’ |
%.2f | 格式化浮点数 | ‘%.2f’%3.1415结果3.14 |
如果%是一个字符,那么需要用%%来转义
list和tuple
- list.append() 追加
- list.insert(index,obj) 插入
- list.pop() 删除末尾元素
- list.pop(index) 删除指定元素
注意:
tuple中的陷阱: - t=(1)并不是一个元素为1的不可变的数组,而是1,因为这里把括号当成了数学公示中的小括号。所以定义一个只含一个数字的数组需要这么定义:
t=(1,)
条件判断
if ****:
#...
elif ****:
#...
else:
#...
if判断条件简写:
if x:
#只要x是非零数值、非空字符串、非空list等,就判断为True
print('True')
其他
* range(5) 生成0至5的一个序列
* list(range(5)) range生成一个整数序列,再通过list()函数转换为list。
dict 和 set
定义
dict = {'1':1,'2':2,'3':3}
取值
dict['1']
上面这种情况,如果key不存在那么程序会报错,所以我们在取值之前需要先判断key是否存在
if key in dict:
#do your operation
方法二:通过get方法来获取,当key不存在的时候,返回None。或者自己指定一个如果不存在的时候的默认值。
dict.get('1')
dict.get('1',1)#如果1这个key不存在,那么返回默认值1
删除
dict.pop('1')
set定义
s=set([1,2,3])
添加
s.add(4)
删除
s.remove(4)
其他
a.sort()#a是数组