Python学习-2.深入数字与字符串

本文详细介绍了Python中的浮点数、复数及其运算,包括浮点数的不确定尾数问题和解决方法round()。同时,讲解了数字运算中的基本操作符、增强赋值操作符,以及类型转换。字符串部分涵盖了多行字符串、转义字符、字符串切片、格式化输出和常用操作。文章还讨论了数字类型间的转换,并列举了若干字符串的内置函数和方法。
摘要由CSDN通过智能技术生成

一、浮点数及复数

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如果是字符串,需要是整数字符串才可以转换,浮点数据字符串无法转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值