返回介绍

建议21:i+=1 不等于 ++i

发布于 2024-01-30 22:19:09 字数 518 浏览 0 评论 0 收藏 0

对于对Python语言的每个细节了解得不是那么清楚,而恰好又有其他语言背景的开发人员,很有可能写出如下类似的代码:

i = 0
mylist = [1,2,3,4,5,6]
while i < len(mylist):
   print mylist[i]
   ++i

运行这段代码会有什么问题?也许你会说:抛出语法错误。能说出这个答案的至少知道Python中是不支持++i操作的。但输出果真如此吗?非也,这段程序不会抛出任何语法错误,却会无限循环地输出1。原因是什么呢?因为Python解释器会将++i操作解释为+(+i),其中+表示正数符号。对于--i操作也是类似。

>>> +1
1
>>> ++1
1
>>> ++++1
1
>>> -2
-2
>>> --2 #
负负得正
2
>>> -----2
-2
>>>

因此你需要明白++i在Python中语法上是合法的,但并不是我们理解的通常意义上的自增操作。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文