一、浮点数及复数
Python语言提供整数、浮点数和复数3种数字类型。
- 浮点数
Python中的浮点数必须带有小数点,小数部分可以是0。例如100是整数,100.0就是浮点数。
注:浮点数带来的“不确定尾数问题”:当浮点数进行计算时,由于计算机将浮点数存储为二进制。
例如当计算0.1+0.2时,0.1/0.2存储为二进制后并不完全等于0.1/0.2,因此加和之后结果接近于0.3,但并不完全等于0.3。
print(0.1+0.2)
--输出
0.30000000000000004
不确定尾数问题在其他编程语言中也会出现,这是程序设计语言的共性问题。
为了解决不确定尾数问题,引出round()函数
-
round()函数
round(x,d)表示对x四舍五入,保留d位小数 -
power()函数
power(x,y)表示X的Y次方 -
复数类型
Python语言中,可以将复数看做二元有序实数对(a,b),表示为a+bj。其中a是实数部分,b是虚数部分。实数和虚数都是浮点类型。
可以用z.real和z.image分别获得它的实数部分和虚数部分。
二、数字运算
- 9个基本的数值运算操作符。
这9个二元操作符都可以与=相连接,形成增强赋值操作符(+=、-=、*=等)。
示例:
a=5
a+=3//相当于a=a+3的缩写
print(a)
--输出
8
- 数值运算可能改变结果的数据类型
①整数和浮点数混合运算,输出结果是浮点数;
②整数之间运算,产生结果与操作符相关,/运算结果是浮点数;
③整数或浮点数与复数运算,输出结果是复数。 - 与数字运算相关的内置函数
可以输入print(dir(__builtins__))
查询所有函数,其中6个与数值运算有关
也可以输入print(help(函数名称))
来查询函数说明 - 方法函数
另外还有一些方法函数,例如获取虚实数的real函数和image函数,它们并不属于Python的内置函数,但是也为一种方法函数,也可以调用,但在print(dir(__builtins__))
中找不到。
那么如何查询某个变量可执行的方法函数呢?
输入print(dir(a))
即可。
查询变量的方法的说明,可以输入print(help(a.方法名称))
三、字符串类型
- 多行字符串
单行字符串可以用一对单引号(‘)或双引号(”)作为边界来表示。多行字符串可以由一对三单引号或三双引号作为边界来表示。
print('''hahldhs
sjlkajl''')
--输出
hahldhs
sjlkajl
- 关于\的使用
①反斜杠\可以实现续行
print('''hahldhs\
sjlkajl''')
--输出
hahldhssjlkajl
②当\与其他符合组合时,成为转义字符,即与后面相邻的一个字符共同组合成一个新的含义
\n表示换行;
\表示反斜杠(用于输出转义字符时,比如希望输出\n
,系统会自动识别换行,此时需要写成\\n
,就会输出\n
);
'表示单引号:用于输出单引号的字符串(如果直接输出‘,会被python识别为配对)
"表示双引号:同单引号
\t 表示制表符(TAB):可以输出有固定空格的数据
示例
print("姓名\t学号\t成绩")
print("11\t22\t33")
--输出
姓名 学号 成绩
11 22 33
注意:\t输出时,需要使用双引号“”
四、字符串操作
- 字符串切片
采用[N:M]进行切片,获取从位置N到位置M(不包含M)的数据。N和M若为空,则默认找到最开始和最终的数据。N和M也可为负,指逆向查找。
示例
print("abcdefg"[2:4])
--输出
cd
print("abcdefg"[:4])
--输出
abcd
print("abcdefg"[:])
--输出
abcdefg
采用[N:M:a]进行切片,a指步长,代表一次增加a个索引号
print("abcdefg"[::2])
--输出
aceg
- 字符串的格式化
采用format()函数实现格式化:模板字符串.format(逗号分隔的参数)
如果模板字符串有多个槽,并且槽内没有指定序号,则按照槽出现的顺序分别对应format方法中的不同参数。
可以通过format()参数的序号再模板字符串槽中指定参数的使用,参数从0开始编号。
槽除了包括参数序号,还可以包括格式控制信息。用来控制参数显示时的格式。
{参数序号:格式控制标记}
①:/填充/对齐示例
a='等级考试'
print('{0:*^25}Python语言'.format(a))
--输出 “等级考试”居中对齐并以*填充至25位
**********等级考试***********Python语言
在格式控制标记中还可以插入参数,不过参数仍旧需要被format引用,并声明序号
a='等级考试'
s=25
t='*'
print('{0:{2}^{1}}Python语言'.format(a,s,t))
--输出
**********等级考试***********Python语言
②,/精度
//千位符
print('{:,}'.format(1234567))
--输出
1,234,567
//精度
print('{:.2f}'.format(12.3456))-- 带f表示为浮点数精度,会自动取小数点
print('{:.5}'.format("Pythonshi"))--不带f表示为总长度
print('{:.5}'.format(12.3456))
--输出
12.35
Pytho
12.346
③类型
对于整数和浮点数类型,可以修改输出的格式
//整数
print('{0:b},{0:d},{0:o},{0:x},{0:X},{0:c}'.format(425))
--输出
110101001,425,651,1a9,1A9,Ʃ
//浮点数
print('{0:e},{0:E},{0:f},{0:%}'.format(425.55))
--输出
4.255500e+02,4.255500E+02,425.550000,42555.000000%
注:整数对应的Unicode字符是什么?
字符(ABCD!@#¥等)无法直接转换为二进制,需要根据ASCII转换为数字,再转换为二进制。而Unicode码就是对ASCII码的扩充。转换出的Unicode字符就是指该整数在Unicode标准中对应的字符。
五、字符串运算及函数方法
- 操作符
针对字符串,Python提供了以下几个操作符
- 函数
Python语言提供了一些字符串的内置函数
- 方法
方法也是一个函数,只是调用方式不同。函数采用func(x)方式调用,而方法则采用.func(x)形式调用。方法仅作用于前导对象.
示例:
a='aB cde'
print(a.lower())
print(a.upper())
print(a.split())
print(a.split('d'))
print(a.count('a'))
print(a.replace('a','A'))
print(a.center(50,'*'))
print(a.strip('e'))
print(a.join('12345'))
--输出
ab cde
AB CDE
['aB', 'cde']
['aB c', 'e']
1
AB cde
**********************aB cde**********************
aB cd
1aB cde2aB cde3aB cde4aB cde5
六、数字类型的转换
数值运算操作符可以隐式地转换输出结果的输出类型。此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换。
int(x),x如果是字符串,需要是整数字符串才可以转换,浮点数据字符串无法转换。