网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Python中不能在表达式中赋值是什么原因

小编给大家分享一下Python中不能在表达式中赋值是什么原因,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨方法吧!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的晋安网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

为什么Python不能在表达式中赋值?

许多习惯于C或Perl的人抱怨,他们想要使用C 的这个特性:

while (line = readline(f)) {
    // do something with line
}

但在Python中被强制写成这样:

while True:
    line = f.readline()
    if not line:
        break
    ...  # do something with line

不允许在 Python 表达式中赋值的原因是这些其他语言中常见的、很难发现的错误,是由这个结构引起的:

if (x = 0) {
    // error handling
}
else {
    // code that only works for nonzero x
}

错误是一个简单的错字:x = 0 ,将0赋给变量 x ,而比较 x == 0 肯定是可以预期的。

已经有许多替代方案提案。大多数是为了少打一些字的黑客方案,但使用任意或隐含的语法或关键词,并不符合语言变更提案的简单标准:它应该直观地向尚未被介绍到这一概念的人类读者提供正确的含义。

一个有趣的现象是,大多数有经验的Python程序员都认识到 while True 的习惯用法,也不太在意是否能在表达式构造中赋值; 只有新人表达了强烈的愿望希望将其添加到语言中。

有一种替代的拼写方式看起来很有吸引力,但通常不如"while True"解决方案可靠:

line = f.readline()
while line:
    ...  # do something with line...
    line = f.readline()

问题在于,如果你改变主意(例如你想把它改成 sys.stdin.readline() ),如何知道下一行。你必须记住改变程序中的两个地方 -- 第二次出现隐藏在循环的底部。

最好的方法是使用迭代器,这样能通过 for 语句来循环遍历对象。例如 file objects 支持迭代器协议,因此可以简单地写成:

for line in f:
    ...  # do something with line...

看完了这篇文章,相信你对Python中不能在表达式中赋值是什么原因有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站标题:Python中不能在表达式中赋值是什么原因
转载来于:http://bjjierui.cn/article/pcgesh.html

其他资讯