Python 提供了三种数值类型:int(整型),float(浮点型)和complex(复数)。
- int:通常被称为整型或者整数,如200、299、10都属于整型;
- float:浮点数包含整数和小数部分,如3.1415926,2.71828都属于浮点数;
- complex:复数包含实数部分和虚数部分,形如 a+bj,其实部和虚部都是浮点类型;
需要注意的是,Python3 已经废弃了 Python2 的 Long(长整型),在 Python3 中,int 的大小没有限制,可以作为 Long 使用。这也是为什么Python非常适合科学计算的原因,因为Python可以处理无限大的整数。在Python中进行数值运算,并不需要考虑溢出问题,因为Python的数值永远不会溢出。
1. 数值类型之间的转换
Python 的三种数值类型可以进行相互转换,转换方式为:数字类型+圆括号,如下实例:
a = 456 b = 2.71828 print("int(b)=",int(b)) print("float(a)=",float(a)) print("complex(a)=",complex(a)) print("complex(a,b)=",complex(a,b))
执行结果如下图所示:
2. 常用的数学函数
Python 提供了丰富的数学函数以降低编程实现的难度,本问将介绍一些常用的函数。
import math #求绝对值:abs(x) print("abs(-200)=",abs(-200)) #向上取整:ceil(x) print("ceil(3.1415)=",math.ceil(3.1415)) #向下取整:floor(x) print("floor(3.678)=",math.floor(3.678)) #四舍五入:round(x) print("round(3.678)=",round(3.678)) #乘方运算:pow(x,y),x的y次方 print("pow(3,4)=",pow(3,4)) #求平方根:sqrt(x) print("sqrt(144)=",math.sqrt(144))
执行结果如下图所示:
3. 运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机编程语言,Python 也提供了一套丰富的运算符来满足各种运算需求。
Python 运算符主要可以分为6种:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符和成员运算符。
(1)算术运算符
对于算术运算,大家并不陌生,常用的加减乘除就是算术运算。不过,在编程语言里,算术运算符特殊一些,Python 中的算术运算有7种:加(+)、减(-)、乘( * )、除(/)、取模(%)、幂运算( ** )和取整预算(//)。以下通过实例演示算术运算符的用法。
#初始化测试数据 x = 30 y = 24 z = 12 #分别进行7种算术运算 z = x + y print("x + y =", z) z = x - y print("x - y =", z) z = x * y print("x * y =", z) z = x / y print("x / y =", z) z = x % y print("x % y =", z) z = x ** y print("x ** y =", z) z = x // y print("x // y =", z)
执行结果如下图所示:
(2)比较运算符
比较无处不在,大于、小于、等于、不等于……和 C/C++、Java 等编程语言一样,Python 也提供了6种比较运算符:>(大于),<(小于),==(等于),!=(不等于),>=(大于等于),<=(小于等于)。比较运算的结果是一个布尔值,True 或者 False,看下面的案例代码:
# 初始化变量 x = 12 y = 7 #分别进行6种比较运算 print("x == y:", x == y) print("x != y:", x != y) print("x > y:", x > y) print("x < y:", x < y) print("x >= y:", x >= y) print("x <= y:", x <= y)
执行结果如下图所示:
(3)赋值运算符
其实在前面的代码中已经用到赋值运算,如 x = 12,就是一个最简单的赋值运算,“=”就是最简单的赋值运算符。将简单的赋值运算与算术运算结合,Python 形成了更丰富的赋值运算符:+=、-=、=、/=、%=、*=、//=。看下面的案例代码:
#初始化变量 x = 12 y = 21 #分别进行7种赋值运算 y = x print("y = x, y =", y) y += x print("y += x, y =", y) y -= x print("y -= x, y =", y) y *= x print("y *= x, y =", y) y /= x print("y /= x, y =", y) y **= x print("y **= x, y =", y) y //= x print("y //= x, y =", y)
执行结果:
(4)逻辑运算符
所谓逻辑运算,就是:与、或、非。Python 中的3种逻辑运算符分别为:and(与),or(或),not(非),逻辑运算的结果是布尔值:True 或者 False。
- A and B:当A和B有一个为False时,结果就为False,只有A和B都为True时,结果才为True;
- A or B:只有当A和B都是False时,结果才为False,只要有一个为True,结果就为True;
- not A:当 A 为 True 时,返回 False,否则返回 True。
看下面的案例:
#初始化变量 a = 2 b = 3 c = 5 #分别执行3种逻辑运算 print("a>b and a<c :", a>b and a<c) print("a<b and c :", a<b and c) print("a>b or c :", a>b or a<c) print("a<b or c :", a<b or c) print("a or a<c :", a or a<c) print("not a :", not a) print("not a<b :", not a<b)
执行结果如下图所示:
(5)位运算符
程序中的所有数值在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。Python 中有6种位运算符:
- &:按位与,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
- |:按位或,只要对应的2个二进位有一个为1时,结果位就为1;
- ^:按位异或,当两对应的二进位相异时,结果为1;
- ~:按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1;
- >>:按位右移,将>>左侧的数按位向右移动>>右边的数指定的位;
- <<:按位左移,将<<左侧的数按位向左移动<<右边的数指定的位;
看下面的案例代码:
a = 21 b = 6 print('a & b = ',a & b) print('a | b = ',a | b) print('a ^ b = ',a ^ b) print('~a = ',~a) print('a << 2 = ',a << 2) print('a >> 2 = ',a >> 2)
执行结果如下图所示:
这里讲a=21,b=6,转换为二进制如下:
a = 0001 0101 b = 0000 0110 a&b = 0000 0100 a|b = 0001 0111 a^b = 0001 0011 ~a = 1110 1010 a<<2 = 01010100 a>>2 = 0000 0101
(6)成员运算符
除了前面介绍的5种运算符,Python 还支持成员运算符。介绍成员运算符之前,我们需要提前了解一个概念:数据结构,如字符串、列表、元组、字典。在接下来的文章中我们将详细介绍这些基础的数据结构。字符串、列表、字典,它们就像一个集合,其中包含若干元素,这些元素就是集合的成员;对于一个给定的元素,它有可能在一个给定的集合中,也可能不在,Python 中采用成员运算符来判断元素是否属于成员,成员运算的结果为布尔值,True 或者 False。
看下面的代码:
#初始化字符串和列表 temp1 = "abcdefg" temp2 = [4,2,3,5,8,9] a = "cdf" b = 5 c = "cde" print("a in temp1?", a in temp1) print("b in temp2?", b in temp2) print("c in temp1?", c in temp1)
执行结果如下图所示: