【问题标题】:Else Syntax Error Python其他语法错误 Python
【发布时间】:2013-05-10 03:13:39
【问题描述】:
if len(user_hash) > 0:
  with open(log_file, "w") as log_f:
    for name in user_hash:
        log_f.write("Name:%s \n Email: %s" % (name, email)

    else len(user_hash) < 0:
       print "Nothing happened :("

我在 else 语句中不断收到语法错误,我不确定为什么它会不断产生此错误。我在同一个 def 中没有任何其他 else 语句,它仍然给出错误。我该怎么办?

【问题讨论】:

  • 代码需要缩进。
  • 请阅读formatting help 以了解如何在您的帖子中格式化代码。不要插入所有&lt;br&gt; 标签。

标签: python if-statement


【解决方案1】:

在 Python 中,else 语句不带任何条件:

if condition:
   do_1()
else:
   do_else()

在您的情况下,由于您想评估另一个条件,在if 之后,请使用elif

if condition1:
    do_1()
elif condition2:
    do_2()
... # you can have as many elifs as you want
else:
    do_else()

注意:阅读docs

【讨论】:

    【解决方案2】:

    您的 log_f.write 语句也缺少尾随的 ')',这可能会使解析器感到困惑......并且缩进看起来不正确。剪切粘贴问题?

    【讨论】:

    • 问题在else.. 接受的答案,parenthesis.. 奇怪但真实.. :)
    【解决方案3】:

    你不能像在 Python 中那样做else。你应该这样做(假设你的标签在现实生活中是正确的):

    elif len(user_hash) &lt; 0:

    如前所述,你错过了一个近亲。

    【讨论】:

    • 如所写,他的else 属于for,而for 语句不能带elif。不过,这看起来可能是由于复制不当导致的缩进错误。
    【解决方案4】:

    您不能使用else 语句提供条件。 else 表示“其他一切” --- 即除您在之前的 if 中指定的任何条件之外的一切。目前尚不清楚您要使用 else 完成什么,但也许您的意思是它是 if

    它也可以是elif(“else if”),但如果您的意思是它是前面if 子句的else,那么您需要取消缩进,使其处于相同的缩进级别作为ififelse/elif 必须在同一缩进级别对齐。

    for 语句有一个 else 子句之类的东西,但它看起来不是你想要的。)

    【讨论】:

      【解决方案5】:

      您可以在 Python 中使用 for 循环执行 else,但您需要平衡括号:

      log_f.write("Name:%s \n Email: %s" % (name, email)
      

      实际上应该是

      log_f.write("Name:%s \n Email: %s" % (name, email))
      

      (注意额外的最后括号。)

      【讨论】:

        【解决方案6】:

        if 和 else 必须在同一列对齐,这对我有用。

        【讨论】:

        • for/else 是一个完全有效的 python 结构。 else XX: 不是。
        【解决方案7】:

        log_f.write 行中的括号不会相互抵消,在末尾添加一个额外的右括号,如下所示:

        log_f.write("Name:%s \n Email: %s" % (name, email))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-17
          • 2017-07-12
          • 1970-01-01
          • 2021-09-21
          • 1970-01-01
          • 2011-10-13
          • 1970-01-01
          相关资源
          最近更新 更多