我们一起学Python-三、数据类型与变量(1)—— 数值类型
1. 数值类型
Python中的整数的类型为整型(int),带小数点的数字叫做浮点型(float)。后面我们还会提到更多的数值类型。
1.1 整数运算
整数是不带小数部分的数字,如 14、-11和0 。Python支持4种基本算术运算:+(加)、-(减)、*(乘)、/(除)。Python还使用**和%分别表示乘方和求余,// 表示整除,例如,25%7的值为4,因为25除以7的余数为4 。下面是一些示例
1 | 5 + 9 |
1.2 浮点数运算
浮点数运算运行使用的是浮点数。在Python中,浮点数是带小数点的数字,例如,-3.1 ,11.14 ,10.0 都是浮点数。
所有适用于整数的算术运算都可用于浮点数,包括%(求余)和 // (整除)。
1.2.1 浮点数字面量
对于非常大或非常小的浮点数,通常用科学记数法来表示。
1 | >>> 8.8 ** -14 |
e-14表示将它前面的数字乘以10的-6次方。如果愿意,你可以直接使用科学记数法。
1 | >>> 2e+03 # 加号可以省略,写做:2e03 |
1.2.2 溢出
与整数不同,浮点数存在上限和下限,超出上限或下限将导致溢出错误,溢出错误意味着计算结果太大或太小,Python无法将其表示为浮点数。
1 | >>> 11.4**1002 |
1.2.3 精度有限
无论在哪种计算机上,浮点数的精度都是一个无法解决的难题。在计算机中,数字用二进制表示,但并非所有的浮点数都可用二进制精确地表示。即便在简单的情况下,也可能出现问题。
1 | >>> 1-2/3 |
结果应该是小数点后面有无穷个3,但这里只包含17位。其次,最后一位也不对,应该是3而不是7 。
tips:一般而言,应优先考虑使用整数而不是浮点数,因为他们更精确且绝不会溢出。
1.2.4 复数
Python提供了内置的复数支持。
j来标记虚数
复数可以分离实部虚部
-复数.real (实部)
-复数.imag (虚部)
复数的共轭
-复数.conjugate()
1 | 1j |
1.3 长度不受限制
与其他大多数编程语言不同,Python对整数的长度没有限制,你可以执行数十位甚至数百数千位的整数运算。
1 | 14 ** 114 |
1.4 求值顺序
表 3-1 基本算数运算符
名称 | 运算符 |
---|---|
加法 | + |
减法 | - |
乘法 | * |
除法 | / |
整除 | // |
求余 | % |
乘方 | ** |
表3-1总结了Python基本算数运算符,并案优先级从低到高的顺序将它们编组。例如,计算表达式1 + 2 3,Python先执行 ,在执行 + ,因为 的优先级更高(因此,这个表达式的值为7,而不是9)。优先级相同的运算符按书写顺序计算。要改变计算顺序,可以使用圆括号 () ,例如 (1 + 2) 3的结果为9 。换句话说,Python算术运算的规则与常规算术运算相同。
1.5 其他数学函数
Python自带了很多由编写好的代码组成的模块,math就是其中之一。表3-2列出了math模块中的一些最常用的函数。
表3-2 模块math中的一些函数
函数 | 描述 |
---|---|
ceil(x) | 大于或等于x的整数 |
cos(x) | x的余弦 |
degree(x) | 将x弧度转换为度数 |
exp(x) | e的x次方 |
factorial(n) | 计算n的阶乘(n!)。n!=1 2 3…* n ,其中n必须是整数 |
log(x) | 以e为底的x的对数 |
log(x, b) | 以b为底的x的对数 |
pow(x, y) | x的y次方 |
radians(x) | 将x度转换为弧度数 |
sin(x) | x的正弦 |
sqrt(x) | x的平方根 |
tan(x) | x的正切 |
1.5.1 使用返回值
这些函数返回一个值,这意味着它们的结果为整数或浮点数,具体随函数而异。
在可以使用数字的任何地方,都可使用这些函数。Python自动执行函数,并将函数调用替换为返回值。
1.5.2 导入模块
要使用模块math或其他任何Python模块,都必须先导入:
1 | >>> import math |
这样就可以访问任何数学函数了,方法是在函数前面加上math. 。
1 | >>> math.sqrt(5) |
下面是另一种导入模块的方式。
1 | >>> from math import * |
这样调用math模块中的任何函数时,都无需在前面加上math. 。
1 | >>> log(14 + 10) |
tips: 你还可导入模块math的特定函数,例如,from math import sqrt, tan 只导入函数sqrt和tan。关于模块的详细用法将会在后面提到。