这是我项目软件中的一段代码:
def fun_1(self, i):
print("")
print("Welcome to Option 1: View Passwords")
while True:
print("")
which_o1 = input("1: Input a New Account details \n2: Exit \nPlease Input the option number: ")
if which_o1 == str(1):
with open(str(i)+'.txt', 'a+') as file:
while True:
print("")
web_n = input("Please Input Website name: ")
print("")
e_u = input("Please input email/username: ")
print("")
pass_w = input("Please input password: ")
while True:
print("")
sure = input("Website- " +web_n+"\nEmail/Username- "+e_u+"\nPassword- "+pass_w+"\nAre You sure about these details? Yes/No: ")
if (sure.lower()[0]) != 'y' and (sure.lower()[0]) != 'n':
print("")
print("Please input a valid response Yes/No!")
continue
elif (sure.lower()[0]) == 'y' and (sure.lower()[0]) != 'n':
list_log = [web_n, e_u, pass_w]
file.write(str(list_log) + '\n')
break
break
continue
elif (sure.lower()[0]) == 'n' and (sure.lower()[0]) != 'y':
break
continue
elif which_o1 == str(2):
return (i)
else:
print("")
print("Please Enter a Valid Response!")
continue
所以你可以看到它有3个True循环。在断开和循环循环时发生问题。如果你看到#34; pass_w"在中间的elif,它说elif (sure.lower()[0]) == 'y' and (sure.lower()[0]) != 'n':
,其中我有2个休息和1个继续,因为我想要做的是,当那个elif执行它时,只有中间3而真实,第2个真实并且继续意味着循环第一个在代码开始时为true,但它只是在代码中间保持循环第3个而不是破坏它。
有没有办法让它变得可能?
答案 0 :(得分:0)
首先,要了解在while循环内的break
语句之后不能执行任何行。因此,放置多个休息和继续将无效。您需要重新构建代码。就个人而言,我建议实现try except
语句,或者将一些代码放在函数内部,这样当你想要停止循环并将变量作为指示传递给函数的外部循环时,你可以return
被叫了。
另一种选择可能是使用中断并继续,使用while循环检查的变量或变量集来决定它们是否应该继续。因此,在if
和elif
内,您可以设置exitfirstloop = True
等,然后在while循环中检查while not exitfirstloop