Re: [問題] 新手書疑問
※ 引述《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
01/25 01:38, 4F
→
01/25 01:39, , 5F
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
01/25 13:20, 7F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章