为什么Python不打印我的代码?

为什么Python不打印我的代码?,python,Python,我道歉,如果这是愚蠢的,但已经找了大约30分钟,看不出我做错了什么 def biggestnumber( num1, num2 ): if num1 > num2: print num1, "is greater than", num2 else: print num2, "is greater than", num1 biggestnumber(45, 21) 它抱怨print需要一个缩进块,但它是缩进的 错误消息: File "mai

我道歉,如果这是愚蠢的,但已经找了大约30分钟,看不出我做错了什么

def biggestnumber( num1, num2 ):
    if num1 > num2:
        print num1, "is greater than", num2
    else:
        print num2, "is greater than", num1

biggestnumber(45, 21)
它抱怨print需要一个缩进块,但它是缩进的

错误消息:

File "main.py", line 3
    print num1, "is greater than", num2
        ^
IndentationError: expected an indented block

在biggestnumber()函数的第3行尝试以下操作:

print "%d is greater than %d"%(num1, num2)

制表符或空格对我来说没有什么区别,只是在print函数周围放了()就可以了

def biggestnumber(num1, num2):
        if num1 > num2:
            print (num1, "is greater than", num2)
        else:
            print (num2, "is greater than", num1)

biggestnumber(45, 21)
在线演示:

在我的ide上,这个错误通常意味着我有一个ascii未打印字符,可以通过重写行或用符号显示未打印字符来修复

您不需要在print语句周围添加()。代码的工作原理与上面的代码完全相同,并且已经过测试。问题是你混合了标签和空格。如果将()放在上面列出的print语句周围,它实际上会在控制台中打印它们

>>> (45, 'is greater than', 21)

def biggestnumber( num1, num2 ):
    if num1 > num2:
        print num1, "is greater than", num2
    else:
        print num2, "is greater than", num1

biggestnumber(45, 21)
您的代码打印如下:

>>> 45 is greater than 21

您是否尝试在打印内容周围添加括号?对我来说很好,请确保缩进中没有混合制表符和空格。@Thomas那么错误将是调用“打印”时缺少括号。,而不是关于缩进块的错误对我来说也很好,你能粘贴错误信息吗?这几乎可以肯定是制表符和空格混合的结果。您应该始终使用制表符或空格进行缩进,并且不要将它们混在一起。如果缺少
错误可能是
语法错误:调用“print”时缺少括号。
这不是OP遇到的问题。@Leb我知道这一点,但是如果OP要尝试此代码,我相当肯定它会工作。我知道您的代码可以工作,但您的解决方案是添加
()
这不是解决方案。您所做的是修复缩进,您可以添加缩进作为答案。如果您拿走您的实时演示并拿走您声称是解决方案的
()
,您将得到与我在第一条评论中提供的相同错误。而不是OP得到的错误。