关于字符串的问题
num='0123456789'char='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
symbols = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
password=input("请输入你的密码:")
lenth=len(password)
if lenth<=8:
flag=1
elif lenth>8 and lenth<=16:
flag=2
else :
flag=3
a=0
for each in num:
for ps in password:
if ps==each:
a+=1
for each in char:
for ps in password:
if ps==each:
a+=1
for each in symbols:
for ps in password:
if ps==each:
a+=1
if flag==1 and a==1:
print("低级密码")
elif flag==2 and a==2:
print("中级密码")
elif flag==2 and a==3:
print("高级密码")
else:
print("11")
请问这段代码有什么问题啊,无论输入什么都出来的是11 已经解决了 原来每个each都要比较和累加一次那么a的值就很大了。 匆匆又夏天 发表于 2020-8-31 22:32
已经解决了 原来每个each都要比较和累加一次那么a的值就很大了。
不太明白你这11是啥意思 每一个for循环后面都要加一个break吧,不然a会加很多次{:10_279:} y116114 发表于 2020-9-1 09:40
每一个for循环后面都要加一个break吧,不然a会加很多次
对的,我昨天发现了 昨非 发表于 2020-8-31 22:41
不太明白你这11是啥意思
因为我一开始输入了密码之后没有输出,我就想测试一下是不是中间的语句的问题,如果打印了11,说明语法没有错是逻辑错了。 匆匆又夏天 发表于 2020-9-1 20:18
因为我一开始输入了密码之后没有输出,我就想测试一下是不是中间的语句的问题,如果打印了11,说明语法没 ...
额,好吧 这个时候就是断点调试的时候到了 你的这个for循环之后的判断是错误的,例如你的for 你的这个for循环之后的判断是错误的,
例如,这里是分别迭代password,num序列中的每一个元素,然后进行比较当前迭代的字符是否是相同的字符,
password=input()
num="1234567890"
for each in num:
for i in password:
if each == i:
print("each和i是相同的字符")
else:
print("不相同")
你可以配合字符串的内置方法,成员运算符,in,not in,来进行判断字符串含有哪些类型(手机不方便举例子)
页:
[1]