我正在努力解决我最近安装的Python 3.5.2中的If Else语句。我正在使用IDLE来运行我的代码。
以下是(screenshot)下方的代码。
我在“Else”之后按“Enter”键时出现语法错误。我尝试过使用缩进,冒号等等,但是到目前为止我尝试过的所有组合都出错了。我在这里以及Quora上看到过类似的问题(对于python的早期版本),但这些解决方案都不适用于我。请帮忙! (我正在使用MacBook - 如果有任何改变的话)。
答案 0 :(得分:1)
不要缩进(制表符)'否则:'我认为原因是IDLE的“>>>”与终端
不同,提示未对齐答案 1 :(得分:1)
以#3:
为例Python将代码视为
if x==10:
print("X is 10")
else:
对此的缩进显然搞砸了。但它看起来很对你,因为提示符的>>>
将第一行推到几个字符上,使它看起来是正确的。但即使它在shell中看起来那样,python仍然看到if x==10:
在col 0
中,并且认为print("X is 10")
缩进了8个空格而else:
缩进了4个空格。
当你在编辑窗口中输入时,缩进实际上是不同的,就像这样
if x==10:
print("X is 10")
else:
实际上是正确的(忽略else
下没有任何内容的事实。
答案 2 :(得分:0)
使用Python 3.5.2但不空闲,这就是代码成功运行时的样子:
>>> x = 8
>>> if x==10:
... print('X is 10')
... else:
... print('Not')
...
Not
>>>
正确的格式为else:
冒号。这对应于您的第三次尝试,该错误看到抱怨缩进。我无法看到你输入的缩进,但在你弄清楚什么是闲置之前要改变它。
答案 3 :(得分:0)
第三个示例几乎是正确的,但您必须在else
分支上提供一些内容,可以是某些代码或pass
(或者只是完全删除else
)
修改强> 在解释问题是特定于IDLE交互式shell后,我自己尝试了以下代码:
这也是(因此缩进似乎对if分支本身起作用):
而且:
shell自动缩进很安静。不要说马车了。
在普通python
交互模式下更清楚。
>>>
添加了视觉缩进,但没有缩进。 if
正文由它的前一个加一个缩进,虽然它是两个缩进,但它是允许的并且不会造成麻烦。
else
语句需要与if
- 0缩进具有相同的缩进(而不是作为visalization提示的缩进)。所以你实际上需要删除自动添加的缩进,else
语句一直到开头。