作者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://www.ptt.cc/bbs/Python/M.1497433449.A.A35.html
→ LessonWang: 哈囉我是原po 其實我知道1乘以j不能寫成1j的道理 那時 06/14 17:58
→ LessonWang: 候在寫這段程式碼 最主要是要測試變數名稱的合法性 因 06/14 17:58
→ LessonWang: 為變數不能以數字開頭 因此想要看看會不會出錯 結果沒 06/14 17:58
→ LessonWang: 出錯 後來 看了你給的文章 才曉得有複數這個東西 06/14 17:58
推 Sunal: built-in 複數應該比PHP更適合科學計算吧XD 06/14 18:54
推 HenryLiKing: 可是樓上 PhP可以直接用sqrt欸~好像很厲害的感覺! 06/14 20:48
→ darkgerm: Python 也有 a**0.5 和 math.sqrt() 啊... 06/14 22:05
→ uranusjr: 樓上沒跟上時事 06/15 00:37