浅谈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中用get()方法获取字典键值的教程
May 21 Python
python实现线程池的方法
Jun 30 Python
简单易懂的python环境安装教程
Jul 13 Python
Python中表示字符串的三种方法
Sep 06 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
Python模块汇总(常用第三方库)
Oct 07 Python
python离线安装外部依赖包的实现
Feb 13 Python
如何使用Python抓取网页tag操作
Feb 14 Python
解决jupyter notebook显示不全出现框框或者乱码问题
Apr 09 Python
python中tab键是什么意思
Jun 18 Python
Python把图片转化为pdf代码实例
Jul 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统计字符串中中英文字符的个数
2013/06/23 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
JS实现图片放大镜插件详解
2017/11/06 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
js实现烟花特效
2020/03/02 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
劳动模范事迹材料
2014/01/19 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
家长写给孩子的评语
2014/04/18 职场文书
工地宣传标语
2014/06/18 职场文书
物业管理专业自荐信
2014/07/01 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
体育教师个人工作总结
2015/02/09 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
java设计模式--原型模式详解
2021/07/21 Java/Android
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis