浅谈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 相关文章推荐
深入理解Python3中的http.client模块
Mar 29 Python
Python分治法定义与应用实例详解
Jul 28 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python中的引用和拷贝实例解析
Nov 14 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 Python
python 实现客户端与服务端的通信
Dec 23 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 Python
python抢购软件/插件/脚本附完整源码
Mar 04 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 8小时时间差的解决方法小结
2009/12/22 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python判断字符串与大小写转换
2015/06/08 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python socket实现简单聊天室
2018/04/01 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
历史学专业推荐信
2013/11/06 职场文书
单位实习证明怎么写
2014/01/17 职场文书
表彰先进的通报
2014/01/31 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
js不常见操作运算符总结
2021/11/20 Javascript
TV动画《间谍过家家》公开PV
2022/03/20 日漫
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python