当前位置: 首页 > news >正文

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

数值运算符的优先级如下表所示(优先级从高到低排序):

运算符描述
**
*, /, %, //乘、除、求余、整除
+, -加、减
<, <=, >, >=小于,小于或等于,大于,大于或等于
==, !=等于,不等于
**=幂增强赋值
*=, /=, %=, //=乘、除、求余、整除增强赋值
+=, -=加减增强赋值
http://www.dtcms.com/a/295221.html

相关文章:

  • RabbitMQ--消息顺序性
  • Java集合去重
  • OpenMed 项目深度分析:推动医疗 NLP 领域的开源革命
  • pcie常用的查看寄存器方法
  • node.js中的path模块
  • 低速信号设计之 QSPI 篇
  • 【LeetCode数据结构】二叉树的应用(一)——单值二叉树问题、相同的树问题、对称二叉树问题、另一棵树的子树问题详解
  • Faiss中L2欧式距离与余弦相似度:究竟该如何选择?
  • Web前端入门:JavaScript 哪些地方需要 try...catch 异常捕获
  • 【图论】倍增与lca
  • Avalonia 基于MVVM的时间统计/系统时间显示 示例
  • EPSON爱普生全系列废墨垫已满清零工具分享附教程下载
  • EasyExcel 模板导出数据 + 自定义策略(合并单元格)
  • 基于深度学习的胸部 X 光图像肺炎分类系统(三)
  • Turbo Intruder 并发插件无法试用--更换新版Burpsuit解决(简单解决安装、破解问题)
  • 开源Qwen凌晨暴击闭源Claude!刷新AI编程SOTA,支持1M上下文
  • 跨境支付入门~国际支付结算(结算篇)
  • AtCoder Beginner Contest 415(ABCDE)
  • `neutron router-gateway-set` 操作失败的可能原因及解决方案
  • 深度分析Java多线程机制
  • 【智能协同云图库】智能协同云图库第六弹:空间模块开发
  • 微服务的编程测评系统6-管理员登录前端-前端路由优化
  • 【开源】WPF的数据可视化大屏解决方案——WpfMap
  • 洛谷 P11378 [GESP202412 七级] 燃烧-普及/提高-
  • fdbus4.2 timer的使用
  • AI时代,我的编程工作搭子
  • ospf单区域实验
  • Windows批量工具,直接起飞!
  • 外部存档(External Archive)机制
  • MNIST 手写数字识别模型分析