and or not
变量
命名规则
字母,数字和_, 并且不能用数字开头
空值
None
类型
变量不必定义类型,直接定义。
a=2
a='ssss'
a=True and False #同一个变量可以被反复赋值,没有类型转换要求
常量
全部大写的变量名表示常量
PI=3.1415
但是python没有机制保证PI不会被改变,只是习惯用法,改了也可以
除法
/ 浮点除
10 / 3
3.3333333333333335
9 / 3
3.0
#//
10 // 3
3
//地板除(向下取整)
Attention
python整数大小没有限制,浮点数也没有限制,超出一定范围,就表示为无限大
字符串和编码
unicode(all L) utf-8(可变长)
python unicode
单个字符编码 ord(),chr()
ord()获取字符整数表示
chr()整数转换成字符
ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
python字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。若要在网络上传输,或者保存到磁盘上,就要把str变为以字节为单位的bytes
bytes 类型的数据用带b前缀的单引号表示
x=b'ABC' #每个字符都只占用一个字节
编码解码
str.encode(‘ascii’) # Unicode转bytes,纯英文可以ascii
‘中文’.encode(‘utf-8’) #含有中文的str可以用UTF-8编码为bytes
如果我们从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把bytes
变为str
,就需要用decode()
方法:
b'ABC'.decode('ascii')
b'\xe4\xb8\xad\xff'.decode('utf-8')
# errors='ignore'忽略错误的字节
b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
len()计算str包含多少个字符,计算bytes包含多少个字节
1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。
为了避免乱码问题,应当始终坚持使用UTF-8编码对str
和bytes
进行转换。
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
申明了UTF-8编码并不意味着你的.py
文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码:
格式化字符串
如果你不太确定应该用什么,%s
永远起作用,它会把任何数据类型转换为字符串:
print('Age: %s. Gender:%s'%(25,'women')) #Age: 25. Gender:women
print('price:%% %s'% 7) #price:% 7
f-string
a=26
aa='wo,m'
print(f'替换{a:.2f}变量的字符串{aa}') #替换26.00变量的字符串wo,m
#.2f保留两位小数点