【问题标题】:Colon syntax error in if statementif 语句中的冒号语法错误
【发布时间】:2017-03-29 15:16:37
【问题描述】:

好的,所以我对整个编码领域还是很陌生,而且我一直在通过代码学院研究 Python。在网站上有一项活动,您可以在其中制作猪拉丁语翻译器。我能够做到这一点,但是当我尝试在 python shell 中重新创建它时,我在 if 语句中遇到了一些奇怪的错误。

pyg =“啊”

original = raw_input("请输入一个单词兄弟:")\
如果 len(original) > 0 并且 original.isalpha():\

    打印原件\


别的:
    打印“错误”

我在语句结尾的冒号上收到语法错误,所以我认为这是某种缩进错误。但是,当我在前一行和 if 语句之间放置一个空格时,它就可以正常工作了!谁能解释这是为什么?

【问题讨论】:

  • 另外:len(original) > 0 不是必需的,isalpha() 只会在字符串中至少有一个字符时返回 True。
  • 为什么会有这么多`\`和这么多空白空间?
  • 所以我在这里运行了您的代码tutorialspoint.com/execute_python_online.php,看起来一切正常。虽然,我从代码中删除了 \
  • 我在我的机器上运行了你的代码,它运行良好。我会检查没有将空格与制表符混合(当我粘贴格式错误的代码时)
  • @Chirvin 如果其中一个答案帮助您解决了您的问题,请在赞成/反对投票框下勾选复选标记接受它。请将“谢谢”和其他个人信息留在您的问题之外,因为它可以作为记录,以供其他人搜索,以防他们将来遇到您同样的问题

标签: python syntax-error


【解决方案1】:

\ 结尾的每一行是让您感到困惑的原因。 (请参阅"Explicit line joining" 的文档)

\ 是用于继续一行的字符,如果你想让“单行”跨越多行文本

python 解释器看到它并忽略下一个换行符,因此看到:

pyg =“啊”

original = raw_input("请输入一个单词 bro:")if len(original) > 0 and original.isalpha():
    打印原件

别的:
    打印“错误”

当你添加额外的空间时,它会起作用,因为 if 语句又在它自己的行上

【讨论】:

  • 谢谢你!究竟是什么问题!我最初是直接将代码输入到 shell 中,我需要在其中使用它们,当我切换到使用实际程序时,它最终只会导致语法错误。
  • @Chirvin 很高兴我能提供帮助。我很好奇什么 shell 需要反斜杠来终止每一行。我以前从未听说过
  • 这是一个旧版本的 shell,我现在更新了它。当我现在回想起来时,它甚至可能从来都没有必要。可能只是在某个地方读错了。
  • @Chirvin 如果您想阅读有关该主题的更多信息,我添加了一些文档。懂了就觉得比较简单,但是理解python语法的必知。
  • 太棒了!我在哪里可以找到这个?
猜你喜欢
  • 1970-01-01
  • 2011-09-22
  • 2015-09-08
  • 2018-08-30
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多