我有这个分配:
编写python代码以检查给定的单词是否是有效密码。如果
,密码被认为是有效的1)以字母
开头 2)必须包含数字
3)并且必须包含一个字符如果无效打印无效,则有效打印有效
上面的代码是否针对上述问题提供了正确的代码?这个Python代码是否适用于上述问题?
a=input()
s=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
x=['0','1','2','3','4','5','6','7','8','9']
y=['~','!','@','#','$','%','^','&','*','(',')','_','+',';','[']
m=''
n=''
while (c<=len(a)):
c=c+1
for i in range(0,27):
if(s[i]==a[0]):
for z in a:
for l in range(0,11):
if(x[i]==z):
for i in range(0,16):
if(y[i]==z):
m='valid'
else:
continue
n='invalid'
else:
continue
n='invalid'
else:
continue
n='invalid'
print(n)
print(m)
答案 0 :(得分:-1)
(上述问题的正确代码下面的代码是否会使这个PYTHON代码适用于上述问题?)
答案:不,您可以将您的代码与我的代码进行比较,您使用了不必要的循环和列表,而且您的代码显然不可读
我该如何解决?
见下面的代码:
a= str(raw_input("enter password "))
y=['~','!','@','#','$','%','^','&','*','(',')','_','+',';','[']
if (a[0].isalpha()) and sum(c.isdigit() for c in a) and sum(a.count(i) for i in y):
print " valid password"
else :
print "wrong!"
explaintion:
注意1:(a [0] .isalpha())等于您的字母表列表,我用它来设置更短更易读的代码
注2: sum(c中的c的c.isdigit())确定你的密码是否有数字你可以为你的数字指定一个范围,该范围应该存在于密码中: sum(a)中c的c.isdigit()&gt; 2表示如果密码中只有2位数,则密码为vald