网上教程大多数是基于2.7的,简直醉了,这坑爬的我想吐,不过我会坚持下去。
py中的数据类型
- 整数:表示方法和数学上的写法一模一样,例如:1,100,-8080,0。
- 浮点数:1.23,3.14,e记法1.2e-5
- 字符串:用“”或‘’括起来,注意转义字符的使用,和r‘’记法。
- 布尔值:True False。可以用and、or、not运算,参考与或非逻辑。py中把0、空字符串、None看成False
- 空值:空值是Python里一个特殊的值,用None表示,不能和0混为一谈,是一个特殊的空值
py中的变量
- 变量名:变量用变量名表示,字母数组下划线组成,不能数字开头。
- 动态语言机制:不必给变量声明类型
a=100
print(a)
a='zhujianan'
print(a)
输出:
100
zhujianan
py中的常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量,eg:PI = 3.14159265359。但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
py中的除法运算:
#py中的除法
print(10/3)
print(9/3)
# 地板除,两个整数的除法仍然是整数
print(10//3)
print(10.3//3)
# 取余
print(10%3)
print out:
3.3333333333333335
3.0
3
3.0
1
py中的编码方式
如果不清楚,去了解下ASCII、Unicode、UTF-8。Python 3的字符串使用Unicode,直接支持多语言。一般我们仅使用UTF-8
- 最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes
# Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
print(ord('我'))
print(chr(66))
# Python对bytes类型的数据用带b前缀的单引号或双引号表示,要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节
x = b'ABC'
y='ABC'
print(x)
print(y)
# 以Unicode表示的str通过encode()方法可以编码为指定的bytes
# 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错
'ASD'.encode('ascii')
'ASD'.encode('utf-8')
# 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))
- 格式化:%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略
常见占位符:%s %d %f %x
print('你是不是有 %s'%'病')