Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得else语句的正确缩进?_Python_Python 3.x_Indentation - Fatal编程技术网

Python 如何获得else语句的正确缩进?

Python 如何获得else语句的正确缩进?,python,python-3.x,indentation,Python,Python 3.x,Indentation,使用Python 3.8.2 shell,我收到以下错误: >>> age = 15 >>> if age > 17: print ("You can vote") else: SyntaxError: invalid syntax 在阅读了if/else之后,我理解else语句必须与if语句具有相同的缩进,但是在print语句之后点击Enter时,else就落在print下面了 如果我在else之前删除,将其拉到左边

使用Python 3.8.2 shell,我收到以下错误:

>>> age = 15
>>> if age > 17:
        print ("You can vote")
        else:

SyntaxError: invalid syntax
在阅读了if/else之后,我理解else语句必须与if语句具有相同的缩进,但是在print语句之后点击Enter时,else就落在print下面了

如果我在else之前删除,将其拉到左边距,然后空格四次,则会出现以下错误:

>>> age = 15
>>> if age > 17:
    print ("You can vote")
    else:

SyntaxError: unindent does not match any outer indentation level

想法?谢谢。

在shell中,不能添加空行。否则,以下是您的操作方法:

>>> age = 15
>>> if age > 17:
...     print ("You can vote")
... else:
...     print ("You can't")
...
You can't
>>>提示不算作缩进。当您使用Python的普通命令行版本时,当您在if语句中键入每行代码时,这些行将填充。。。在前面,避免混淆缩进量。IDLE似乎不能做到这一点。我强烈建议不要使用它,一般来说,它不会做任何你已经拥有的简单工具没有做过的有用的事情,而且它确实增加了像这样微妙的陷阱

因为if有零缩进,else也应该有零缩进。此外,您应该一致地使用空格来缩进;如果打印使用制表符缩进,则不匹配任何数量的空格


在任何情况下,当在解释器提示下键入代码块时,都不允许使用空行-空行是表示代码块已完成的方式,Python语法要求您在else中添加一些内容。

老实说,如果您还不理解这一点,您就不知道Python。首先做一个教程。密切注意打印行第一次缩进的方式,以及第二次缩进的方式。而且,外壳实际上并不完全像那样。密切注意。注意当你点击回车键时,它是如何填充一个。。。?这是精心选择的,与>>>>的宽度相同,以避免混淆缩进的大小。事实上,请稍候-您使用的是IDLE吗?老实说,我建议你不要为此烦恼。要使用pythonshell,只需使用cmd/Terminal窗口并运行Python就更简单了;要编辑.py文件,请使用您首选的文本编辑器,而不是文字处理器。谢谢,Karl。我在用空闲的。我会尝试使用你推荐的其他方法,然后向你汇报。卡尔成功了。谢谢