Python 正在验证输入值,但无法尝试&;除了其他输入
我试图验证每一个输入值,但在这里卡住了,如果用户输入了错误的值,那么我的函数将停止接受其他输入,并要求他纠正错误Python 正在验证输入值,但无法尝试&;除了其他输入,python,validation,try-catch,Python,Validation,Try Catch,我试图验证每一个输入值,但在这里卡住了,如果用户输入了错误的值,那么我的函数将停止接受其他输入,并要求他纠正错误 import re import os.path from csv import DictWriter service ={} class App: def __init__(self): pass def services(self): 问题就在这里 name=input("Enter Name: ") name_r = re.match('^[a-z
import re
import os.path
from csv import DictWriter
service ={}
class App:
def __init__(self):
pass
def services(self):
问题就在这里
name=input("Enter Name: ")
name_r = re.match('^[a-zA-Z]{3,20}$',name)
if name_r:
print("true")
else:
print("Wrong Value Entered. Please Enter Correct Name")
我想使用try&except块,但不知道在这种情况下如何使用。
如果我将已验证的值放入except block,那么其余的输入也会有自己的except block(我很困惑),这也是主要的问题,有没有什么简单的方法可以做到这一点,因为如果我像这样验证每一行,那么会花费很多时间
phone=input("Enter PTCL: ")
email=input("Enter Email: ")
mobile=input("Enter Mobile: ")
address=input("Enter Address: ")
service_type=input("Enter Problem Type: ")
date_time=input("Enter Date & Time: ")
msg=input("Enter Message: ")
下面的代码很好
#getting input values
service['name'] = name_r
service['ptcl'] = phone
service['mobile'] = mobile
service['date_time'] = date_time
service['service_type'] = service_type
service['address'] = address
service['msg'] = msg
service['email'] = email
file_exists = os.path.isfile(r"sevices.csv")
with open(r"sevices.csv",'a',newline='') as for_write:
writing_data = DictWriter(for_write,delimiter=',',fieldnames=["Name","Email","PTCL","Mobile","Service Type","Date & Time","Address","Message"])
if not file_exists:
writing_data.writeheader()
writing_data.writerow({
'Name': service['name'],
'Email':service['email'],
'PTCL':service['ptcl'],
'Mobile':service['mobile'],
'Service Type':service['service_type'],
'Date & Time':service['date_time'],
'Address':service['address'],
'Message':service['msg']
})
o1= App()
o1.services()
实现所需功能的最简单方法是创建一个while循环,该循环存在于接受的输入上
while True:
name=input("Enter Name: ")
name_r = re.match('^[a-zA-Z]{3,20}$',name)
if name_r:
break
else:
print("Wrong Value Entered. Please Enter Correct Name")
我有多个输入值,那么我如何传递所有值呢?我的主要问题是每个变量可能都有自己的正则表达式和输入文本等。。最简单的方法是为每个输入创建一个块。