浅谈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使用datetime模块计算各种时间间隔的方法
Mar 24 Python
Python3中bytes类型转换为str类型
Sep 27 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
python三引号输出方法
Feb 27 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
在Python中append以及extend返回None的例子
Jul 20 Python
python getpass模块用法及实例详解
Oct 07 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
Python日志syslog使用原理详解
Feb 18 Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 Python
Python devel安装失败问题解决方案
Jun 09 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
Oct 16 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(4) php 函数 补充2
2010/02/15 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
python多线程http下载实现示例
2013/12/30 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python实现批量修改文件名代码
2017/09/10 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
Python编写单元测试代码实例
2020/09/10 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
C++面试题目
2013/06/25 面试题
怎样客观的做好自我评价
2013/12/28 职场文书
2014的自我评价
2014/01/13 职场文书
运动会加油稿100字
2014/09/19 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
家长会主持词开场白
2015/05/29 职场文书
成绩单家长意见
2015/06/03 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
思想品德课教学反思
2016/02/24 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android