
2.4.1 算术运算符和算术表达式
1.算术运算符
Python中的算术运算符见表2-3。假设表中变量a为10,变量b为20。
表2-3 算术运算符

在算术表达式中包含各种算术运算符,必须规定各个运算的先后顺序,这就是算术运算符的优先级。表2-4按优先顺序由高到低列出了算术运算符。
表2-4 算术运算符的优先级

当一个表达式中含有多种算术运算符时,将按上述顺序求值。对于同等优先级的多种算术运算符,从左到右依次计算。使用括号“()”可以改变优先级的顺序,如果表达式中含有括号,则先计算括号内表达式的值;如果有多层括号,则先计算最内层括号中的表达式。
2.算术表达式
算术表达式也称数值型表达式,算术表达式由变量、函数和算术表达式以及圆括号组成,并且表达式的运算结果是一个数值。算术表达式的格式为:

注意:
1)一个单独的数据对象或变量是表达式的特殊形式。
2)在做不同类型数值的混合运算时,会发生类型转换,例如一个整数和一个浮点数运算时,首先把整数转换成浮点数,运算结果是浮点数。
3)除法运算总是把整数转换成浮点数,运算结果是浮点数。例如:50*2+(70-6)/8的运算结果为:108.0。
4)如果要获取整数,使用∥运算符,或者用int()函数。
3.数值类型转换
对内置的数值类型进行转换,只需要将数据类型作为函数名即可。
1)int(x):将x转换为一个整数。x是一个数值类型数据或数字字符串。
2)float(x):将x转换为一个浮点数或数字字符串。
3)complex(x):将x转换为一个复数,实部为x,虚部为0。
4)complex(x,y):将x和y转换为一个复数,实部为x,虚部为y。x和y是数值表达式。
另外,如果要把字符串转换成数值类型,使用int()或float()函数,例如:int("99"),float("12.5")。
4.表达式的书写规则
算术表达式与数学中的表达式写法有所区别,Python表达式都是按照一定的规则来书写的,否则系统无法识别,也无法执行。
在书写表达式时应当特别注意:
1)每个符号占1格,所有符号都必须一个一个并排写在同一基准上,所有字符按行书写,不能在右上角或右下角写成上标或下标。例如,a3要写成a**3。a1+a2要写成a1+a2。
2)原来在数学表达式中省略的内容必须重新写上。例如,2x表示2乘x,要写成2*x。
3)表达式中只可以使用圆括号来表示优先级,且要成对出现。不可以使用方括号、大括号等。例如,3[x+2(y+z)]必须写成3*(x+2*(y+z))。
4)要把数学表达式中的有些符号改成Python中可以表示的符号。例如,2πr改为2*PI*r。
【例2-9】 把下列数学表达式改写为Python表达式。
1)a1a2x2+(a1b2+a2b1)x+b1b2 2)
3) 4)T=an+m
5) 6)
解答:按照表达式的书写规则,把数学表达式改写为Python表达式。
1)a1*a2*x**2+(a1*b2+a2*b1)*x+b1*b2
2)(a*d+b*c)/(b*d)
3)V=4/3*PI*r**3
4)T=a**(n+m)
5)F=G*m1*m2/(r*r)
6)x1=(-b+(b**2-4*a*c)**0.5)/(2*a)和x2=(-b-(b**2-4*a*c)**0.5)/(2*a)
【例2-10】 演示Python所有算术运算符的操作。

上面程序的运行结果如图2-17所示。

图2-17 例2-10运行结果