while True: # print('要下载的页码') m = input('请输入要下载的页码\n') #若改为 m = int(input('要下载的页码\n')) 则 try: #只能输入整型数,否则会报错 m = int(m) #输入的数据不是整型无法转化会报错,则进行except内容 # {if isinstance(m,int): # c = isinstance(m,) # print(c)} 无效 n = m+1 break except: #except Exception as e: jk = re.compile('^(?P<m>\d+)-(?P<n>\d+)$') pa = jk.finditer(m) ss = jk.match(m) # print(pa,ss) # print(pa,type(pa)) if not ss == None : for pag in pa: m = int(pag.group('m')) n = int(pag.group('n'))+1 break # print(m,type(m),n,type(n)) else: print('请重新输入')
分析:
while True: # print('要下载的页码') m = input('请输入要下载的页码\n') #若改为 m = int(input('要下载的页码\n')) 则 try: #只能输入整型数,否则会报错 m = int(m) #输入的数据不是整型无法转化会报错,则进行except内容 # {if isinstance(m,int): # c = isinstance(m,) # print(c)} 无效 n = m+1 break 判断是否输入的为整数,使得话跳出,不是的话,执行expect的内容 except: #except Exception as e: jk = re.compile('^(?P<m>\d+)-(?P<n>\d+)$') pa = jk.finditer(m) ss = jk.match(m) # print(pa,ss) # print(pa,type(pa)) if not ss == None : for pag in pa: m = int(pag.group('m')) n = int(pag.group('n'))+1 break # print(m,type(m),n,type(n)) else: print('请重新输入')
通过正则提取类似“12-45”的页码,如果提取不到则ss = jk.match(m)返回None,返回不是None就处理下页码,因为后面的程序要用range()所以这里n+1