python - Python 根据需要重新启动循环或返回上一个循环
问题描述
我是编码的初学者,所以请多多包涵
我正在尝试编写一个简单的程序,允许用户通过输入执行自定义命令,该程序有两部分,第一部分用户输入一个命令,该命令调用要使用的正确函数,第二部分定义值函数中的变量。有问题的代码(为此清理)是下面的代码。
#irrelevant function1 imp():
#irrelevant function2 con():
#irrelevant function3 dis():
def prg():
vv = ["v","verdadeiro","true","t","1"]
vf = ["f","falso","false","0"]
npta=""
nptb=""
op = 0
v = 0
b = 0
op = 0
#irrelevant code here
while True:
while op == 0:
a = input("insert" ).casefold()
if a == "imp":
op=1
elif a == "dis":
op=2
elif a == "con":
op=3
elif a == "exit":
return
else:
print("\n wrong input")
while True:
npta=str(input("insert" )).casefold()
if npta == "abort":
op = 0
b = 1
break
elif npta == "exit":
return
elif npta in vv or npta in vf:
b = 0
break
else:
print("\n wrong input")
while b != 1:
nptb=str(input("insert" )).casefold()
if nptb == "abort":
op = 0
break
elif nptb == "exit":
return
elif nptb in vv or nptb in vf:
break
else:
print("\n wrong input")
if op !=0:
v = imp(vv, npta, nptb) if op == 1 else con(vv, npta, nptb) if op == 2 else dis(vv, npta, nptb)
op=0
prg()
我觉得我正在做的事情虽然工作起来超级混乱,有没有更简单的方法来重新启动循环或对程序进行某种调用以进入前一个循环?假设我在我的程序的第二部分,下面的一个
while True:
npta=str(input("insert" )).casefold()
if npta == "abort":
op = 0
b = 1
break
elif npta == "exit":
return
elif npta in vv or npta in vf:
b = 0
break
else:
print("\n wrong inpuy")
while b != 1:
nptb=str(input("inser" )).casefold()
if nptb == "abort":
op = 0
break
elif nptb == "exit":
return
elif nptb in vv or nptb in vf:
break
else:
print("\n wrong inpuy")
if op !=0:
v = imp(vv, npta, nptb) if op == 1 else con(vv, npta, nptb) if op == 2 else dis(vv, npta, nptb)
op=0
如果我输入 abort,有没有办法返回到前一个时间?我知道这可能是一个愚蠢的问题,因为程序有效,我只是觉得我没有接近最明智的解决方案/算法。
提前致谢
解决方案
简单的解决方案是将两个循环放入另一个循环中,这样当最后一个循环完成时,由于外部循环,它将再次进入第一个循环。
推荐阅读
- mysql - 用于匹配字符串的 SQL 查询“where 子句”
- xml - 如何设置 XML 命名空间的嵌套使用
- java - 按对象的边界将集合排序成链
- php - 在 PHP 中生成大于 2,147,483,647 的整数
- oozie - Oozie 命令行过滤器
- kubernetes - 如何使用 kubernetes go 客户端管理现有的自定义对象?
- typescript - 从泛型类型获取函数返回类型
- lotusscript - Domino Designer 中的代码和注释模板:如何格式化模板变量?
- git - Git,恢复到早期提交
- rest - 如何从 DSpace rest api 获取所有社区