Python 程序设计讲义(14):Python 的数据运算——数值运算
Python 程序设计讲义(14):Python 的数据运算——数值运算
目录
- Python 程序设计讲义(14):Python 的数据运算——数值运算
- 一、算术运算
- 1、加法与减法运算
- 2、乘法运算与除法运算
- 3、整除运算
- 4、求余运算
- 5、幂运算
- 二、增强赋值
- 三、不同数据类型的转换
- 1、自动转换
- 2、手动转换
- 四、数值的比较运算
- 五、数值运算符的优先级
数值运算就是对整数类型、浮点数类型数据的运算。如:加、减、乘、除、求余、整除、幂等运算。
一、算术运算
算术运算包括加、减、乘、除、求余、整除、幂等运算。
1、加法与减法运算
例如:
a=20+15
b=25+5.8-12.9
print(a)
print(type(a))
print(b)
print(type(b))运算结果为:
35
<class 'int'>
17.9
<class 'float'>
2、乘法运算与除法运算
例如:
a=27*1.5
b=25/12
print(a)
print(type(a))
print(b)
print(type(b))运算结果为:
40.5
<class 'float'>
2.0833333333333335
<class 'float'>
3、整除运算
整除运算对除法运算的结果取整(不进行四舍五入)。
例如:
a=27//1.5
b=25//-12
print(a)
print(type(a))
print(b)
print(type(b))运算结果为:
18.0
<class 'float'>
-3
<class 'int'>
4、求余运算
求余运算是将两个值进行整除运算,得到余数部分。
例如:
a=27%5
b=25%-12
print(a)
print(type(a))
print(b)
print(type(b))运算结果为:
2
<class 'int'>
-11
<class 'int'>
5、幂运算
例如:
a=27**2
b=25**-2
c=16**0.5
print(a)
print(type(a))
print(b)
print(type(b))
print(c)
print(type(c))运算结果为:
729
<class 'int'>
0.0016
<class 'float'>
4.0
<class 'float'>
二、增强赋值
增强赋值是对变量进行运算后重新进行赋值。增强赋值使用运算符+=, -=, *=, /=, %=, //=, **=
。
例如:
a=2
a+=5 # a=a+5=2+5=7
print(a)
a-=3 #a=a-3=7-3=4
print(a)
a*=5 #a=a*5=4*5=20
print(a)
a/=2 #a=a/2=20/2=10
print(a)
a%=6 #a=a%6=10%6=4
print(a)
a**=3 #a=a**3=64
print(a)
a//=10 #a=a//10=64//10=6
print(a)运算结果为:
7
4
20
10.0
4.0
64.0
6.0
三、不同数据类型的转换
数值运算使用的数据包括整型、浮点型和复数。运算时,Python 会将不同的数据类型进行转换,然后再进行运算。Python 提供了自动转换和手动转换两种方式。
1、自动转换
自动转换是指运算时,Python 会对参与运算的数据进行判断,然后进行自动转换。根据数据类型不同,分为以下几种情况。
(1)整数与整数运算
当整数与整数进行除法运算时,结果为浮点型,其他运算结果都是整数。
例如:
a,b=20,5
c=a+b
print('{}+{}={}'.format(a,b,c),type(c))
c=a-b
print('{}-{}={}'.format(a,b,c),type(c))
c=a*b
print('{}*{}={}'.format(a,b,c),type(c))
c=a/b
print('{}/{}={}'.format(a,b,c),type(c))
c=a%b
print('{}%{}={}'.format(a,b,c),type(c))
c=a//b
print('{}//{}={}'.format(a,b,c),type(c))
c=a**b
print('{}**{}={}'.format(a,b,c),type(c))运算结果为:
20+5=25 <class 'int'>
20-5=15 <class 'int'>
20*5=100 <class 'int'>
20/5=4.0 <class 'float'>
20%5=0 <class 'int'>
20//5=4 <class 'int'>
20**5=3200000 <class 'int'>
(2)整数与浮点数运算
整数与浮点数运算的结果都是浮点数类型。在运算时,首先将整型转换为浮点数,然后再与浮点数进行运算。
例如:
a,b=20,5.0
c=a+b
print('{}+{}={}'.format(a,b,c),type(c))
c=a-b
print('{}-{}={}'.format(a,b,c),type(c))
c=a*b
print('{}*{}={}'.format(a,b,c),type(c))
c=a/b
print('{}/{}={}'.format(a,b,c),type(c))
c=a%b
print('{}%{}={}'.format(a,b,c),type(c))
c=a//b
print('{}//{}={}'.format(a,b,c),type(c))
c=a**b
print('{}**{}={}'.format(a,b,c),type(c))运算结果为:
20+5.0=25.0 <class 'float'>
20-5.0=15.0 <class 'float'>
20*5.0=100.0 <class 'float'>
20/5.0=4.0 <class 'float'>
20%5.0=0.0 <class 'float'>
20//5.0=4.0 <class 'float'>
20**5.0=3200000.0 <class 'float'>
(3)整数与复数、浮点数与复数进行运算
整数与复数进行运算的结果为复数。运算时,首先将整数转换为复数,然后与原有的复数进行运算。浮点数与复数进行运算的结果为复数。运算是,首先将浮点数转换为复数,然后与原有的复数进行运算。
例如:
a,b=20-5.2j,5.0
c=a+b
print('{}+{}={}'.format(a,b,c),type(c))
c=a-b
print('{}-{}={}'.format(a,b,c),type(c))
c=a*b
print('{}*{}={}'.format(a,b,c),type(c))运算结果为:
(20-5.2j)+5.0=(25-5.2j) <class 'complex'>
(20-5.2j)-5.0=(15-5.2j) <class 'complex'>
(20-5.2j)*5.0=(100-26j) <class 'complex'>
2、手动转换
自动转换得到的结果是默认类型的数据,如果需要得到特定类型的数据,则需要手动转换。
(1)使用内置 int() 函数强制转换为整数类型
使用内置 int() 函数可以将浮点数或字符串类型强制转换为整数类型。
例如:
a,b=20,5.4
c=a+int(b)
print(c,type(c))
c=a**int(b)
print(c,type(c))运算结果为:
25 <class 'int'>
3200000 <class 'int'>
(2)使用内置 float() 函数强制转换为浮点数类型
使用内置 float() 函数可以将整数或字符串类型强制转换为浮点数类型。
例如:
a,b=20,5
c=a+float(b)
print(c,type(c))
c=float(a)**b
print(c,type(c))运算结果为:
25.0 <class 'float'>
3200000.0 <class 'float'>
四、数值的比较运算
使用比较运算符对数值进行比较,运算结果为布尔值。
例如:
a,b=20,5
print("a是否等于b:",a==b)
print("a是否不等于b:",a!=b)
print("a是否大于b:",a>b)
print("a是否小于b:",a<b)
print("a是否大于等于b:",a>=b)
print("a是否小于等于b:",a<=b)运算结果为:
a是否等于b: False
a是否不等于b: True
a是否大于b: True
a是否小于b: False
a是否大于等于b: True
a是否小于等于b: False
五、数值运算符的优先级
运算符的优先级是指在运算过程中规定的哪个先运算、哪个后运算。先运算的级别高于后运算的级别。使用括号可以改变运算符的优先级。
例如:
a=2+3**2
b=(2+3)**2
print(a,b)运算结果为:
11 25
数值运算符的优先级如下表所示(优先级从高到低排序):
运算符 | 描述 |
---|---|
** | 幂 |
*, /, %, // | 乘、除、求余、整除 |
+, - | 加、减 |
<, <=, >, >= | 小于,小于或等于,大于,大于或等于 |
==, != | 等于,不等于 |
**= | 幂增强赋值 |
*=, /=, %=, //= | 乘、除、求余、整除增强赋值 |
+=, -= | 加减增强赋值 |