在特定条件下中断循环或继续循环(Python)



我对Python有点陌生,所以如果这是一个非常简单的问题,我会提前道歉,但我已经试着解决这个问题一段时间了。

简单地说,我的代码是提示用户是否正确地写下了几个值,如果他们写了,我希望循环继续,这样这些值就可以保存到数据库中。如果没有,我希望代码循环回while循环的顶部,这样他们就可以重新输入值。

出于某种原因,当我输入"no"时,它无论如何都会通过循环,我该如何解决这个问题?下面是代码:

while True:
clear()
print("nPlease input the required data.n")
in_name = input('Name: ')
in_email = input('Email: ')
in_address = input('Address: ')

clear()
print("nDoes this look correct?n")

print("#--START--#n")
print("Name: " + in_name)
print("Email: " + in_email)
print("Address " + in_address)
print("n#---END---#n")
validate == input(">>> ")
if validate == "no":
continue
elif validate == "yes":
print("/nAttempting to copy to the database...")
cursor.execute("""
INSERT INTO contacts(name, email, address)
VALUES (?,?,?)
""", (in_name, in_email, in_address))
conn.commit ()
print ( 'Data entered successfully.n' )
break

(我应该注意,这个写程序是一个更大程序的一部分,循环嵌套在另一个充当主菜单的循环中,也许这会有所帮助。(

关键字continue将带您返回下一次迭代,而不会完成当前迭代,例如。

for i in range(5):
if i == 2:
continue
print(i * 5)

这意味着当i为2时,它不会打印(i=2*5(,而是会向上开始下一个循环,其中i=3。输出将为05.1520

如果您使用break,一旦它达到这个关键字,它就会完全停止并退出迭代。我想你正在寻找关键字通行证。

'while True:'将始终为True,这意味着循环将永远继续。我相信你需要打破这个循环才能停止。根据豪尔赫·阿尔瓦雷斯的回答,即使将"继续"改为"通过",也会让循环永远延续下去。

如果我理解正确,您将需要更改初始的"while True:"语句,以测试validate是否等于"no"或"yes"。

相关内容

  • 没有找到相关文章