任务是:
编写一个Python程序,提示用户创建一个用户帐户,并检查所提供的用户名和密码是否合法。在
注意:密码应该以字母开头,并且只能由字母、数字和下划线符号“u”组成。长度应该在8到16之间。在
我遇到了“密码应该以字母开头,并且只包含字母、数字和下划线符号”的问题部分。(我知道这不是最优雅的代码)
username=input("Please enter a username:")
usepass=input("Please enter a password:")
#username
if len(username)<6 or len(username)>12:
print("Username is incorrect length. Your username must be between 6 and 12 characters.")
if username.isalnum() == False:
print("Username must only contain letters and numbers.")
username1=username[0]
if username1.isnumeric()== True :
print ("Your username must start with a letter")
#password
if len(usepass)<8 or len(usepass)>16:
print("Password is incorrect length. Your password must be between 8 and 16 characters.")
usepass1=usepass[0]
if usepass1.isalpha()==False:
print("Your password must start with a letter")
if usepass.isalnum()==False:
print("Your password must only contain numbers, letters and underscores.")
与其使用
isalnum
方法,不如尝试自己解决这个问题。你最缺的就是一个循环。例如,如果我想测试每个字母,我可以循环这些字母,并使用ord
方法验证每个字母是否在正确的范围内。在你应该构造你的方法来测试问题中描述的每一个独特的条件。如果它通过了所有条件,则可以在最后返回true。在
现在您可以考虑如何创建}方法之间共享支票。在
is_valid_password
方法。这种方法应该是相似的,但有一些不同的条件。奖金:考虑如何使用其他方法在is_valid_user
和{我通过创建一个新的变量来解决这个问题,该变量删除了下划线并使用.isalnum来比较该变量
相关问题 更多 >
编程相关推荐