在准备AS-Level计算机科学考试时,我遇到了一道预发布材料中的问题:
提示用户输入用户ID并检查ID的格式是否符合预定义的格式规则,并相应地输出。
格式(按顺序):
1.一个大写字母
2.两个小写字母
3.三个数字字符(数字)
例如:"Abc123"
我使用我选择的编程语言(Python)想出了一个解决方案,但我想知道是否有更优雅或更好的方法来解决这个问题。特别是第三个检查。
以下是我的代码:
提示用户输入用户ID并检查ID的格式是否符合预定义的格式规则,并相应地输出。
格式(按顺序):
1.一个大写字母
2.两个小写字母
3.三个数字字符(数字)
例如:"Abc123"
我使用我选择的编程语言(Python)想出了一个解决方案,但我想知道是否有更优雅或更好的方法来解决这个问题。特别是第三个检查。
以下是我的代码:
#Task 2.2
u_id = input("Input User ID: ") #DECLARE u_id : string
numbers = [str(num) for num in range(10)]
#Checking if final 3 characters of User ID (u_id) are digits
for i in list(u_id[3::]):
if i not in numbers:
digit_check = False #DECLARE digit_check : bool
break
else:
digit_check = True
#User ID format check
if (u_id[0:1].isupper() == True) and (u_id[1:3] == u_id[1:3].lower()) and (digit_check == True):
print ("Correct Format")
else:
print ("Wrong Format")
忽略DECLARATION注释。它们是考试要求。
谢谢
/([A-Z])([a-z]{3})([0-9]{3})/
(类似这样,具体语法已经过时)会使得操作更加简单和干净。 - JCOC611