作者bazoo (surfers'paradise)
看板Python
标题Re: [问题]变数j的问题
时间Wed Jun 14 17:44:05 2017
※ 引述《LessonWang (橘白Cat)》之铭言:
: python新手发问
: j = 1
: a = 3 + j
: b = 3 + 1j
: 把a和b印出来
: 发现值不一样
: 是什麽问题呢?
: -----
: Sent from JPTT on my Asus ASUS_Z00UD.
这个问题有趣,是个初学者陷阱
https://docs.python.org/3.6/library/stdtypes.html#numeric-types-int-float-complex
短网址
https://goo.gl/8L8vGb
数字 + 'j' 是复数的表示法
ex: (3 + 2j)
3 + j 只是 "+" 的运算符号
3 + 1j 就变成复数了
我猜你要的写法应该是
3 + 1*j
其实这只是好运,理论上应该要喷 SyntaxError
刚好你用到 j,如果是用 a 当变数
>>> 3a
File "<stdin>", line 1
3a
^
SyntaxError: invalid syntax
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.239.49.61
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1497433449.A.A35.html
1F:→ LessonWang: 哈罗我是原po 其实我知道1乘以j不能写成1j的道理 那时 06/14 17:58
2F:→ LessonWang: 候在写这段程式码 最主要是要测试变数名称的合法性 因 06/14 17:58
3F:→ LessonWang: 为变数不能以数字开头 因此想要看看会不会出错 结果没 06/14 17:58
4F:→ LessonWang: 出错 後来 看了你给的文章 才晓得有复数这个东西 06/14 17:58
5F:推 Sunal: built-in 复数应该比PHP更适合科学计算吧XD 06/14 18:54
6F:推 HenryLiKing: 可是楼上 PhP可以直接用sqrt欸~好像很厉害的感觉! 06/14 20:48
7F:→ darkgerm: Python 也有 a**0.5 和 math.sqrt() 啊... 06/14 22:05
8F:→ uranusjr: 楼上没跟上时事 06/15 00:37