鱼C论坛

 找回密码
 立即注册
查看: 2168|回复: 9

关于字符串的问题

[复制链接]
发表于 2020-8-31 22:26:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-8-31 22:32:31 | 显示全部楼层
已经解决了 原来每个each都要比较和累加一次  那么a的值就很大了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 22:41:40 | 显示全部楼层
匆匆又夏天 发表于 2020-8-31 22:32
已经解决了 原来每个each都要比较和累加一次  那么a的值就很大了。

不太明白你这11是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-1 09:40:43 | 显示全部楼层
每一个for循环后面都要加一个break吧,不然a会加很多次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-9-1 20:17:32 | 显示全部楼层
y116114 发表于 2020-9-1 09:40
每一个for循环后面都要加一个break吧,不然a会加很多次

对的,我昨天发现了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-1 20:18:50 | 显示全部楼层
昨非 发表于 2020-8-31 22:41
不太明白你这11是啥意思

因为我一开始输入了密码之后没有输出,我就想测试一下是不是中间的语句的问题,如果打印了11,说明语法没有错是逻辑错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-1 20:22:12 | 显示全部楼层
匆匆又夏天 发表于 2020-9-1 20:18
因为我一开始输入了密码之后没有输出,我就想测试一下是不是中间的语句的问题,如果打印了11,说明语法没 ...

额,好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-1 21:29:13 | 显示全部楼层
这个时候就是断点调试的时候到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-3 09:52:36 From FishC Mobile | 显示全部楼层
你的这个for循环之后的判断是错误的,例如你的for
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-3 10:06:23 From FishC Mobile | 显示全部楼层
你的这个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,来进行判断字符串含有哪些类型(手机不方便举例子)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 17:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表