鱼C论坛

 找回密码
 立即注册
查看: 2042|回复: 4

[已解决]程序解释

[复制链接]
发表于 2020-2-19 16:38:56 | 显示全部楼层 |阅读模式

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

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

x
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
length = len(passwd)

flag1 = 0
for each in passwd:
    if each in symbols:
        flag1 += 1
        break
print(flag1)
请问下大佬们,如果我输入的密码是2454478sdafjl@*&¥
在if each in symbols中不是只有我输入的密码全在symbols中才会加1吗,这里我输入的密码不全都是在symbols中,为什么最后的输出flag1仍然为1,不应该不变为0吗?
最佳答案
2020-2-19 16:56:06
本帖最后由 xiaofan1228 于 2020-2-19 16:58 编辑
for each in passwd:
    if each in symbols:#如果each是symbols里面的字符,则条件成立,
        flag1 += 1 #你输入的显然有,所以 flag1 = 0 + 1
        break #然后就break掉了,for 语句也不会继续执行了
        #所以flag1 = 1

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-19 16:46:30 | 显示全部楼层
for循环遇到字符串的时候是会加1,但是此时也会执行break语句,会跳出循环,所以输出的flag1是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 16:56:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xiaofan1228 于 2020-2-19 16:58 编辑
for each in passwd:
    if each in symbols:#如果each是symbols里面的字符,则条件成立,
        flag1 += 1 #你输入的显然有,所以 flag1 = 0 + 1
        break #然后就break掉了,for 语句也不会继续执行了
        #所以flag1 = 1

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

使用道具 举报

发表于 2020-2-19 17:00:03 | 显示全部楼层
你最后输入的几个符号在symbol里啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-19 17:35:51 | 显示全部楼层
噢,我以为each是每一个的意思,这里的each是不是passwd中的一部分,只要这一部分属于symbols中,他就输出1
万分感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 09:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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