《手把手陪您学Python》12——数字

在上一篇《手把手陪您学Python》11——字符串的格式化输出中,我们用了较大的篇幅,学习了字符串的格式化输出方法。再加上之前字符串标识、索引、切片、运算和函数等内容,关于Python中字符串的内容我们就基本上介绍完了,大家可以通过点击下方的链接进行学习或者回顾。

《手把手陪您学Python》6——字符串的标识

《手把手陪您学Python》7——字符串的索引

《手把手陪您学Python》8——字符串的切片

《手把手陪您学Python》9——字符串的运算

《手把手陪您学Python》10——字符串的函数

《手把手陪您学Python》11——字符串的格式化输出

这一篇,将给大家介绍Python中关于数字的内容。

数字大家都很了解,但因为计算机语言毕竟与我们的自然语言或者数学符号有所差别,所以我们要通过这一篇的学习,了解一下Python中的数字都有哪些运算方式,以及这些运算方式是通过什么样的代码来实现的。

1、数字的类型

学习Python的好处之一就是它的语言非常精简。以数字的类型为例,对于其它语言中区分的整形(整数)、长整型(特别大的整数)、单精度浮点型(小数)、双精度浮点型(更大、小数位更多的小数),Python只用整形(整数)和浮点型(小数)进行了区分,不需要我们再根据数字的大小或者精度去选择数字类型了。

包括整形和浮点型,Python的数字类型一共有三种:

整型(int):就是我们平时说的整数,包括正整数和负整数,没有大小的限制。

浮点型(float):由整数和小数组成,也可以用科学计数法表示,既没有大小的限制,也没有精度(小数位个数)的限制。

复数(complex):由实数部分和虚数部分组成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。(非学霸可以忽略。。。)

2、数字类型的转换

说到数字类型的转换,我们要先来学习一个新的函数type()。type()是Python中用来检测对象类型的函数,非常非常有用。比如我们之前学习的字符串,就可以使用type()进行检测。

In [1]: a = 'Hello World!'
        type(a)
Out[1]: str

str就是代表字符串的符号,同样的,int和float就是代表数字类型的符号。

In [2]: b = 2019
        type(b)
Out[2]: int
​
In [3]: c = 2019.7
        type(c)
Out[3]: float

有一点需要说明,虽然同样都是2019,但是'2019'和2019却是完全不同的两种类型。

 In[4]: d = '2019'   # 因为多了字符串标识符'',所以2019不再是整型数字,而是字符串        type(d)Out[4]: str

数字类型的转换就是在字符串、整型、浮点型之间的转换。如果涉及到精度的改变,不采用四舍五入的规则,直接截取。此时,str、int、float就不再是代表类型的符号了,而是代表需要转换成某种类型的函数。

In [5]: e = int('2019')
        e
Out[5]: 2019
In [6]: type(e)
Out[6]: int
​
In [7]: f = str(2019)
        f
Out[7]: '2019'
In [8]: type(f)
Out[8]: str
​
In [9]: g = int(2019.7)   # 直接截取整数部分2019
        g
Out[9]: 2019
In [10]: type(g)
Out[10]: int
​
In [11]: h = float(2019)   # 整型转换成浮点型,增加小数位
         h
Out[11]: 2019.0
In [12]: type(h)
Out[12]: float
​
In [13]: i = float('2019')   # 整数字符串转换成浮点型,也增加小数位
         i
Out[13]: 2019.0
In [14]: type(i)
Out[14]: float
​
In [15]: j = str(2019.7)
         j
Out[15]: '2019.7'
In [16]: type(j)
Out[16]: str

以上实例总结起来就是str、int、float等类型可以相互转化,int或str的整数转换成float时会补上小数位,float转换成int时会直接截取整数部分。

3、数字的运算

Python的数字运算一共有7种,分别是加、减、乘、除、幂、取模(除后取余数)和取整(除后向下取整数)。对应这7种运算使用的符号以及运算实例如下:

In [17]: a = 11
         b = 3
​
In [18]: a + b
Out[18]: 14
​
In [19]: a - b
Out[19]: 8
​
In [20]: a * b
Out[20]: 33
​
In [21]: a / b
Out[21]: 3.6666666666666665
​
In [22]: a ** b   # a的b次幂
Out[22]: 1331
​
In [23]: a % b   # 11除3等于3,余数为2
Out[23]: 2
​
In [24]: a // b   # 11除3等于3余2,向下取整数部分为3
Out[24]: 3

除了数字运算,其实还有比较运算,这部分我们放在下一篇一起来讲。

4、数字的函数

数字的函数与我们数学中的概念以及excel中的用法类似,大家可以参考下表,了解一下都有哪些数学与三角函数可以使用。这里就不一一举例了,只选择几个常用函数作为示例。

数学函数:

函数

返回值 ( 描述 )

abs(x)

返回数字的绝对值,如abs(-10) 返回 10

ceil(x)

返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y)

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。

exp(x)

返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

fabs(x)

返回数字的绝对值,如math.fabs(-10) 返回10.0

floor(x)

返回数字的下舍整数,如math.floor(4.9)返回 4

log(x)

如math.log(math.e)返回1.0,math.log(100,10)返回2.0

log10(x)

返回以10为基数的x的对数,如math.log10(100)返回 2.0

max(x1, x2,...)

返回给定参数的最大值,参数可以为序列。

min(x1, x2,...)

返回给定参数的最小值,参数可以为序列。

modf(x)

返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

pow(x, y)

x**y 运算后的值。

round(x [,n])

返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

sqrt(x)

返回数字x的平方根。

三角函数:

函数

描述

acos(x)

返回x的反余弦弧度值。

asin(x)

返回x的反正弦弧度值。

atan(x)

返回x的反正切弧度值。

atan2(y, x)

返回给定的 X 及 Y 坐标值的反正切值。

cos(x)

返回x的弧度的余弦值。

hypot(x, y)

返回欧几里德范数 sqrt(x*x + y*y)。

sin(x)

返回的x弧度的正弦值。

tan(x)

返回x弧度的正切值。

degrees(x)

将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x)

将角度转换为弧度

大家在上表中看到的math.就是使用的math数学函数库中的函数,可以通过import math来实现。

In [25]: import math
​
In [26]: abs(-5)
Out[26]: 5
​
In [27]: math.floor(-5.8)
Out[27]: 5
​
In [28]: pow(11, 3)   # 和11**3的作用一样
Out[28]: 1331

5、数字常量

在Python的math数学函数库中,有两个数字常量,一个是圆周率π,一个是自然常数e。这两个常数也需要先导入数学函数库math才能够使用。

In [29]: math.pi
Out[29]: 3.141592653589793
​
In [30]: math.e
Out[30]: 2.718281828459045
​
In [31]: math.sin(math.pi/2)   # math.pi用于导入math数学函数库中的π值
Out[31]: 1.0

6、随机函数

最后介绍的这个函数非常重要。如果大家还记得,在《手把手陪您学Python》10——字符串的函数一文中,我们就应用随机函数,实现了投骰子后随机结果的产生。随机函数不仅在很多领域和算法中都会应用到随机函数,就算是我们后面将要编写的小游戏,也离不开随机函数的应用。

常用的随机函数包括如下:

函数

描述

choice(seq)

从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

randrange ([start,] stop [,step])

从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random()

随机生成下一个实数,它在[0,1)范围内。

seed([x])

改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

shuffle(lst)

将序列的所有元素随机排序

uniform(x, y)

随机生成下一个实数,它在[x,y]范围内。

randint(x, y)

随机生成下一个整数,它在[x,y]范围内。

使用随机函数前,需要先导入随机函数库random。

In [32]: import random
​
In [33]: random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])   # 从序列中随机选择一个元素
Out[33]: 7
​
In [34]: random.randrange(0, 100, 5)   # 在从0开始、按5递增到100的序列中,随机选择一个数
Out[34]: 80
​
In [35]: random.random()   # 产生一个0到1之间的随机实数
Out[35]: 0.6754864921213494
​
In [36]: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
         random.shuffle(lst)   # 将序列重新排序
         lst
Out[36]: [1, 3, 8, 4, 7, 2, 6, 5, 9]
​
In [37]: random.uniform(0, 100)   # 产生一个0到100之间的随机实数
Out[37]: 25.885951644929495
​
In [38]: random.randint(0, 100)   # 产生一个0到100之间的随机整数
Out[38]: 54

Python数字的部分就是这些,与上一篇相比应该是非常简单了。大家主要记住数字的类型及其转换、数字运算和函数的使用方法,以及随机函数的几种应用形式就可以了。

下一篇,将给大家介绍Python的几种运算方式和运算符,敬请关注。

 

 


感谢阅读本文!如有任何问题,欢迎留言,一起交流讨论^_^

欢迎扫描下方二维码,关注“亦说Python”公众号,阅读《手把手陪您学Python》系列文章的其他篇目,或点击下方链接直达。

《手把手陪您学Python》1——为什么要学Python?

《手把手陪您学Python》2——Python的安装

《手把手陪您学Python》3——PyCharm的安装和配置

《手把手陪您学Python》4——Hello World!

《手把手陪您学Python》5——Jupyter Notebook

《手把手陪您学Python》6——字符串的标识

《手把手陪您学Python》7——字符串的索引

《手把手陪您学Python》8——字符串的切片

《手把手陪您学Python》9——字符串的运算

《手把手陪您学Python》10——字符串的函数

《手把手陪您学Python》11——字符串的格式化输出

For Fans:关注“亦说Python”公众号,回复“手12”,即可免费下载本篇文章所用示例语句。

亦说Python——Python爱好者的学习分享园地

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页