Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在';和'';或';,等_Python - Fatal编程技术网

Python 为什么在';和'';或';,等

Python 为什么在';和'';或';,等,python,Python,这在Python中不起作用有什么原因吗 if 1 != 1 or 2 != 2: print 'Something is wrong...' 只有在括号、方括号或大括号打开的情况下,Python中才会出现隐式行继续。在你的条件周围加上括号,它就会起作用。也许这可以防止语法歧义,但我觉得这种行为符合“简单优于复杂”的精神。换句话说,“除非你有充分的理由,否则表达式为什么要跨越多行?”。如果您有一个很好的理由,我们将提供一些语法工具来解决这个问题 [编辑] 我又读了一些书,其中有一些有

这在Python中不起作用有什么原因吗

if 1 != 1 or
   2 != 2:
   print 'Something is wrong...'

只有在括号、方括号或大括号打开的情况下,Python中才会出现隐式行继续。在你的条件周围加上括号,它就会起作用。

也许这可以防止语法歧义,但我觉得这种行为符合“简单优于复杂”的精神。换句话说,“除非你有充分的理由,否则表达式为什么要跨越多行?”。如果您有一个很好的理由,我们将提供一些语法工具来解决这个问题

[编辑] 我又读了一些书,其中有一些有趣的参考资料:

  • 语句的词汇定义是,逻辑行以。添加隐式延续的每种情况都成为例外情况
  • 对于Python3,建议删除斜杠(
    \
    )延续,但由于缺乏支持而被拒绝。
    • 邮件列表中的注释提醒我们,插入式继续出现是因为换行符不结束语句,而括号保持不平衡
    • 在同一线程中,Guido反对更改,因为以下错误会被隐藏:


我的最后一点是,斜杠(或开括号)提醒语句在下一行继续。根据缩进的不同,可能会将continuation误认为一个单独的语句(我认为其他语句也涉及到了这一点)。

因为“显式优于隐式”;未标记的行继续符会使代码的读取器感到不适(尤其是在具有语法意义上的空白的语言中),代码的读取频率要比编写频率高得多。

但是,为什么他们不选择对
以及
进行无括号的隐式行继续符呢?“我不认为这样做有什么含糊不清的地方吗?@kindall:我不想说,但你完全没有抓住我问题的重点。我问的是原因,而不是修复。也许他们只是觉得不值得实施。答案就在你的问题中
导入此
并读取单词
implicit
。这就是实际原因。对于“\”或大括号、括号或圆括号之类的匹配对,很明显这行没有结束。我认为这就是它的原因,其他延续类型没有太多问题的可能性。除了关于python“阻止”这种行为的轶事,我发现了这种情况的一些功能性原因;谢谢!:)
    x = y+    # Used to be y+1, the 1 got dropped
    f(x)