Re: [問題] 新手書疑問

看板Python作者 (一杯貓)時間12年前 (2013/01/24 19:34), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串3/5 (看更多)
※ 引述《palapapapa (lala)》之銘言: : 標題: [問題] 新手書疑問 : 時間: Wed Jan 23 11:09:46 2013 : 這邊有個指派部分,我卡了好久,想請問一下: : 教學內容:所謂的指派是把等號右邊的值給左邊的變數 : a = 2 : a += 2 # a 會等於 4 我的理解是右邊的2往左丟,加上a,等於4 : a -= 2 # a 會等於 2 ←不知道2是怎麼出來的? : 2 (a代表的) - 2 (右邊) 不是 = 0 嗎 : a /= 2 # a 會等於 2.0 : a **= 2 # a 會等於 0.0 : 後面這兩個也跟作者答案不同,是我理解錯誤嗎? : : http://pydoing.blogspot.tw/2012/12/Python-Expression-and-Statement.html : ※ 編輯: palapapapa 來自: 118.170.10.252 (01/24 19:10) 這一段這些步驟要連起來看 a = 2 a += 2 # a 會等於 4 # 現在a這個變數裡面放的東西已經變成4這個數值了, 現在a是4 a -= 2 # a 會等於 2 # 對, 因為4-2 = 2, 然後這個2又被放回a 現在a是2 a *= 2 # a 會等於 4 # 到上一步時a是2, 現在乘以2, 變成4 現在a是4 a /= 2 # a 會等於 2.0 # 4 / 2 = 2, 現在a是2 # (delete 但是這裡作者講錯了orz python裡int / int 還是int, # 不會跑出float 的2.0) a %= 2 # a 會等於 0.0 # 剛才a 是2, # 2 對 2 取餘數, 得0. 現在a是0 a **= 2 # a 會等於 0.0 # 到上一步為止a 已經變成0了 # 0 的2次方還是0 ( edit: 感謝timTan指正!! 原來如此 python 3 裡 operator "/" 作為數學上的除法 operator "//" 作為數學上的 floor ( div ( arg1, arg2 ) ) 於是int type 相除是會產生float type的. 看來我該好好了解一下python 3!) (以下delete 我覺得這個入門寫得不太好耶... (以下delete 除了有錯誤, 這個舉例也很容易誤導人...) 若要像他那樣舉例, 我也會選別的值 a = 2 a += 3 # 這行執行完之後, a 變成5 a -= 1 # 這行執行完之後, a 變成4 a *= 7 # 這行執行完之後, a 變成28 a /= 4 # 這行執行完之後, a 變成7 a %= 5 # 這行執行完之後, a 變成2 a **= 6 # 這行執行完之後, a 變成64 舉例用的數字不重複的話 讀者可以少一些ambiguity -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.32.194

01/24 22:47, , 1F
看前面解釋還有點搞不懂,不過後面的舉例很順的一行
01/24 22:47, 1F

01/24 22:47, , 2F
接一行看下去,沒有任何障礙!
01/24 22:47, 2F

01/24 22:48, , 3F
謝謝你花這麼多時間打文章給新手解惑
01/24 22:48, 3F

01/25 01:38, , 4F
Python3 跟 python2 就是不一樣,作者沒有弄錯。
01/25 01:38, 4F

01/25 01:39, , 5F
python3 int/int 有機會跑出 float 的。
01/25 01:39, 5F

01/25 10:24, , 6F
原來如此!! 感謝釋疑, 我修改加註一下我弄錯的地方
01/25 10:24, 6F
※ 編輯: ACupCat 來自: 219.87.142.18 (01/25 10:31)

01/25 13:20, , 7F
Python 3 要用 // 才會保證使用 int
01/25 13:20, 7F
文章代碼(AID): #1H0HnAAa (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 5 篇):
文章代碼(AID): #1H0HnAAa (Python)