在准备AS级计算机科学考试时,我在预发布材料中遇到了一个问题:
提示用户输入用户ID,并检查ID的格式是否与预定义的格式规则对应,并相应地输出。
格式(按顺序):
示例:“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")
忽略声明注释。这是考试要求。
谢谢
如果允许您导入re:
表述说明:
^
表示字符串的开头。[A-Z]
是一个范围,包含所有大写字母(在英文字母表中)。[a-z]
是一个范围,包含所有小写字母。[0-9]
是一个包含所有数字的范围。{n}
指定将匹配n项(项是在花括号之前的任何项)。$
表示字符串的结尾。此外,您还可以看到更详细的解释,并针对这个正则表达式here测试任意字符串。
如果你想在没有正则表达式的情况下解决它(注意,在这种情况下,它们是正确的工具!),你可以这样做:
相关问题 更多 >
编程相关推荐