浅谈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脚本使得web页面上的代码高亮显示
Apr 24 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
python入门基础之用户输入与模块初认识
Nov 14 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
python中如何使用分步式进程计算详解
Mar 22 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
python+opencv实现目标跟踪过程
Jun 21 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获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
PHP session 会话处理函数
2016/06/06 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python如何生成树形图案
2018/01/03 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python类装饰器实现方法详解
2018/12/21 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
廉洁教育学习材料
2014/05/19 职场文书
毕业生面试求职信
2014/06/23 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS