最近在尝试用python做一个数据库,通过pymysql调取数据库的数据然后处理展示
在搭建数据库的目录时,存在一个问题—如何在操作完或者错误点进某一部后返回目录选择的界面?
开始的时候想尝试用goto语句
先安装 很简单pip install goto-statement
然后通过小程序测试
from goto import with_goto
@with_goto
def ceshi(start,stop):
i=start
result=[]
label.begin
if i==stop:
goto.end
result.append(i)
i+=1
goto.begin
ceshi(1,4)
ceshi(1,1)
发现是可行的,然后美滋滋的就去应用了,结果发现报错说goto无法在不同block间调用,百度一下发现很多说不建议使用goto,于是还是返回去采用双重while来实现
大概的样子就是
while True:
选择跳转到哪一步
第一步
while True:
运行
if 重新运行:
continue
elif 想返回目录:
break
continue
第二步
与之前的类似
结果做出来的代码就是这样子的
def run(self):
while True:
chaxunleixing = int(input("请输入查询数字(1-电话查询;2-名单查询;3-订单查询;4-电话记录查询;5-数据库说明):"))
if chaxunleixing == 1:
while True:
num = input("请输入11位电话号码(返回目录输入0):")
if int(num)==0:
break
if len(num) != 11:
print("输入错误")
continue
print("输入成功")
a = input("是否绘图(是输入1,否输入0):")
message = query_data(int(num), int(a))
dm1=input("返回目录输入0,重新查询输入1:")
if int(dm1)==0:
break
else:
continue
continue
elif chaxunleixing == 2:
while True:
starttime = input("请输入开始时间(格式为'yyyy-mm-dd',输入0返回目录):")
if int(starttime)==0:
break
if len(starttime) != 10:
print("起始时间输入错误,请重新输入")
continue
endtime = input("请输入结束时间(格式为'yyyy-mm-dd'):")
if len(endtime) != 10:
print("结束时间输入错误,请重新输入")
continue
starttime = "'" + starttime + "'"
endtime = "'" + endtime + "'"
mingdan_message = self.mingdan_chaxun(starttime, endtime)
dm1 = input("返回目录输入0,重新查询输入1:")
if int(dm1) == 0:
break
else:
continue
#save(mingdan_message, 'shuju')
break
continue
由于本人基本上自学,所以代码难免写的有些冗余,以后再简化吧,就是这样o(@)o