1.数据类型和变量
-
Python使用缩进来组织代码块,一般使用4个空格的缩进.使用 # 来注释一行,其他每一行都是一个语句,当语句以冒号 : 结尾时 ,缩进的语句视为代码块.Python对大小写敏感.
1.1 整数
-
Python可以处理任意大小的整数,包括负整数,写法与数学上写法一致,例如:-100.如果用十六进制表示,则用前缀为0x和0-9,a-f表示,例如:0xff00.
1.2 浮点数
-
浮点数的表示方法:3.14,-9.01.若是科学技术法表示,则10用e代替,例如:1.23$\times10^9$表示为1.23e9.
-
整数和浮点数在计算机内存储的方式不同,整数运算永远是精确的(包括除法运算),浮点数运算可能会存在四舍五入的误差.
1.3 字符串
-
字符串是单引号或双引号括起来的文本.
-
如果字符串中包含单引号,则用双引号括起来;
-
如果包含双引号,则用单引号括起来;
-
如果既包含单引号又包含双引号,则使用转义字符\来标识,例如:'I'm "OK"!'表示的是I'm "OK"!.
-
python中用r''表示''内部的字符串默认不转义,例如print(r'\\t\')即打印\\t\.
-
python中用
...
三引号来输入多行内容,其中...是提示符,表示接着上一行输入,例如:
>>> print(```line1
...line2
... line3```)
line1
line2
line3
1.4 布尔值
-
布尔值只有True和Flase两种(注意大小写,Python对大小写敏感),常用于if的条件判断.
布尔值运算规则如下:
-
and运算是与运算,只有所有都为True,and运算结果才是True.
-
or运算是或运算,只要其中有一个为True,or运算结果就是True.
-
not运算是非运算,它是一个单目运算符,把True变成False,False变成True.
1.5 空值
-
空值是Python里一个特殊的值,用None表示.
1.6 变量
-
Python中变量类型不固定,即动态语言,不需要提前声明.使用=直接赋值,同一个变量可以反复赋值,且可以是不同类型的变量.例如:
a = 123 #a是整数,即a指向整数123
a= "ABC" #将a赋值成字符串,即a指向字符串"ABC"
b = a #将b指向a所指向的数据("ABC")
a = "XYZ" #将a指向字符串"XYZ"
print(b) #打印b将打印"ABC"而不是"XYZ"
变量a="ABC"赋值中,Python解释器处理了以下事项:
-
在内存中创建一个"ABC"的字符串;
-
在内存中创建了一个名为a的变量,并把它指向"ABC".
-
把a赋值给b,实际上是将b指向a所指向的数据.
1.7 常量
-
常量一般用全部大写的变量名表示,例如:PI=3.14.实际上,Python没有机制保证PI的值不会被改变,所以本质仍然是个变量.
Python的除法:
-
/的除法计算结果是浮点数,即使是两个整数相除也是浮点数,例如9 / 3结果为3.0.
-
//除法只取结果的整数部分,例如10 // 3结果是整数部分3.
-
%表示取余数,例如:10 % 3结果是余数1.
1.8 总结
-
Python支持多种数据类型,在计算机内部可以把任何数据看成一个”对象”,而变量赋值就是将变量和数据对象关联起来,即变量指向该数据对象.例如x=y,表示把变量x指向y所指向的数据对象,随后对y的赋值并不影响x的指向.
-
Python的整数和浮点数没有大小的限制.若超出一定范围就用inf(无限大)表示.
2. 字符串和编码
2.1 字符编码
-
ASCII编码,早期的编码包含大小写英文字母、数字和一些符号,用一个字节(8位)表示.因编码量少可能会出现乱码问题.
-
Unicode编码,统一各国语言编码,用两个字节(16位)表示.如果文本全是英文,则会比ASCII编码需要多一倍的存储空间,在存储和传输上不划算.
-
UTF-8编码,即可变长的Unicode编码,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节.如果你要传输的文本包含大量英文字符,用UTF-8编码能节省空间.
2.2 字符编码使用场景
-
在计算机内存中,统一使用Unicode编码.
-
当需要保存到硬盘或者需要