第二章 深入理解数字与字符串

一、数字类型

  Python语言提供三种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。

1.浮点数类型

  Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。

1.1浮点数中的特殊问题

  当计算0.1+0.2时:

a = 0.1
b = 0.2
print(a+b)

输出结果为:0.30000000000000004
  在计算机内部,使用二进制表示浮点数,0.1对应的二进制为:0.00011001100110011001100110011001100110011001100110011010
  受限于计算机表示浮点数使用的存储宽度,这个二进制并不完全等于0.1,而是计算机能表示情况下最接近0.1的二进制。因此0.1+0.2的运算,在计算机内部是最接近0.1和0.2的两个数的加运算。因此,产生的数字接近0.3,但未必是最接近的,反映到十进制表示上,可能产生一个尾数,至于这个尾数具体是多少,计算机内部会根据二进制运算确定产生。然后从用户角度来看,这个尾数是不确定的,因此称为‘不确定尾数’不确定尾数问题在其他编程语言中也会出现,这是程序设计语言的共性问题。

1.2解决不确定尾数的问题

  round(x,d)函数:对浮点数x进行四舍五入,d指定保留小数位数

a = round(0.1,1)
b = round(0.2,1)
print(a+b)

输出结果为:0.3

2.复数类型

  Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀”J”或者”j”来表示。
注意:当b为1时,1不能省略,即 1j表示复数。
  例如:
            11.3+4j        -5.6+7j 1.23e-4+5.67e+89j
  复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分。

a = (3.2+4.5j).real
b = (3.2+4.5j).imag
print(a,b)

输出结果:3.2 4.5

二、对数字的操作

1.数值运算操作符

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

操作符描述
x+yx与y之和
x-yx与y之差
x*yx与y之积
x/yx与y之商
x//yx与y之整数商,即:不大于x与y之商的最大整数
x%yx与y之商的余数,也称为模运算
-xx的负值,即:x*(-1)
+xx本身
x**yx的y次幂

  上标所有二元运算操作符(+、-、、/、//、%、**)都可以与等号(=)相连,形成增强赋值操作符(+=、-=、=、/=、//=、%=、**=)。
  注意:数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:
  ① 整数和浮点数混合运算,输出结果是浮点数;
  ② 整数之间运算,产生结果类型与操作符相关,/运算的结果是浮点数;
  ③ 整数或浮点数与复数运算,输出结果是复数。

2.数值运算处理函数

  Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关:

函数描述
abs(x)x的绝对值
divmod(x, y)(x//y, x%y),输出为二元组形式(也称为元组类型)
pow(x, y[, z])x的y次幂再取余,[…]表示该参数可以省略,即:pow(x,y),它x的y次幂相同
round(x[, ndigits])对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值
max(x1, x2, …, xn)取最大值
min(x1, x2, …, xn)取最小值

3.内置函数和关键词

  Python内置了很多内置函数、类方法属性及各种模块。当我们想要了解某种类型有哪些属性方法以及每种方法该怎么使用时,我们可以使用dir()函数和help()函数在python idle交互式模式下获得我们想要的信息。

a = dir(__builtins__)
b = help('keywords')
print(a)
print(b)

输出结果:
在这里插入图片描述

三、字符串类型及其格式化

1.字符串类型

  根据字符串的内容多少分为单行字符串和多行字符串。单行字符串可以由一对单引号(‘)或双引号(")作为边界来表示,单引号和双引号作用相同,多行字符串可以由一对三单引号(’‘’)或三双引号(" " ")作为边界来表示,两者作用相同。

a = '''this is a 
beautiful world'''
print(a)

输出结果:this is a
beautiful world

2.反斜杠\的使用

2.1反斜杠\可以实现续行

print("这是一条超长的语句,需要使用续行符进行换行,\
以方便阅读和编辑。")

输出结果:
这是一条超长的语句,需要使用续行符进行换行,以方便阅读和编辑。

2.2\与其他符号组合,称为转义字符

  即与后面相邻的一个字符共同组合成一个新的含义,\n表示换行、\表示反斜杠、'表示单引号、"表示双引号、\t表示制表符(TAB)等。

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

输出结果:
既需要’单引号’又需要"双引号"

3.字符串的格式化

  Python语言中常常使用format()方法进行格式化。字符串格式化用于解决字符串和变量同时输出时的格式安排问题。
  使用方法:模板字符串.format(逗号分隔的参数)。
  如果模板字符串有多个槽{},且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。

print('{}曰:学而时习之,不亦{}。'.format('子','悦乎'))

输出结果:
子曰:学而时习之,不亦悦乎。
  也可以通过format()参数的序号在模板字符串槽中指定参数的使用,参数从0开始编号:
    在这里插入图片描述

  槽内除了包括参数序号,还可以包括格式控制信息,用来控制参数显示时的格式 :
在这里插入图片描述

a = 'Python等级考试'
print('{0:%^15}'.format(a))

输出结果:
%%Python等级考试%%%

四、对字符串的操作

1.字符串的基本操作

  针对字符串,Python语言提供了如下几个基本操作符:

操作符描述
x + y连接两个字符串x与y
x * n 或 n * x复制n次字符串x
x in s如果x是s的子串,返回True,否则返回False

2.字符串处理函数

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

函数描述
len(x)返回字符串x的长度,也可返回其他组合数据类型的元素个数
str(x)返回任意类型x所对应的字符串形式
chr(x)返回Unicode编码x对应的单字符
ord(x)返回单字符x表示的Unicode编码
hex(x)返回整数x对应十六进制数的小写形式字符串
oct(x)返回整数x对应八进制数的小写形式字符串

3.字符串处理方法

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

方法描述
a.lower()返回字符串a的副本,全部字符小写
a.upper()返回字符串a的副本,全部字符大写
a.split(sep)能够根据sep分隔字符串a,分割后的内容以列表类型返回
a.count(sub)返回字符串sub在a中出现的次数
a.replace(old, new)返回字符串a的副本,所有old字符串被替换为new
a.center(width, fillchar)字符串居中函数,fillchar参数可选
a.strip(chars)从字符串a中去掉在其左侧和右侧chars中列出的字符
a.join(iter)将iter变量的每一个元素中增加一个a字符串

注意:副本指返回一个新的字符串,但不改变原本的变量a

五、数据类型的转换

  通过内置的数据类型转换函数可以显式地在数据类型之间进行转换:

函数描述
int(x)将x转换为整数,x可以是浮点数或字符串
float(x)将x转换为浮点数,x可以是整数或字符串
str(x)将x转换为字符串,x可以是整数或浮点数

注意:区分好“数据类型”和“数字类型”数字类型的定义,“数据类型”包括“数字类型”!!!


总结

  前路漫长艰辛,我辈仍需努力。

  • 32
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值