为确保该篇文章内容的可靠性,先在此附上本人的二级Python语言程序设计证书加以证实。
1. 数字类型:
(1) 整数类型:包括正整数、负整数与零,不同进制的整数可以直接进行运算。
十进制: | 由字符0至9组成,例:10。 |
二进制: | 由字符0与1组成,例:0b10或0B10。 |
八进制: | 由字符0至7组成,例:0o10或0O10。 |
十六进制: | 由字符0至9、a至f或A至F组成,例:0x10或0X10。 |
(2) 浮点数类型:指带有小数点的数字类型。
一般表示: | 十进制,例:0.2,4.6。 |
科学计数法: | 由字母e或E表示为幂的符号,基数为10,例:2e4。 |
(3) 复数类型:由浮点数类型的实数部分与虚数部分组成,表示为a+bj或a+bJ。
>>> (2+4j).real #获取实部。 2.0 >>> 2+4j.real 2.0 | >>> (2+4j).imag #获取虚部。 4.0 >>> 2+4j.imag 6.0 |
整数或浮点数与复数的运算结果均为复数。 | |
>>> 4-(2-2j) (2+2j) #复数。 | >>> 4.0-(2-2j) (2+2j) #复数。 |
2. 数字类型的运算:
(1) 数值运算操作符:
+x | x的本身。 | |
-x | x的负值。 | |
x+y | x与y的和。 | |
x-y | x与y的差。 | |
x*y | x与y的积。 | |
x**y | x的y次幂。 | |
x/y | x与y的商。 | |
>>> 6/2 3.0 浮点数。 | >>> -6/2 -3.0 #浮点数。 | |
x//y | x与y的整数商。 | |
>>> 2.6//1 4.0 | >>> -2.6//1 -5.0 | |
x%y | x向y求余。 | |
>>> 6%5 1 | >>> -6%5 4 |
注:数值运算操作符若与等号连接可以组成增强赋值操作符。
>>> a=2 >>> a+=4 #与a=a+4等值。 >>> a 6 | >>> a=2 >>> a-=4 #与a=a-4等值。 >>> a -2 |
(2) 数值运算函数:
abs(x) | x的绝对值。 | ||
divmod(x,y) | (x//y,x%y),输出结果为二元组形式。 | ||
>>> divmod(2,4) (0, 2) | >>> divmod(22,4) (5, 2) | >>> divmod(22,-4) (-6, -2) | |
max(x1,…,xn) | x1,…,xn的最大值,n的值没有限制。 | ||
min(x1,…,xn) | x1,…,xn的最小值,n的值没有限制。 | ||
pow(x,y[,z]) | (x**y) %z。 #x的y次幂向z求余。 | ||
>>> pow(2,4) 16 | >>> pow(2,4,6) 4 | >>> pow(2,4,-6) -2 | |
round(x[,d]) | 将x五舍六入。 #保留d位小数。 | ||
>>> round(2.5) 2 | >>> round(2.6) 3 | >>> round(2.55,1) 2.5 |
3. 真假无:True、False、None:
>>> 2<4 True >>> type(True) <class 'bool'> | >>> 2>4 False >>> type(False) <class 'bool'> | >>> def test(): return >>> type(test()) <class 'NoneType'> |
4. 字符串类型及格式化:
注:字符串类型为字符的有序集合,根据字符串的不同长度,有以下两种:
单行字符串: | |
>>> print('a') a | >>> print("a") a |
多行字符串: | |
>>> print('''a a''') #单引号。 a a | >>> print("""a a""") #双引号。 a a |
注:当需要在字符串中使用特殊字符时,则采用反斜杠为转义字符的起始符号。
\' #单引号。 | \" 双引号。 | \\ #反斜杠。 | \n #换行符。 |
>>> print(""哈哈哈哈"") SyntaxError: invalid syntax | >>> print("\"哈哈哈哈\"") "哈哈哈哈" |
注:字符串的序号体系有以下两种:
←反向递减序号 | ||||
-5 | -4 | -3 | -2 | -1 |
珍 | 珠 | 奶 | 茶 | |
0 | 1 | 2 | 3 | 4 |
正向递减序号→ |
(1) 索引:<字符串或字符串变量名>[序号]
>>> ("珍珠 奶茶")[0] '珍' >>> ("珍珠 奶茶")[-5] '珍' | >>> str="珍珠 奶茶" >>> str[0],str[-5] ('珍', '珍') |
(2) 切片:<字符串或字符串变量名>[起始:结束[:步长]]
>>> ("珍珠 奶茶")[0:2] '珍珠' >>> ("珍珠 奶茶")[0:4:2] '珍 ' | >>> str="珍珠 奶茶" >>> str[0:2],str[0:4:2] ('珍珠', '珍 ') |
(3) 基本的format()格式化方法:将字符串进行格式化操作,根据操作的不同类型,有以下两类:
(a) 基本使用:"<模板字符串>".format(<参数>)
注:模板字符串内包括字符串与槽,槽内可以包括参数序号,根据格式的不同状况,有以下三种:
若模板字符串仅有一个槽,则直接对应方法中的参数。 |
>>> "{}说:珍珠奶茶超级好喝!".format("小红") '小红说:珍珠奶茶超级好喝!' |
若模板字符串有多个槽并且无指定序号,则按序对应方法中的参数。 |
>>> "{}说:{}奶茶超级好喝!".format("小红","珍珠") '小红说:珍珠奶茶超级好喝!' |
若模板字符串有多个槽并且有指定序号,则按号对应方法中的参数。 |
>>> "{1}说:{0}奶茶超级好喝!".format("珍珠","小红") '小红说:珍珠奶茶超级好喝!' |
(b) 格式控制:"{: <填充><对齐><宽度><,><.精度><类型>}".format(<参数>)
注:槽内除了可以包括参数序号,还可以包括格式控制标记,根据格式的不同状况,有以下几种:
: | 仅为引导符号,非格式控制标记。 | ||||
<填充> | 当槽的输出宽度大于变量宽度时,用于填充的字符。 | ||||
<对齐> | <左,>右,^居中,若无该值,则默认左对齐。 | ||||
>>> s="黑糖奶茶" >>> "{:*^8}".format(s) '**黑糖奶茶**' >>> s="珍珠奶茶" >>> "{:*!^8}".format(s) #使用填充控制标记时,该参数仅限一个。 ValueError: Invalid format specifier >>> s="波霸奶茶" >>> "{:*8}".format(s) #没有对齐控制标记时,则不可以进行填充。 ValueError: Invalid format specifier | |||||
<宽度> | 槽的输出宽度,若该值小于变量宽度,则输出原变量。 | ||||
>>> s="珍珠奶茶" >>> "{:6}".format(s) '珍珠奶茶 ' | >>> s="珍珠奶茶" >>> "{:2}".format(s) '珍珠奶茶 | ||||
<,> | 数字的千位分隔符,可以用于整数或浮点数。 | ||||
>>> "{:,}".format(222444666) '222,444,666' | >>> "{:,}".format(222444.666) '222,444.666' | ||||
<.精度> | 可以用于浮点数的小数位数或字符串的最大长度。 | ||||
>>> "{:.2f}".format(2222.2222) '2222.22' | >>> "{:.2}".format("珍珠奶茶") '珍珠' | ||||
<类型> | 根据数字的不同类型,有以下两类: | ||||
整数型: | b #二进制。 | d #十进制。 | o #八进制。 | ||
c #Unicode字符。 | x/X #小/大写十六进制。 | ||||
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(2022) '11111100110,ߦ,2022,3746,7e6,7E6' | |||||
浮点数型: | e:输出浮点数对应的小写字母e的指数形式。 | ||||
E:输出浮点数对应的大写字母E的指数形式。 | |||||
f:输出浮点数的标准浮点形式。 | |||||
%:输出浮点数的百分形式。 | |||||
>>> "{0:e},{0:E},{0:f},{0:%}".format(22.22) '2.222000e+01,2.222000E+01,22.220000,2222.000000%' |
5. 字符串类型的操作:
(1) 字符串操作符:包括连接符、逻辑运算符、比较运算符。
>>> x="A" >>> y="B" >>> x+y 'AB' | >>> "A" in "AB" True >>> "C" in "AB" False | >>> 2<4 True >>> "A">"B" False |
(2) 处理函数:
len(str) | 求字符串str的长度。 | |
max(str) | 求字符串str中ASCII码最大的字符。 | |
min(str) | 求字符串str中ASCII码最小的字符。 | |
str() | 生成一个空字符串。 | |
chr(x) | 返回Unicode编码x表示的单字符。 | |
ord(x) | 返回单字符x表示的Unicode编码。 | |
>>> chr(21703) '哇' | >>> ord("哇") 21703 | |
hex(x) | 返回整数x对应八进制数的小写形式字符串。 | |
oct(x) | 返回整数x对应十六进制数的小写形式字符串。 | |
>>> hex(2022) '0x7e6' | >>> oct(2022) '0o3746' |
(3) 处理方法:
str.lower() | 将字符串中所有大写字母转换为小写。 | |
str.upper() | 将字符串中所有大写字母转换为大写。 | |
>>> "I like you.".lower() 'i like you.' | >>> "I like you.".upper() 'I LIKE YOU.' | |
str.split() | 将字符串按指定字符进行切片。 | |
str.count() | 计算指定字符在该字符串中的出现次数。 | |
>>> "I like you.".split("i") ['I l', 'ke you.'] #返回列表类型。 | >>> "I like you.".count("i") 1 | |
str.replace(old,new) | 将字符串中的旧字符替换成新字符。 | |
>>> "I like you.".replace("you","him") 'I like him.' | ||
str.center(width[,fillchar]) | 将字符串按指定宽度居中,可以填充字符。 | |
>>> "like".center(2) 'like | >>> "like".center(6) ' like ' | |
>>> "like".center(8,"*") '**like**' >>> "like".center(8,"%*") #使用fillchar参数时,该参数仅限一个。 TypeError: The fill character must be exactly one character long | ||
str.join() | 将指定元素按序插入字符串间。 | |
str.strip() | 将字符串头尾的指定字符删除。 | |
>>> "*".join("like") 'l*i*k*e' | >>> "%*like*%".strip("%") '*like*' | |
str.isalpha() | 判断字符串是否仅由中英文组成。 | |
>>> "like喜欢".isalpha() True | >>> "like 喜欢".isalpha() False |
6. 类型判断和类型间转换。
(1) 类型判断:使用type()函数对变量进行类型判断,可以用于任何数据类型。
>>> type(6) <class 'int'> | >>> type(6.6) <class 'float'> |
>>> type(6j) <class 'complex'> | >>> type("6") <class 'str'> |
(2) 类型间转换:
int() | 将变量x转换为整数,x可以为浮点数或字符串。 | ||
float() | 将变量x转换为浮点数,x可以为整数或字符串。 | ||
str() | 将变量x转换为字符串,x可以为整数、浮点数、复数。 | ||
>>> int(2.2) 2 >>> int("2") 2 | >>> float(2) 2.0 >>> float("2.2") 2.2 | >>> str(2) '2' >>> str(2.2) '2.2' >>> str(2+2j) '(2+2j)' |
7. 逻辑运算和比较运算。
(1) 逻辑运算符:
not | 表达单个条件的“否”关系。 | |
>>> not True False | >>> not False True | |
and | 表达多个条件间的“与”关系。 | |
>>> "2"and"4"and"6"in"246" True | ||
or | 表达多个条件间的“或”关系。 | |
>>> a=4 >>> if a ==2 or 4: print("哈哈") 哈哈 |
(2) 比较运算符:
< | 小于。 |
<= | 小于等于。 |
> | 大于。 |
>= | 大于等于。 |
== | 等于。 |
!= | 不等于。 |