Эффективность кода проверки фамилии - Python
Я написал while
оператор ниже, чтобы проверить поле фамилии и вывести логическое значение, чтобы увидеть, произошли ли какие-либо ошибки. Программа будет хранить все сообщения об ошибках в переменной errors
, Я добавил break
после каждой проверки ошибок, потому что я не хочу, чтобы программа продолжала проверять ошибки после их обнаружения.
Я не уверен, является ли этот код эффективным или нет - это while
Выписка нужна в этом случае?
Как вы думаете?
valcheck = True
# validate surname
while valcheck == True :
try :
surname = str(e2.get())
except :
errors += "\nSurname not valid - must be a string."
valcheck = False
break
# check if surname is not empty
if len(surname) <= 0 :
errors += "\nSurname cannot be blank."
valcheck = False
# check if surname is alphabetical
for i in str(surname) :
# also, allow for hyphens and apostrophes
if not(i.isalpha() or i == "'" or i == '-') :
errors += "\nSurname not valid - must be alphabetical."
valcheck = False
# if there are no errors, exit the statement
break
Заранее спасибо.
1 ответ
Это кажется лучше?
try :
surname = str(e2.get())
# check if surname is not empty
if len(surname) <= 0 :
errors += "\nSurname cannot be blank."
else :
# check if surname is alphabetical
for i in str(surname) :
# also, allow for hyphens and apostrophes
if not(i.isalpha() or i == "'" or i == '-') :
errors += "\nSurname not valid - must be alphabetical."
except :
errors += "\nSurname not valid."