这是一种在 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 == 2a == 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: 块。