【发布时间】:2019-05-24 01:28:05
【问题描述】:
我一直在为我参加的一门课程编写一些 Python 代码,但我遇到了无法结束的循环问题。我不知道它来自哪里。
我试图在每个“elif”上打断,但这不是我想要的,因为我不希望它在“else”之后立即结束。不过我不介意其他选项。
我也尝试过使用“return”,但也许我做错了什么,因为我无法让它工作
from lxml import etree
doc = etree.parse('Paises_XML.xml')
raiz=doc.getroot()
paises=doc.findall("pais")
print("DATOS SOBRE HABITANTES EN CADA PAIS")
print("""
1- España
2- Irán
3- Alemania
4- EEUU
5- Libano
6- Madagascar
7- Salir
""")
eleccion=input("Introduzca un número referente a un país de la lista observable: ")
while True:
if eleccion== "1":
print("")
print (paises[0].find("nombre").text)
print (paises[0].find("habitantes").text)
elif eleccion== "2":
print("")
print (paises[1].find("nombre").text)
print (paises[1].find("habitantes").text)
elif eleccion== "3":
print("")
print (paises[2].find("nombre").text)
print (paises[2].find("habitantes").text)
elif eleccion== "4":
print("")
print (paises[3].find("nombre").text)
print (paises[3].find("habitantes").text)
elif eleccion== "5":
print("")
print (paises[4].find("nombre").text)
print (paises[4].find("habitantes").text)
elif eleccion== "6":
print("")
print (paises[5].find("nombre").text)
print (paises[5].find("habitantes").text)
elif eleccion== "7":
print("")
print("¡Hasta pronto!")
break
else:
print ("Opción no válida, elija un número del 1 al 6 para mostrar la información del país correspondiente")
我只是希望它不会循环,我认为其他一切都很酷。 我还想实现一个选项,它可以显示我正在执行的每个查询,比如将它们全部收集在一起,但我认为这是创建循环的原因,所以我删除了它。
【问题讨论】:
-
您希望程序仅在用户输入
7时退出并继续重复,还是仅在用户输入1到7以外的内容时才重复?用非技术术语来说,你想要的行为是什么? -
eleccion=input("... ") 应该在 while 循环内
-
@Henry。你为什么删除你的答案?非常好。
-
它实际上很好,它使我的代码更短,我可以让它按我的预期工作,再次发布它,我会投票 :)) @HenryWoody
-
@victorsionado 以为我回答错了问题,但我会取消删除它