目录
第三章 基本数据类型
3.1 数字类型
3.1.1 整数类型
3.1.2 浮点数类型
3.1.3 复数类型
3.2 数字类型的运算
3.2.1 数值运算操作符
3.2.2 数值运算函数
3.3 字符串类型及格式化
3.3.1 字符串的索引
3.3.2 format()的使用方法
3.3.2 format()方法的控制格式
3.4 字符串类型的操作
3.4.1 字符串操作符
3.4.2 字符串处理函数
3.4.3 字符串操作符
第三章 基本数据类型
知识导图
3.1 数字类型
3.1.1 整数类型
整数类型与数学概念中的数字一致,理论上取值范围为无限大或无限小。
实际上,只要计算机内存能够存,Python程序可以存储任意大小的整数。
整数类型的四种进制表示
进制种类 | 引导符号 | 描述 | 十进制 | 无 | 默认情况,例如:1234,-1234 | 二进制 | 0b或者0B(零b) | 由0和1组成,例如:0b1010,0B1010 | 八进制 | 0o或者0O(零o) | 由0~7组成,例如:0o1010,0O1010 | 十六进制 | 0x或者0X(零x) | 由0~9、a~f或A~F组成,例如0x3F2 |
关于各种进制的转换,我就不介绍了,引用百度的一个文档,感兴趣的小伙伴可以看看。
各种进制之间转换方法 - 百度文库 (baidu.com)https://wenku.baidu.com/view/091b46745bcfa1c7aa00b52acfc789eb172d9e31.html当然,Python中也有可以进制转换的函数
print(bin(10)) # 将十进制10转换为二进制
print(oct(10)) # 将十进制10转换为八进制
print(hex(10)) # 将十进制10转换为十六进制
"""
输出结果:
0b1010
0o12
0xa
"""
3.1.2 浮点数类型
Python中的浮点数类型必须带有小数部分,小数部分可以是0,
例如:1010是整数,1010.0是浮点数
浮点数类型与数学中的小数一致,基本没有取值范围,可正可负。
浮点数有两种表示方式,一般形式和科学计数法
一般形式:123.456
科学计数法:1.23e2
其中科学计数法1.23e2表示为123.2;如果是1.01E-3,则值为0.00101
注意:Python中浮点数运算存在“一个不确定尾数”问题,例如
>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.2 == 0.3
False
在控制台输入0.1+0.2时,结果并不是0.3,这并不是计算机的运行错误,而是正常情况。
在计算机内部,使用二进制表示浮点数,0.1对应的二进制表示如下: 0.00011001100110011001100110011001100110011001100110011010 受限于计算机表示浮点数使用的存储宽度,这个二进制数并不完全等于0.1,而是计算机能表示情况下最接近0.1的二进制数。因此,0.1+0.2的运算,在计算机内部是最接近0.1和0.2国两个数的加运算。因此,产生的数字接近0.3,但未必是最接近的,反映到十进制表示上,可能产生一个尾数,至于这个尾数具体是多少,计算机内部会根据二进制运算确定产生。然而,从用户角度来看,这个尾数是不确定的,本文称“不确定尾数”。不确定尾数问题在其他编程语言中也会出现,这是程序设计语言的共性问题。
不确定尾数只存在于浮点数中,由于不确定尾数的存在,可以使用round()函数限定运算结果,保留相应位数,以去掉不确定尾数的影响
round(x, d)? x表示数,d表示保留小数的位数,按照四舍五入保留
控制台输入以下例子,输出结果
>>> round(0.123456,5)
0.12346
>>> round(0.3,3)
0.3
>>> round(0.1+0.2,3) == 0.3
True
3.1.3 复数类型
复数类型表示数学中的复数。复数有一个基本单位元素 j,
它被定义为??,叫做虚数单位。
例如: 1.3+4j、 -5.6+7j、?1.23e-4+5.67e+89j
?Python?语言中,复数可以看作是二元有序实数对(?a?,?b?),表示?a?+?bj?,其中,?a?是实数部分,简称实部,6是虚数部分,简称虚部。虚数部分通过后缀"J"或者“j"来表示。需要注意,当b为1时,1不能省略,即1 j?表示复数,而?j?则表示?Pvthhon?程序中的一个变量。 复数类型中实部和虚部都是浮点类型,对于复数?z?,可以用z.?real?和?z?.?imag?分别获得它的实 数部分和虛数部分。实例如下所示。
>>> (1.23e4+5.67e4j).real
12300.0
>>> (1.23e4+5.67e4j).imag
56700.0
复数类型在科学计算中十分常见,基于复数的运算属于数学的复变函数分支,该分支有效支撑了众多科学和工程问题的数学表示和求解。?Python?直接支持复数类型,为这类运算求解提供了便利。
3.2 数字类型的运算
3.2.1 数值运算操作符
Python提供了9个基本的数值运算操作符,如下表
操作符及运算 | 描述 | x+y | x与y的和 | x-y | x与y的差 | x*y | x与y的乘积 | x/y | x与y的商,产生结果为小数 | x//y | x整除y,及即不大于x与y的商的最大整数 | x%y | x与y的商的余数,也称为模运算 | -x | x的负值 | +x | x本身 | x**y | x的y次幂,即 |
>>> 1010/10
101.0
>>> 1010.0//3
336.0
>>> 1010%3
2
>>> 2**3
8
所有的二元运算符还可以与赋值符号(=)相连,形成增强 赋值操作符
例如:+=、-=、*=、/=、//=、%=、**=
注意运算符号和=之间不能有空格。
>>> x = 99
>>> x **= 3 # 等同于 x = x**3
>>> print(x)
970299
>>> x += 1 # 等同于 x = x + 1
>>> print(x)
970300
>>> x %= 88 # 等同于 x = x % 88
>>> print(x)
12
3.2.2 数值运算函数
内置的数值运算函数
函数 | 描述 | abs(x) | x的绝对值 | divmod(x, y) | 输出为二元组形式(x//y, x%y) | pow(x, y)或者pow(x, y, z) | x**y或者(x**y)%z | round(x)或者round(x, d) | 对x四舍五入,保留d位小数。无参数则返回保留整数值 | max(x1,x2,x3……) | 一组数中的最大值,可以任意个数 | min(x1,x2,x3……) | 一组数中的最大值,可以任意个数 |
注意复数a+bj ,取绝对值返回的值为
>>> abs(-30)
30
>>> abs(-30+40j)
50.0
>>> divmod(100,9)
(11, 1)
>>> pow(10,2)
100
>>> pow(55,1999999,10000)
4375
>>> pow(55,1999999) % 10000
4375
>>> round(1.4)
1
>>> round(1.5)
2
>>> round(3.14159,3)
3.142
>>> min(2,5,4,8)
2
>>> max(45,67,3,4,78,67,54)
78
3.3 字符串类型及格式化
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。 单行字符串可以由一对单引号( '?)或双引号(")作为边界来表示,单引号和双引号作用相同。
当使用单引号时。双引号可以作为字符串的一部分;使用双引号时,单引号可以作为的一部分。 多行字符串可以由一对三单引号( ''' )或三双引号(""")作为边界来表示,实例如下所示
>>> print('这是"单行字符串"')
这是"单行字符串"
>>> print("这是'单行字符串'")
这是'单行字符串'
>>> print("""这是'多行字符串的第一行'
这是'多行字符串的第二行'""")
这是'多行字符串的第一行'
这是'多行字符串的第二行'
3.3.1 字符串的索引
在前面第二章我们已经讲过了 这里就不在介绍,忘记的小伙伴记得去回顾哦
原文链接Python——计算机二级_Lion_Dreams的博客-CSDN博客https://blog.csdn.net/Lion_Dreams/article/details/122367932?spm=1001.2014.3001.5502
Python推荐使用.format()的格式化方法,其使用方法如下:
<模板字符串>.format(<逗号分隔的参数>), 例如:
>>> print("{}曰:三人行,必有我师焉。".format("孔子"))
孔子曰:三人行,必有我师焉。
其中{}表示一个槽位,默认与后面的format()里的参数顺序对应
槽位的顺序可以改变,但format()括号里就只能按照顺序排列
>>> print("{1}曰:学而时习之,不亦{0}".format("说乎","孔子"))
孔子曰:学而时习之,不亦说乎
format方法的槽位除了包括参数序号外,还可以有控制信息,语法格式如下:
{<参数序号>:<格式控制标记>}
其中格式控制标记有以下几种
引导符号 | :(英文冒号) | 对齐 | > 右对齐 <左对齐 ^居中对齐 | 宽度 | :数值(槽的设定宽度) | ,(英文逗号) | 数字的千位分隔符 | .精度(点+精度) | 浮点数小数位数 |
>>> s = "计算机二级"
>>> print("'{:25}'".format(s))
'计算机二级 '
>>> print("'{:^25}'".format(s))
' 计算机二级 '
>>> print("'{:*^25}'".format(s)) #用*填充空格
'**********计算机二级**********'
>>> print("'{:-^25,}'".format(12345678)) #逗号千位分隔符
'-------12,345,678--------'
>>> print("'{:-^25.3f}'".format(123.45678))
'---------123.457---------'
>>> print("'{:->25.3f}'".format(123.45678))
'------------------123.457'
对于整数类型,输出格式有六种:
b:输出二进制
c:输出Unicode字符
d:输出十进制
o:输出八进制
x:输出小写十六进制
X:输出大写十六进制
>>> "{0:b} {0:c} {0:d} {0:o} {0:x} {0:X}".format(425)
'110101001 ? 425 651 1a9 1A9'
对于浮点数类型,输出格式有四种:
e:输出浮点数对应小写字母e的指数形式
E:输出浮点数对应大写字母E的指数形式
f:输出浮点数对应标准形式
%:输出浮点数对应百分比形式
>>> "{0:e} {0:E} {0:2f} {0:%}".format(3.14159)
'3.141590e+00 3.141590E+00 3.141590 314.159000%'
3.4 字符串类型的操作
3.4.1 字符串操作符
x+y | 连接两个字符串 | x*n | 一个字符串复制n次 | x in s | 如果 x是s的字串,返回True,否则返回False |
>>> "Python语言" + "程序设计"
'Python语言程序设计'
>>> s = "等级考试"
>>> s*3
'等级考试等级考试等级考试'
>>> "等" in s
True
>>> "计算机二级" + s
'计算机二级等级考试'
3.4.2 字符串处理函数
函数 | 描述 | len(s) | 返回字符串s的长度, 也可以返回其他组合数据的元素个数 | str(x) | 返回任意类型x对应的字符串类型 | chr() | 返回Unicode编码x对应的单字符 | ord(x) | 返回单字符x表示的Unicode编码 | hex(x) | 返回整数x对应的十六进制 | oct(x) | 返回 整数x 对应的八进制 |
>>> len("全国计算机等级考试")
9
>>> str(1010)
'1010'
>>> chr(1010)
'?'
>>> chr(10000)
'?'
>>> ord("和")
21644
>>> hex(1010)
'0x3f2'
>>> oct(-255)
'-0o377'
3.4.3 字符串操作符
“方法”是程序设计中的一个专有名词,属于面向对象程序设计领域。在?Python?解释器内部,所有数据类型都采用面向对象方式实现,因此,大部分数据类型都有一些处理方法。
方法也是一个函数,只是调用方式不同。函数采用?func?(x)方式调用,而方法则采用 <a?>.?func?(x)形式满用即?A?.?B()?形式。方法以前导对象<?a?>为输人。 常用的字符串处理方法 ?
方法 | 描述 | str.lower() | 将字符串全部变为小写,并返回字符串副本 | str.upper() | 将字符串全部变为大写,并返回字符串副本 | str.split(sep = None) | 返回一个列表,由str被sep分割的部分构成 省略参数则以空格 | str.count(sub) | 返回sub子串出现的个数 | str.replace(old, new) | 所有old子串被new替换,并返回str | str.center(width, fillchar) | 字符串居中函数 | str.strip(chars) | 从字符串str中去掉左侧和右侧chars中列出的字符 | str.join(iter) | 将iter变量的每一个元素后增加一个str字符串 |
具体例子如下
>>> "Python is an excellent language.".lower()
'python is an excellent language.'
>>> "Python is an excellent language.".upper()
'PYTHON IS AN EXCELLENT LANGUAGE.'
>>> "Python is an excellent language.".split()
['Python', 'is', 'an', 'excellent', 'language.']
>>> "Python is an excellent language.".split('a')
['Python is ', 'n excellent l', 'ngu', 'ge.']
>>> "Python is an excellent language.".split("an")
['Python is ', ' excellent l', 'guage.']
>>> "Python is an excellent language.".count('a')
3
>>> "Python is an excellent language.".count('an')
2
>>> "Python is an excellent language.".count(' ')
4
>>> "Python is an excellent language.".replace('a','@')
'Python is @n excellent l@ngu@ge.'
>>> "Python is an excellent language.".replace('Python','C++')
'C++ is an excellent language.'
>>> "Python is an excellent language.".center(20,"=")
'Python is an excellent language.'
>>> "Python".center(20,"=")
'=======Python======='
>>> "Python".center(2,"=")
'Python'
>>> "=======Python=======".strip("=")
'Python'
>>> " ".join("Python") #空格
'P y t h o n'
>>> "+".join("Python")
'P+y+t+h+o+n'
|