关于PYTHON第014讲的密码题目
关于PYTHON第014讲的密码题目:symbol=r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
flag=0
text=('''
请按以下方式提升你的密码安全级别:
\t1.密码必须由数字、字母及特殊字符三种组合
\t2.密码只能由字母开头
\t3.密码长度不能低于16位''')
password = input('请输入需要检查的密码组合:')
for each in password:
if each in symbol:
flag=1
(这里为什么不能加break呢?加的话,会直接结束程序。)
if password.isalpha()==False or flag == 0:
print('你的密码安全级别为:低'+text)
else:
if len(password)<=8 or password.isalnum()==True:
print('你的密码安全级别为:低'+text)
elif 8<len(password)<16:
print('你的密码安全级别为:中'+text)
elif len(password)>16:
print('''你的密码安全级别为:高
请继续保持。''')
本帖最后由 jackz007 于 2019-10-30 14:13 编辑
楼主的代码严重不完整,试试这个吧:
#-*- coding:gbk -*-
numbers = '0123456789'
words = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
flag = 0
text = ('''请按以下方式提升你的密码安全级别:
\t1.密码必须由数字、字母及特殊字符三种组合
\t2.密码只能由字母开头
\t3.密码长度不能低于16位''')
password = input('请输入需要检查的密码组合:') . strip()
length = len(password)
if length:
if length < 8:
count_len = 1
elif length >= 8 and length < 16:
count_len = 2
elif length >= 16:
count_len = 3
for each in password:
if each in numbers:
flag += 1
break
for each in password:
if each in words:
flag += 1
break
for each in password:
if each in symbols:
flag += 1
break
if count_len > 2 and flag > 2 and password . isalpha():
print('你的密码安全级别为:高,请继续保持。')
elif count_len < 2 or flag < 2 or not password . isalpha():
print('你的密码安全级别为:低\n' + text)
else:
print('你的密码安全级别为:中\n' + text)
新鱼友
Rank: 1
积分
15
发消息
电梯直达
跳转到指定楼层
1#
发表于 2 小时前 | 只看该作者 回帖奖励
有一大锅奖品要送给小甲鱼的粉丝!!!
关于PYTHON第014讲的密码题目:
symbol=r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
flag=0
text=('''
请按以下方式提升你的密码安全级别:
\t1.密码必须由数字、字母及特殊字符三种组合
\t2.密码只能由字母开头
\t3.密码长度不能低于16位''')
password = input('请输入需要检查的密码组合:')
for each in password:
if each in symbol:
flag=1
(这里为什么不能加break呢?加的话,会直接结束程序。)
首先楼主需要明白,for each in password,是遍历整个password,里面的if each in symbol是判断遍历整个password的字符是否有一个在symbol(符号)里面。
说多了,其实break的缩进很重要,如果跟for一个缩进,那么就是for第一次的时候,就break了,如果加在if里面,那么就是if成立后break jackz007 发表于 2019-10-30 14:04
楼主的代码严重不完整,试试这个吧:
谢谢,这个确实更好 jackz007 发表于 2019-10-30 14:04
楼主的代码严重不完整,试试这个吧:
请问count_len是什么意思呀?之前好像没有定义
好好学不玩手机 发表于 2020-2-14 18:10
请问count_len是什么意思呀?之前好像没有定义
Python 通过赋值来给变量赋值,所以,在 Python 中,变量必须先赋值,然后才能访问,否则就会出现错误。
在本例中,要求将密码的字符长度作为判定安全性的因素之一,按照 length < 8,8 <= length < 16,length > 16 分为三个不同的安全等级,变量 count_len 就是用来保存这个判断结果的。 jackz007 发表于 2020-2-14 19:17
Python 通过赋值来给变量赋值,所以,在 Python 中,变量必须先赋值,然后才能访问,否则就会 ...
多谢!明白了
lovepipi 发表于 2019-10-30 15:30
新鱼友
Rank: 1
你好,请问这个for each in password是一个循环吗
突然想到如果想做成一个循环结构,就是如果密码等级为低,需要重输入密码的话,循环怎么加
页:
[1]