In-place operators 就是死记硬背吗?

in-place operators
x = x + 3
可以简写成
x += 3

这个就是和1+1=2一样死记硬背吗?

目前看懂了,但是怀疑还没懂:doge_bilibili:

是简便写法,类似 2 + 2 + 2 => 2 * 3

x += 3 就是自加的意思, x 加上3 再把结果放在 x 里, 这种简便写法

最常用的这种标记是自加1, 也就是 x = x + 1 => x += 1 => x ++ 我不清楚 python 支持哪些写法啊,你好好考试要自己试试!

不过它取名叫 in-place 是说原地加,还是一元操作符?

1 Like

in-place

文本比较不是该出 布尔 boolean 吗
image

目前找的最优解是这个,colab.research.google.com


本来想买个 karx 大神 推荐的 thebaselab inc. 开发者账号下的 "code app"。 以前觉得我不会编程,买这个也是吃灰; 刚刚吃早饭的时候想可以用来测试python教程里的句子,也不错; 然后我都准备购买了,我发现居然不是订阅制收费欸,活得下去嘛(以前买的 pythonista3 都凉透了),就去twitter搜了下,发现他们出新app啦 # :doge_bilibili: 结果还是买了,因为便宜,也因为网页版的google colab 有点不方便。

他什么时候推荐的!!我怎么没学到!

这个符号: +,加法,一般我们是用来加数字;

至于文字之间的加法,这就看作者怎么定义这个加了,是文字拼接?还是文字的编码相加?更进一步自加的话,那就更复杂了

我猜的话,我猜 答案是 ab:

  1. 即猜测 python: 用>比较时算它们的 ASCII 码的数字大小(即还原成二进制的原始数据的大小),用+=相加时算文字符号的二维拼接(即还原为人类常用的对文字的操作需要)。虽然同一个符号,但搭配对象不同,它的做法、意义不同,看碟下菜,这个叫运算符重载还是叫什么多态)。
  2. 比较是出 bool 值的,但是这个bool值被 if 消耗掉用来判断了
    1. 第一个比较,第一个if消耗掉,判为真,判断后接着的是字符拼接x自加拼接一个b,从a变成了b。
    2. 第二个比较,第二个if消耗掉,判为假,所以后面的代码是真的代码,而假了就不用进行了,所以不用管它是加c还是+10086 还是怎样、直接略去,我要是出题人,我就在这个代码块给你加上一堆复杂代码让你看个几十分钟。
    3. 而你能看到的字符是print() 函数打印出来的:这里打印了一个 x ,而这个x之前自加过b,也就是ab。

你搜搜关键词呢

你搜code app啊

1 Like

#273 :eyes:

1 Like

看看 #266

1 Like

in-place指的是会原地修改左值的运算符。
比如a+b, 这里左值是a(在+号左边),运算完a的值并不变化。 但,a+=b, 不一样,a+b的结果会再赋值给a,也就相当于a=a+b。

像这个运算符,你当然只需要死记硬背就可以了,但是in-place的概念要懂,因为一些函数在处理引用数据类型时,有时也是in-place修改,也就是它把你参数给修改了,有些则返回新的数据。

这是需要注意的。

1 Like