浅谈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中zip和unzip数据的方法
May 27 Python
Python中的id()函数指的什么
Oct 17 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
Python实现随机漫步功能
Jul 09 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
Python3几个常见问题的处理方法
Feb 26 Python
Python类中self参数用法详解
Feb 13 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
Python 实现进度条的六种方式
Jan 06 Python
python drf各类组件的用法和作用
Jan 12 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 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 header函数分析详解
2011/08/06 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Python下的twisted框架入门指引
2015/04/15 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Flask配置Cors跨域的实现
2019/07/12 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
python3.5的包存放的具体路径
2020/08/16 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
杭州联环马网络笔试题面试题
2013/08/04 面试题
环境工程专业自荐信
2014/03/03 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL