• 数字类型:整数类型、浮点数类型和复数类型
  • 数字类型的运算:数值运算操作符、数值运算函数
  • 字符串类型及格式化:索引、切片、基本的format()格
    式化方法
  • 字符串类型的操作:字符串操作符、处理函数和处理
    方法
  • 类型判断和类型间转换
    image.png

数据类型

Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。
1010是一个整数类型,10.10是一个浮点数类型,10 + 10j是一个复数类型。

整数类型

  • 没有取值范围限制
  • 有4种进制表示:十进制、二进制、八进制和十六进制。默认采用十进制
    image.png
  • 不同进制的整数之间可以直接运算
>>> print(1010==0b1010)
False
>>> print(0x1010==4112)
True

浮点数类型

  • Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。
    例如:1010是整数,1010.0是浮点数。
  • 浮点数有2种表示方法:十进制形式的一般表示和科学计数法表示。除十进制外,浮点数没有其他进制表示形式。
  • 除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”
>>> print(10.1e3)
10100.0
>>> print(-1.01E-3)
-0.00101
>>> print(100.01)
100.01

不确定尾数

不确定尾数问题是因为计算机的二进制运算产生的。不确定尾数问题在其他编程语言中都会出现,是程序设计语言的共性问题

  • 不确定尾数会对浮点运算结果造成误差
>>> 0.1+0.2==0.3
False
  • 浮点数运算去掉不确定尾数,可以使用round()函数
    round(x,d)是一个四舍五入,对x进行四舍五入,d为指定保留的小数位数
>>> round(1.23456,2)
1.23
>>> round(1.23456,4)
1.2346
>>> round( 0.1+0.2,3)==0.3
True
>>> round( 0.1+0.2,30)==0.3
False
>>> round( 0.1+0.2,10)==0.3
True

利用浮点数进行比较和运算时,应确定需要的精度使用round()函数进行位数控制再进行比较

复数类型

Java没有内置的复数
Python中复数可以看作二元有序实数对(a,b)。虚数部分通过后缀J或者j来表示,当b=1时,1不能省略,即1j表示复数

  • 复数类型中实部和虚部都是浮点类型,对于复数z,可以用
    z.real和z.imag分别获得它的实数部分和虚数部分
>>> (1.23e4+5.67e4j).real
12300.0
>>> (1.23e4+5.67e4j).imag
56700.0
>>> 1.23e4+5.67e4j.imag
69000.0

数字类型的运算

数值运算操作符

Python提供了9个基本的数值运算操作符
image.png

>>> 1.23e4+5.67e4
69000.0
>>> 1.23e4-5.67e4
-44400.0
>>> 1.23e4*5.67e4
697410000.0
>>> 1.23e4//5.67e4
0.0
>>> 1.23e4/5.67e4
0.21693121693121692
>>> 1010//3
336
>>> 1010/3
336.6666666666667
>>> 1010%3
2
>>> +1010
1010
>>> -1010
-1010
>>> 1010**3
1030301000

数值运算会改变结果的数据类型

  • 整数和浮点数混合运算,输出结果是浮点数;
>>> 100.0+3
103.0
  • 整数之间运算,产生结果类型与操作符相关,/运算的结果
    是浮点数;
>>> 100/10
10.0
  • 整数、浮点数与复数运算,输出结果是复数。
>>> 10-(1+1j)
(9-1j)
>>> 10-1-1j
(9-1j)

增强赋值操作符

上标所有二元运算操作符(+、-、、/、//、%、**)都可以与等号(=)相连,形成增强赋值操作符(+=、-=、=、/=、//=、%=、**=)。用op表示这些二元运算操作符,增
强赋值操作符的用法如下:
x op= y 等价于 x = x op y
增强赋值操作符中op和=之间不能增加空格

数值运算函数

Python解释器提供了一些内置函数,有6个函数与数值运算相关
image.png

字符串类型及格式化

字符串类型

字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。

  • 单行字符串可以由一对单引号(')或双引号(")作为边界来表示,单引号和双引号作用相同。
>>> print('这是"单行字符串"')
这是"单行字符串"
>>> print("这是'单行字符串'")
这是'单行字符串'
  • 多行字符串可以由一对三单引号(''')或三双引号(""")作为边界来表示,两者作用相同。
>>>print("""这是'多行字符串'的第一行
这是'多行字符串'的第二行
""")
这是'多行字符串'的第一行
这是'多行字符串'的第二行
>>>print('''这是"多行字符串"的第一行
这是"多行字符串"的第二行
''')
这是"多行字符串"的第一行
这是"多行字符串"的第二行

字符串类型

Python语言转义符:
\n表示换行、\表示反斜杠、'表示单引号、"表示双引号、\t表示制表符(TAB)等。

>>>print("既需要'单引号'又需要\"双引号\"")
既需要'单引号'又需要"双引号"

字符串的索引

字符串是一个字符序列:字符串最左端位置标记为0,依次
增加。对字符串中某个字符的检索被称为索引。索引的使用
方式如下:
<字符串或字符串变量>[序号]
如果字符串长度为L,正向递增需要以最左侧字符序号为0,
向右依次递增,最右侧字符序号为L-1;反向递减序号以最
右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。
即[0,L-1]和[-L,-1]都是左边小,右边大

>>>"青青子衿,悠悠我心。"[-5]
'悠'
>>>s = "青青子衿,悠悠我心。"
>>>s[5]
'悠'

字符串的切片

对字符串中某个子串或区间的检索被称为切片。切片的使用方式如下:
<字符串或字符串变量>[N: M]
获取字符串从N到M(不包括M)的子字符串,N、M可以混合使用正向、反向序列号

>>>"青青子衿,悠悠我心。"[8:4]
''
>>>"青青子衿,悠悠我心。"[:4]
'青青子衿'
>>>"青青子衿,悠悠我心。"[5:]
'悠悠我心。'
>>>print("青青子衿,悠悠我心。"[5:])
悠悠我心。

format()方法的基本使用

字符串format()方法的基本使用格式是:
<模板字符串>.format(<逗号分隔的参数>)
其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。

>>>"{}曰:学而时习之,不亦说乎。".format("孔子")
'孔子曰:学而时习之,不亦说乎。'

format()方法的基本使用

  • 如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。
>>>"{}曰:学而时习之,不亦{}。".format("孔子","说乎")
'孔子曰:学而时习之,不亦说乎。'
  • 可以通过format()参数的序号在模板字符串槽中指定参数的使用,参数从0开始编号
>>"{1}曰:学而时习之,不亦{0}。".format("说乎","孔子")
'孔子曰:学而时习之,不亦说乎。'
>>>"{1}曰:{{学而时习之,不亦{0}}}。".format("说乎","孔子")
'孔子曰:{学而时习之,不亦说乎}。'

format()方法的格式控制

{<参数序号>: <格式控制标记>} 

其中,格式控制标记用来控制参数显示时的格式 。格式控制标记包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合使用
image.png

<填充>、<对齐>和<宽度>

主要用于对显示格式的规范

  • 宽度
    指当前槽的设定输出字符宽度,如果该槽参数实际
    值比宽度设定值大,则使用参数实际长度。如果该值的
    实际位数小于指定宽度,则按照对齐指定方式在宽度内
    对齐,默认以空格字符补充。
  • 对齐字段
    分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。
  • 填充字段
    可以修改默认填充字符,填充字符只能有一个。
>>>s = "等级考试"
>>>"{:25}".format(s) #左对齐,默认
'等级考试 '
>>>"{:^25}".format(s) #居中对齐
' 等级考试 '
>>>"{:>25}".format(s) #右对齐
' 等级考试'
>>>"{:*^25}".format(s) #居中对齐且填充*号
'**********等级考试***********'
>>>"{:+^25}".format(s) #居中对齐且填充+号
'++++++++++等级考试+++++++++++'
>>>"{:十^25}".format(s) #居中对齐且填充汉字“十”
'十十十十十十十十十十等级考试十十十十十十十十十十十'
>>>"{:^1}".format(s) #z指定宽度为1,不足变量s的宽度
'等级考试'

<.精度><类型>

主要用于对数值本身的规范

  • <.精度>
    由小数点(.)开头。对于浮点数,精度表示小
    数部分输出的有效位数。对于字符串,精度表示输出的
    最大长度。小数点可以理解为对数值的有效截断
>>>"{:.2f}".format(12345.67890)
'12345.68'
>>>"{:>25.3f}".format(12345.67890)
' 12345.679'
>>>"{:.5}".format("全国计算机等级考试")
'全国计算机'
  • <类型>
    表示输出整数和浮点数类型的格式规则。
    1.对于整数类型,输出格式包括6种
    • 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'

2.对于浮点数类型,输出格式包括4种:
• e: 输出浮点数对应的小写字母e的指数形式;
• E: 输出浮点数对应的大写字母E的指数形式;
• f: 输出浮点数的标准浮点形式;
• %: 输出浮点数的百分形式

>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
>>>"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14) # 对比输
出
'3.14e+00,3.14E+00,3.14,314.00%'

字符串类型的操作

字符串操作

Python语言提供了几个基本操作符
image.png

>>>name = "Python语言" + "程序设计"
>>>name
'Python语言程序设计'
>>>"等级考试!" * 3
'等级考试!等级考试!等级考试!'
>>>"语言" in name 
True
>>>'Y' in name
False

字符串处理函数

Python语言提供了一些对字符串处理的内置函数
image.png

>>>len("全国计算机等级考试Python语言科目")
19
>>>chr(10000)
'✐‘
>>>hex(1010)
'0x3f2'

字符串处理方法

方法也是一个函数,只是调用方式不同。函数采用func(x)方式调用,而方法则采用.func(x)形式调用。方法仅作用于前导对象
image.png

>>>"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.".replace('a','#')
'Python is #n excellent l#ngu#ge.'
>>>"Python is an excellent language.".replace('Python','C')
'C is an excellent language.'
>>>"Python".center(20, "=")
'=======Python======='
>>>"Python".center(2, "=")
'Python'
>>>" ==Python== ".strip(' ')
'==Python=='
>>>" ==Python== ".strip(' =')
'Python'
>>>" ==Python== ".strip(' =n')
'Pytho'
>>>" ".join('PYTHON')
'P Y T H O N'
>>>",".join('12345')
'1,2,3,4,5'
>>>",".join(['1', '2', '3', '4', '5'])
'1,2,3,4,5'

类型判断和类型间转换

判断

Python语言提供type(x)函数对变量x进行类型判断,适用于任何数据类型。

n = eval(input('请输入一个数字:'))
if type(n) == type(123):
print("输入的数字是整数。")
elif type(n) == type(11.3):
print("输入的数字是浮点数。")
else:
print("无法判断输入类型。")

转换

  • 数值运算操作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。
  • 内置的数字类型转换函数可以显式地在数字类型之间进行转换
    image.png

这个家伙很懒,啥也没有留下😋