以下是已与主程序分离的部分,只是测试代码段是否有效。 "是"输出用于测试查看错误发生位置所需的每个字符串方法。这似乎不起作用,我无法弄清楚为什么我已经将所有测试用于标准UK注册,检查从输入中出现的字符。
正如您所见,我是一个非常低级别(新的python)程序员,请在考虑提供解决方案时考虑。非常感谢
def main():
reg_number=input("What is your reg number?: ")
correct_length = False
first_two_char_capital = False
next_two_char_digits= False
next_char_space = False
last_three_char_capital= False
first_two_char_capital =reg_number[0:2]
print(first_two_char_capital)
next_two_char_digits=reg_number[2:4]
print (next_two_char_digits)
next_char_space=reg_number[4:5]
print(next_char_space)
last_three_char_capital=reg_number[5:8]
print (last_three_char_capital)
if len (reg_number) >= 8:
correct_length = True
print("yes1")
for ch in reg_number:
if first_two_char_capital.isupper():
first_two_char_capital = True
print("yes2")
if next_two_char_digits.isdigit():
next_two_char_digits = True
print("yes3")
if next_char_space.isspace():
next_char_space = True
print("yes4")
if last_three_char_capital.isupper():
last_three_char_capital = True
print("yes5")
if correct_length and first_two_char_capital and next_two_char_digits and next_char_space and last_three_char_capital:
is_valid = False
print(reg_number, "is a non-standard_registration")
else:
is_valid = True
print(reg_number, "is a standard registration")
return is_valid
main()
答案 0 :(得分:3)
在这里使用正则表达式要容易得多,例如:
import re
if re.match('[A-Z]{2}\d{2} [A-Z]{3}$', input('What is your regnumber:')):
print('yeah it matches...')