这是一种在 if 循环中打破 while 循环的方法,就像我想要的那样,如果某个变量为真,则 while 循环结束
Is that a way to break a while loop in the if loop, like I want if the certain variable is true, than the while loop ends
我想要的是,如果您通过键入 1 或 2 选择要执行的特定操作,但它总是会
运行 'gen' 选项(数字 1),即使您键入 2。
while True:
a=int(input("pls choose what do you want to do.\n1=generates password \n2=acess saved passwords \n3=save passwords\nenter here:"))
if a == 1:
gen=True
break
if a==2:
see=True
break
if a==3:
save=True
break
else:
print('pls enter a valid respond\n----------------------------------------')
continue
if gen: #*<--it will always run this*
break
break
if see:
f = open("data.txt", "a")#*this did not run if typed '2'*
content=f.read()
f.close()
print(content)
从 if 语句中删除中断
while True:
a=int(input("pls choose what do you want to do.\n1=generates password \n2=acess saved passwords \n3=save passwords\nenter here:"))
if a == 1:
gen=True
break---> Your code break when you type 1
if a==2:
see=True
break ---> Your code break when you type 2
if a==3:
save=True
break
else:
print('pls enter a valid respond\n----------------------------------------')
continue
if gen: #*<--it will always run this*
break
break
if see:
f = open("data.txt", "a")#*this did not run if typed '2'*
content=f.read()
f.close()
print(content)`enter code here`
不完全清楚你在问什么,但至少有两件事你应该改变以完成我想象的你正在尝试做的事情。首先,您应该使用 elif
作为条件 a == 2
和 a == 3
:
if a == 1:
gen = True
break
elif a == 2:
see = True
break
elif a == 3:
save = True
else:
print(...)
continue
...
现在看来,只要输入不是 3(包括 1 或 2),您就会要求有效响应,但我想您只希望在输入不是 1 时打印此语句、2 或 3。
其次,f = open("data.txt"...)
没有 运行 的原因是这个代码块在 while 循环中。每当部分代码导致程序退出 while 循环(例如 break
语句)时,循环的其余部分都不会执行,包括 if see:
块。
我想要的是,如果您通过键入 1 或 2 选择要执行的特定操作,但它总是会 运行 'gen' 选项(数字 1),即使您键入 2。
while True:
a=int(input("pls choose what do you want to do.\n1=generates password \n2=acess saved passwords \n3=save passwords\nenter here:"))
if a == 1:
gen=True
break
if a==2:
see=True
break
if a==3:
save=True
break
else:
print('pls enter a valid respond\n----------------------------------------')
continue
if gen: #*<--it will always run this*
break
break
if see:
f = open("data.txt", "a")#*this did not run if typed '2'*
content=f.read()
f.close()
print(content)
从 if 语句中删除中断
while True:
a=int(input("pls choose what do you want to do.\n1=generates password \n2=acess saved passwords \n3=save passwords\nenter here:"))
if a == 1:
gen=True
break---> Your code break when you type 1
if a==2:
see=True
break ---> Your code break when you type 2
if a==3:
save=True
break
else:
print('pls enter a valid respond\n----------------------------------------')
continue
if gen: #*<--it will always run this*
break
break
if see:
f = open("data.txt", "a")#*this did not run if typed '2'*
content=f.read()
f.close()
print(content)`enter code here`
不完全清楚你在问什么,但至少有两件事你应该改变以完成我想象的你正在尝试做的事情。首先,您应该使用 elif
作为条件 a == 2
和 a == 3
:
if a == 1:
gen = True
break
elif a == 2:
see = True
break
elif a == 3:
save = True
else:
print(...)
continue
...
现在看来,只要输入不是 3(包括 1 或 2),您就会要求有效响应,但我想您只希望在输入不是 1 时打印此语句、2 或 3。
其次,f = open("data.txt"...)
没有 运行 的原因是这个代码块在 while 循环中。每当部分代码导致程序退出 while 循环(例如 break
语句)时,循环的其余部分都不会执行,包括 if see:
块。