浅谈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 正则表达式操作指南
May 04 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 Python
matplotlib实现区域颜色填充
Mar 18 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
浅析python标准库中的glob
Mar 13 Python
Python configparser模块常用方法解析
May 22 Python
Python创建自己的加密货币的示例
Mar 01 Python
Django分页器的用法你都了解吗
May 26 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
Python实现优先级队列结构的方法详解
2016/06/02 Python
对Python中内置异常层次结构详解
2018/10/18 Python
Python异常处理知识点总结
2019/02/18 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
学校节能减排方案
2014/06/13 职场文书
员工培训协议书
2014/09/15 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
辞职信怎么写?
2019/05/21 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python