所习如文章主标题所示,我又是一脸蒙蔽,于是得到了下边这个垃圾代码
n=0 b=n+1 print("开始计算1+2+3+......+100") ok=False while b==False int(input(b)) if b=100 print(ok) ok=True
绞尽脑汁后 【只觉得没程序天赋】
n=0 b=0+1 s=n+b while s == 100: print("ok")
百度研究别人的代码:
#变量 i 存储当前数字 初始值为 1
i
=
1
#变量 i 存储当前合计 初始值为 0
s
=
0
# while 循环求和
while
i <
=
100
:
s
+
=
i
i
+
=
1
#最后打印合计值
print
s
一目了然,唯一问题就是这个+=是啥意思,百度研究研究去,
来自脚本之家的解释:
,我们要谈的 Python 连接符就是 + 与 +=。要注意在 Python 中这两个符号有成含义,一个是运用在数学中的加法运算,一个是用在序列类型上的拼接功能。不过,作为加法运算符时,也遵循本文讨论的使用规则。因为讨论这两个符号,本质上是讨论 Python 的 immutable 和 mutable,即可变类型与不可变类型。对可变类型也说,我们可以在原地被变量进行修改,也就是说它的存储空间是可读可写的,例如 list;而对于不可变类型来说,它的存储空间则是只读的,无法对其进行修改,如果需要对不可变类型进行某些操作来得到新的结果,则需要重新开辟一份存储空间来存放这个新产生的结果。
对于可变类型:
- +: 代表连接操作,其结果会创建一个新的对象。
- +=: 代表追加操作,即 in-place 操作,在原地把另一个对象的内容追加到对象中。
对于不可变类型: + 与 += 都代表连接或求和操作,两者没有什么区别,其操作的结果都会产生一个新的对象。
带上人家原文地址:Python中的连接符(+、+=)示例详解_python_脚本之家 http://www.jb51.net/article/102974.htm
我个人理解:这个 += ,比如0+1,1+2,在一个容器空间数是留存不产生新的容器,+=这种就适合累积型的计算,s和i相互累计。
不纠结这个了,想不明白跟做就是,百度搜了5种方法表示python计算1+2+……+1000的5种方法_百度经验 https://jingyan.baidu.com/article/e75057f21c1dd0ebc91a8982.html,都看一遍