初学者问题!即使else
语句为for
,True
条件也会运行,并且会打印出表明尚未找到密钥的文本消息。由于该语句为True
,它也为我提供了我想要的信息,所以问题是即使else
是for
,它也运行True
。
input_namn = input("Ange ett namn: ")
for key in rooms_with:
if input_namn in rooms_with[key]:
print (input_namn + "\ndelar rum med \n" + key)
else:
print ("\nPersonen du angav är inte en del av föreningen\n")
我做错了什么?
答案 0 :(得分:2)
您的缩进在else
子句中不正确。
由于它与for
循环处于同一级别,因此else
属于for
循环,而不是if
语句。
只需缩进 else
子句,其级别与if
相同,如下所示:
input_namn = input("Ange ett namn: ")
for key in rooms_with:
if input_namn in rooms_with[key]:
print (input_namn + "\ndelar rum med \n" + key)
else: # This is indented correctly
print ("\nPersonen du angav är inte en del av föreningen\n")
else
属于for
循环时会发生什么?循环语句可以包含
else
子句;当循环通过穷尽可迭代对象(使用for
终止或条件变为假(使用while
)终止时执行,而不是通过break
语句终止循环执行
基本上,在循环结束时执行else
块,除非循环由break
语句停止。
由于您的循环中没有break
语句,因此您的else
分支已执行。