从廖雪峰的官方网站中整理出的一些笔记。
以#
开头的语句是注释,注释可以是任意内容,解释器会忽略掉注释。
当语句以:
结尾时,缩进的语句被视为代码块;Python没有规定代码块要缩进多少数量的SPACE
或TAB
。
# 此为注释 |
Python程序对大小写敏感。
数据类型和变量
Python能直接处理的数据类型如下:
整数
Python可以处理任意大小的整数(包括负整数),在Python程序中的表示方法和数学上的写法一样。
表示十六进制数要有前缀0x
。
对于位数较多的数(包括十六进制数),例如10000000000
,Python允许在数字之间以_
分隔,因此10_000_000_000
等效于10000000000
。
浮点数
Python程序中,浮点数可以用数学写法,如1.23
、3.14
、-9.01
,但对于位数很多或很少的浮点数,就必须用科学计数法来表示,如1.23e9
、1.2e-5
。
字符串
字符串是以单引号''
或双引号""
括起来的任意文本。
若字符串内既包含单引号,又包含双引号,可以用转义字符\
来标识。
>>> print('I\'m \"OK\"!') |
转义字符\
可以转义很多字符,如:\n
表示ENTER
、\t
表示TAB
,字符\
本身也可转义,\\
表示\
。
>>> print('I\'m learning\nPython.') |
>>> print('\\\n\\') |
若字符串内有多个字符都需要转义,Python允许用r''
表示''
内的字符串默认不转义。
>>> print('\\\t\\') |
r'\\\t\\') print( |
Python允许用'''...'''
表示多行内容。
'''line1 print( |
布尔值
在Python中,可以直接用True
、False
表示布尔值。
>>> 3>2 |
>>> 3>5 |
布尔值可以用and
、or
和not
运算。
空值
空值是Python中的一个特殊值,用None
表示。None
不能理解为0
。
变量
变量名必须是大小写英文、数字和_
的组合,且不能以数字开头。
常量
在Python中,通常用全部大写的变量名来表示常量。
附
/
除法计算结果是浮点数,即使两个整数恰好整除,其结果也是浮点数。
>>> 9/3 |
//
除法计算结果是整数,即使除不尽。
>>> 10//3 |
%
除法计算结果是余数。
>>> 10%3 |
Python的整数没有大小限制;浮点数也没有大小限制,但超出一定范围就直接表示为inf
(无限大)。
字符串和编码
在Python 3中,字符串以Unicode进行编码,其字符串支持多语言。
对于单个字符的编码,Python提供了ord()
函数获取字符的整数表示。
>>> ord('A') |
若知道字符的整数编码,则可以用十六进制来表示字符串。
'\u4E2D\u6587') > print( |
由于Python的字符串类型是str
,在内存中以Unicode来表示,一个字符对应若干个字节。若要在网络上传输或保存到磁盘,就需要把str
转为以字节为单位的bytes
。
Python对bytes
类型的数据用带b
前缀的单引号或双引号来表示。
以Unicode表示的str
通过encode()
函数可以编码为指定的bytes
。
'ABC'.encode('ascii') > |
>>> '中文'.encode('utf-8') |
如果从网络或磁盘读取字节流,读取到的数据为bytes
,可以用decode()
函数将bytes
转为str
。
'ABC'.decode('ascii') > b |
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') |
若bytes
中有一小部分无效的字节,可以通过errors='ignore'
忽略错误的字节。
'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore') > b |
可以用len()
函数来计算str
的字符数或bytes
的字节数。
'ABC') > len( |
'ABC') > len(b |
当源码中包含中文时,需要指定保存为UTF-8
编码;为了让解释器按照UTF-8
编码来读取源码,需要在文件开头添加:
|
第一行注释是为了告知Linux和macOS,这是一个Python可执行程序,Windows会忽略该行注释;
第二行注释是为了告知解释器,按照UTF-8
编码来读取源码。
格式化
在Python中,格式化方式用%
实现。
>>> print('x=%d'%(16)) |
在字符串内部,%d
表示用整数替换,%f
表示用浮点数替换。
常用的占位符:
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
格式化整数和浮点数还可以指定是否补0
和整数与浮点数的位数。
'%10d'%3) > print( |
若字符串里的%
是一个普通字符,则需要转义,用%%
来表示一个%
。
>> print('%d%%'%64) |
f-string
还有一种格式化字符串的方式是使用以f
开头的字符串,称之为f-string
。
8086 > x= |
>>> x=3.14159265359 |
list和tuple
list
Python内置的一种数据类型是列表(list
),是一种有序的集合,可以随时添加或删除其中的元素。
'Unix','Linux','Windows'] > OS=[ |
变量OS
就是一个list
,用len()
函数可以获取其元素的个数。
> len(OS) |
用索引来访问list
中每一个位置的元素,索引从0
开始。
0] > OS[ |
还可以用-1
作索引,直接获取最后一个元素。
1] > OS[- |
以此类推:
2] > OS[- |
可以往list
中追加元素到末尾:
'Android') > OS.append( |
也可以将元素插入到指定位置:
1,'macOS') > OS.insert( |
删除list
末尾的元素用pop()
:
> OS.pop() |
要删除指定位置的元素,用pop(i)
,i
为索引位置。
1) > OS.pop( |
要将某个元素替换为其它元素,可以直接赋值给对应的位置。
1]='Ubuntu' > OS[ |
list
中的元素的数据类型可以不同。
list
元素也可以是另一个list
:
'Unix',['Ubuntu','Debian'],'Android'] > OS1=[ |
>>> OS1[1][1] |
tuple
元组(tuple
)是另一种有序列表,但是,tuple
一旦初始化就不能修改(tuple
的每个元素,指向永远不变,即指向'a'
,就不能修改为指向'b'
)。
'Ubuntu','Debian','Kali Linux') > Linux=( |
在定义一个tuple
的时候,其元素就必须被确定下来。
如果要定义一个只有1个元素的tuple
,必须加一个,
,如下:
1,) > t=( |
*
>>> m=('a','b',['A','B']) |
表面上看,tuple
的元素确实被改变了,但其实被改变的不是tuple
的元素,而是list
的元素,tuple
一开始指向的list
并没有被改为指向其它对象,但指向的这个list
本身是可变的。
循环
for…in…
sum=0 |
Python提供的range()
函数可以生成一个整数序列,再通过list()
函数转换为list
。
>>> list(range(5)) |
sum=0 |
while
sum=0 |
break
n=1 |
PS C:\Users\28935> python -u "f:\.Visual Studio Code\build\11.py" |
continue
n=0 |
PS C:\Users\28935> python -u "f:\.Visual Studio Code\build\11.py" |
参考资料: