goto语句以及其替代方法;python的while循环制作目录?

最近在尝试用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

发布了23 篇原创文章 · 获赞 6 · 访问量 4695

猜你喜欢

转载自blog.csdn.net/qq_34211618/article/details/93203057
今日推荐