作者ACupCat (一杯猫)
看板Python
标题Re: [问题] 新手书疑问
时间Thu Jan 24 19:34:31 2013
※ 引述《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
1F:推 palapapapa:看前面解释还有点搞不懂,不过後面的举例很顺的一行 01/24 22:47
2F:→ palapapapa:接一行看下去,没有任何障碍! 01/24 22:47
3F:→ palapapapa:谢谢你花这麽多时间打文章给新手解惑 01/24 22:48
4F:推 timTan:Python3 跟 python2 就是不一样,作者没有弄错。 01/25 01:38
5F:→ timTan:python3 int/int 有机会跑出 float 的。 01/25 01:39
6F:→ ACupCat:原来如此!! 感谢释疑, 我修改加注一下我弄错的地方 01/25 10:24
※ 编辑: ACupCat 来自: 219.87.142.18 (01/25 10:31)
7F:→ uranusjr:Python 3 要用 // 才会保证使用 int 01/25 13:20