证书
为确保该篇文章内容的可靠性,先在此附上本人的二级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) 比较运算符:
< |
小于。 |
<= |
小于等于。 |
> |
大于。 |
>= |
大于等于。 |
== |
等于。 |
!= |
不等于。 |