【问题标题】:Unexpected indente on line 5?第 5 行出现意外缩进?
【发布时间】:2016-02-09 00:38:09
【问题描述】:

我刚开始学习使用 Python 编程。我刚刚尝试使用 if elif 和 else 语句,但我的计算一直告诉我存在缩进错误。

我很困惑,因为这是一个非常简单的程序。好像当我在if语句之后放了两行以上的代码,就会出现问题。你能帮我解决这个问题吗?

非常感谢你

x = raw_input ('Give me a number ')

if x > 100: 
    print 'Big'
    print 'number'
    print 'hahaha'
elif x == 100:
    print 'yeah'
else: 
    print '...' 

【问题讨论】:

  • 能否请您提供整个错误消息?根据您的编辑器,您必须检查是否使用相同的缩进(不混合空格和制表符)
  • 你在混合制表符和空格吗?
  • 您还想将输入转换为 int,否则它将始终返回 > 100(因为字符串“大于”数字)。试试 x = int(raw_input('给我一个数字'))

标签: python if-statement indentation


【解决方案1】:

很可能,您的文本中有标签。

建议您将编辑器设置为不在 Python 代码中使用制表符,并可能在保存之前将其转换为空格。

即使没有这样的编辑器配置,您也可以通过搜索选项卡(您可以让它以某种方式显示)并替换为空格来修复您的代码。

【讨论】:

    【解决方案2】:

    您混合了制表符和空格。与您的文本编辑器不同,Python 2 将制表符视为记事本,因为它有足够的空间来达到下一个 8 空格缩进级别。 Python 3 将制表符和空格视为永远等同。

    在编辑器中打开“显示空白”以查看它,并使用-tt 标志运行 Python 以使其告诉您有关混合制表符和空格的信息。您的编辑器可能还有一个“将制表符转换为空格”工具来解决此问题。

    【讨论】:

      【解决方案3】:

      几个建议:

      这个错误听起来你没有使用whitespace properly 确保每一行都有一致的间距(不要混合制表符和空格)(就像你的问题一样)

      您也可能希望修改您的代码,如下所示:

      if int(x) > 100: #got to tell python to convert x (a string, str into int)
          print 'Big'
          print 'number'
          print 'hahaha'
      elif int(x) == 100:
          print 'yeah'
      else: 
          print('...')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-19
        • 2015-10-10
        • 2016-03-11
        相关资源
        最近更新 更多