簡體   English   中英

在特定條件下跳出循環或繼續循環(Python)

[英]Breaking out of a loop or continuing it under certain conditions (Python)

我對 Python 有點陌生,所以如果這是一個非常簡單的問題,我提前道歉,但我一直在努力解決這個問題一段時間。

簡單地說,我的代碼是提示用戶他們是否正確地寫下了幾個值,如果他們有,我希望循環繼續,以便將值保存到數據庫中。 如果他們沒有,我希望代碼循環回到 while 循環的頂部,以便他們可以重新輸入值。

出於某種原因,當我輸入“否”時,它無論如何都會通過循環,我該如何解決這個問題? 下面是代碼:

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),而是會 go 開始下一個 i=3 的循環。 output 將為 0 5 15 20

如果你使用break,一旦到達這個關鍵字,它就會完全停止並退出迭代。 我認為您正在尋找關鍵字通行證。

'while True:' 將始終為 True,這意味着循環將永遠開啟 go。 我相信您需要跳出循環才能停止。 根據 Jorge Alvarez 的回答,即使將“繼續”更改為“通過”也將永遠允許循環到 go。

如果我理解正確,您需要更改初始的“while True:”語句以測試 validate 是否等於“no”或“yes”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM