Python 为什么即使else与if处于同一缩进,它也会出现语法错误?
下面的程序计算字母为“a”的输入字符串的数量,并在输入字符串为“####”时结束程序。以下是预期的示例运行:Python 为什么即使else与if处于同一缩进,它也会出现语法错误?,python,Python,下面的程序计算字母为“a”的输入字符串的数量,并在输入字符串为“####”时结束程序。以下是预期的示例运行: while True: string = input("enter a string (enter #### to stop): ") count = 0 for letter in string: if letter == 'a': break count +=1 els
while True:
string = input("enter a string (enter #### to stop): ")
count = 0
for letter in string:
if letter == 'a':
break
count +=1
else:
pass
output:
File "<ipython-input-53-4d8a4c435ab9>", line 8
else:
^
Syntax Error: invalid syntax
为True时:
字符串=输入(“输入字符串(输入#####停止):”)
计数=0
对于字符串中的字母:
如果字母==“a”:
打破
计数+=1
其他:
通过
输出:
文件“”,第8行
其他:
^
语法错误:无效语法
问题是您在if之后添加了count+=1
,而不是else
更改此项:
string = input("enter a string (enter #### to stop): ")
count = 0
for letter in string:
if letter == 'a':
break
count +=1
else:
pass
致:
它起作用了 问题是您在if之后添加了
count+=1
,而不是else
更改此项:
string = input("enter a string (enter #### to stop): ")
count = 0
for letter in string:
if letter == 'a':
break
count +=1
else:
pass
致:
它起作用了 让我们来破解你的密码:
如果字母==“a”:
打破
计数+=1
其他:
通过
当找到字母“a”时,条件方法将被转义,并且不会发生任何事情
您在if语句的缩进中添加了count+=1
,因此解释器认为if语句已经结束,您正在那里编写其他代码。
解释器的代码如下所示:
if letter=='a':
break
if letter=='a':
count += 1
break
else:
pass
这是一段用于比较字母的代码
count += 1
从if语句转义后,代码流转到这里,计数增加1
else:
pass
为什么我得到一个else语句而没有if语句
所以你应该这样做:
if letter=='a':
break
if letter=='a':
count += 1
break
else:
pass
如果要计算字符串中字母“a”的数量,则计数不应有缩进。让我们打断您的代码:
如果字母==“a”:
打破
计数+=1
其他:
通过
当找到字母“a”时,条件方法将被转义,并且不会发生任何事情
您在if语句的缩进中添加了count+=1
,因此解释器认为if语句已经结束,您正在那里编写其他代码。
解释器的代码如下所示:
if letter=='a':
break
if letter=='a':
count += 1
break
else:
pass
这是一段用于比较字母的代码
count += 1
从if语句转义后,代码流转到这里,计数增加1
else:
pass
为什么我得到一个else语句而没有if语句
所以你应该这样做:
if letter=='a':
break
if letter=='a':
count += 1
break
else:
pass
如果要计算字符串中字母“a”的数量,则计数不应有缩进。您的
else
块不在if
块之后。它们之间有count+=1
。if
循环在count+=1
行被认为是中断的-将其移动到if
语句之前,它就会工作。当输入为a
时,为什么我们要break
?更正计数
缩进并移动中断
,并且否则:通过
完全没有用。把它拿开,这看起来很熟悉。。。这段代码是来自指南还是什么?我发誓我最近看到有人发布了完全相同的问题,比如相同的代码和所有东西。你的else
块没有跟随if
块。它们之间有count+=1
。if
循环在count+=1
行被认为是中断的-将其移动到if
语句之前,它就会工作。当输入为a
时,为什么我们要break
?更正计数
缩进并移动中断
,并且否则:通过
完全没有用。把它拿开,这看起来很熟悉。。。这段代码是来自指南还是什么?我发誓,我最近看到有人发布了完全相同的问题,像相同的代码和所有东西。而且break语句将打破循环,所以你永远不会计数超过1…而且break语句将打破循环,所以你永远不会计数超过1。。。