浅谈Python 中的复数问题


Posted in Python onMay 19, 2021

前言

复习试题时,发现一道复数问题

问题

关于 Python 的复数类型,以下选项中描述错误的是

A复数的虚数部分通过后缀“J”或者“j”来表示

B对于复数 z,可以用 z.real 获得它的实数部分

C对于复数 z,可以用 z.imag 获得它的实数部分

D复数类型表示数学中的复数

正确答案: C

首先我们来明确一下什么是复数: 复数在数学上面的定义是由实数部分和虚数部分所组成的数,形如a+bj .

其中a、b为实数,j为“虚数单位”,j 的平方等于-1.a、b分别叫做复数a+bj的实部和虚部。

下面让我们在Python中定义一个复数:real + imag(虚部的单位可以是j或者J)

a = 6 + 0.6j

# 输出这个复数a

print(a)

# 获取实部

print(a.real)

# 获取虚部

print(a.imag)

# 获取该复数的共轭复数

print(a.conjugate())

# 让我们通过complex函数来定义一个复数

a = complex(1, 2)

b = complex(1)

c = complex("1")

d = complex("1+2j")

# 运行结果

浅谈Python 中的复数问题

补充:Python 复数及运算类型问题

在做题的时候遇到了这样的问题:

浅谈Python 中的复数问题

按照数学上的知识,我们通常会认为实部是1.23e+4,也就是12300;虚部是9.87e+6,也就是9870000。

但是程序运行结果却不是这样:

浅谈Python 中的复数问题

为什么和我们想象的不一样呢,这里面涉及到两个问题:

1、实部虚部问题

2、结果类型问题

再来看一些例子:

浅谈Python 中的复数问题

浅谈Python 中的复数问题

浅谈Python 中的复数问题

通过上述例子可以看出,如果我们使用<复数>.<imag>的方式来获取虚部,那么计算机就会将这个复数的实部和虚部相加,并且以浮点数的类型返回。而如果要获取我们通常理解意义上的虚部,则要将这个复数赋给一个变量,通过<变量>.<imag>的方式获取,就能得到“a + bi”模式的虚部。

浅谈Python 中的复数问题

实部的获取相对容易理解,不是紧跟 j 的就是实部,同样以浮点数的类型返回。

另一个问题就是运算类型的问题,Python中有三种数据类型:整数、浮点数、复数。这三种类型数据混合参与运算时,结果的类型采用“最宽范围”的类型,复数类型范围最宽,整数最窄。

在上述例子中,复数的实部、虚部不会是复数类型,则以次于复数类型的浮点数类型返回。

再列出一些运算的例子:

浅谈Python 中的复数问题

浅谈Python 中的复数问题

当然,如果类型保持一致,则以同样类型返回运算结果(类型一致也就是最宽的类型就是他本身的类型)

上述是我通过实验总结出来的,没有查找权威参考资料,若有不正确的地方希望指正。

Python 相关文章推荐
Python返回真假值(True or False)小技巧
Apr 10 Python
python操作字典类型的常用方法(推荐)
May 16 Python
深入理解python try异常处理机制
Jun 01 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
Python中的self用法详解
Aug 06 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
python数字图像处理:图像的绘制
Jun 28 Python
Python机器学习之基础概述
Python机器学习之PCA降维算法详解
Python 批量下载阴阳师网站壁纸
May 19 #Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 #Python
python使用pywinauto驱动微信客户端实现公众号爬虫
python基于tkinter实现gif录屏功能
Python 读写 Matlab Mat 格式数据的操作
May 19 #Python
You might like
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
php文件缓存方法总结
2016/03/16 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
js实现电灯开关效果
2021/01/19 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
Python 中Pickle库的使用详解
2018/02/24 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
春节联欢晚会主持词
2014/03/24 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
《山中访友》教学反思
2016/02/24 职场文书
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS