我写了这个简单的函数并得到了以下错误,为什么?
def hello_func():
print("hello how are you.")
hello_func()
IndentationError: expected an indented block
答案 0 :(得分:2)
因为你不关心缩进.. 缩进仅用于帮助使代码看起来很漂亮。但是在Python中,需要指出语句所属的代码块。
试试这个:
def hello_func():
print("hello how are you.")
hello_func()
按原样编写然后运行它。 有关缩进的详细信息,请阅读此doc和this
希望这对你有所帮助! :)
答案 1 :(得分:1)
在Python中,块只能通过缩进来识别。所有函数,循环和条件都必须有一个缩进块,并且缩进必须与块中的每个位置完全相同。
在你的情况下,你应该写:
def hello_func():
print("hello how are you.")
hello_func()
然后如果你的函数包含一个循环,例如:
def hello_func():
print("hello")
for i in range(10):
print(i)
hello_func()
答案 2 :(得分:0)
您需要观看缩进,因为您实际上并未将代码作为代码发布,因此很难看到是否存在缩进。 我完全按照你的方式复制了它并且工作正常:
def hello_func(): print("hello how are you.")
hello_func()
但如果你真的想在一个函数中使用多行,你应该在第二行使用4个空格:
def hello_func():
print("hello how are you.")
hello_func()
或者像这样,第二行有两个空格:
def hello_func():
print("hello how are you.")
hello_func()
答案 3 :(得分:0)
如果您了解其他语言,那么Python不需要像C和Java一样的方式,它根据行的缩进程度来解释代码子部分的开头和结尾 - 有多少标签位于代码中每行的开头。
因为它使用缩进而不是括号,所以Python不太灵活地将传统上多行的东西放在一行中。 (虽然我在google搜索关于Python的其他问题时已经看到了关于将函数放入一行的问题和答案 - 你可以尝试" Python一行函数"。)
所以,而不是写
def hello_func():print("你好,你好。")
hello_func()
你应该写
def hello_func():
打印("你好,你好。")
hello_func()
(或者,如果你也想尊重其他传统,请使用字符串" hello world&#34 ;.)