编写程序,输入一个字符串,输出该字符串作为密码时的安全强度,要求密码必须至少包含6个字符。运用运算符in判断字符类型,使用字典结构存放数据。

一般地,可以作为密码字符的主要有数字、小写字母、大写字母和几个标点符号。密码安全强度主要和字符串的复杂程度有关系,字符串中包含的字符种类越多,认为其安全强度越高。按照这个标准,可以把安全强度分为强密码、中高、中低、弱密码。其中强密码表示字符串中同时含有数字、小写字母、大写字母、标点符号(, . ! ; ? < >)这四类字符,而弱密码表示字符串中仅包含四类字符中的一种。
要求:编写程序,输入一个字符串,输出该字符串作为密码时的安全强度,要求密码必须至少包含6个字符。运用运算符in判断字符类型,使用字典结构存放数据。

你题目的解答代码如下:

def pas(s):
    text = {0:"空密码",1:"弱密码",2:"中低密码",3:"中高密码",4:"强密码"}
    upper=0
    lower=0
    digit=0
    other=0
    for c in s:
        if c.isupper():
            upper=1
        elif c.islower():
            lower=1
        elif c.isdigit():
            digit=1
        else:
            other=1
    return text[upper+lower+digit+other]
s = input("请输入密码字符:")
while len(s)<6:
    s = input("要求密码必须至少包含6个字符。重新输入密码字符:")
print(pas(s))

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

不确定使用字典结构的意思,可以直接调用内置的字符类型

import string

lib={'low':string.ascii_lowercase,'up':string.ascii_uppercase,'num':string.digits,'pun':',.!;?<>'}
low=up=num=pun=False
while True:
    pwd=input()
    if len(pwd)>=6:break
for i in pwd:
    if i in lib['low']:low=True
    if i in lib['up']:up=True
    if i in lib['num']:num=True
    if i in lib['pun']:pun=True
strong=low+up+num+pun
if strong>3:
    print('强密码')
elif strong>2:
    print('中高密码')
elif strong>1:
    print('中低密码')
else:
    print('弱密码')

满足题目要求:运用运算符in判断字符类型,使用字典结构存放数据。

import string

def level(pin):
    dic = {0:"无效",1:"弱",2:"中低",3:"中高",4:"强"}
    lib = {1:string.ascii_lowercase,2:string.ascii_uppercase,3:string.digits,4:',.!;?<>'}
    pinlevel = 0
    for v in lib.values():
        for p in pin:
            if p in v:
                pinlevel += 1
                break
    return dic[pinlevel * len(pin)>=6] + '密码'

print(level(input()))
import string
 
lib={'low':string.ascii_lowercase,'up':string.ascii_uppercase,'num':string.digits,'pun':',.!;?<>'} # 利用字典结构,构建分类的密码可用字符集
 
while True:
    pwd=input("请输入密码(长度不小于6个字符)")
    if len(pwd)>=6:
      break
    print("密码长度低于6个字符,请重新输入")
low=up=num=pun=0
for i  in  pwd: # 分别判断密码中是否有某类字符
  if  (i in lib['low'])  : 
    low=1
  if  (i in lib['up'])   :
    up=1
  if  (i in lib['num'])  : 
    num=1
  if  (i in lib['pun'])  : 
    pun=1
s=low+up+num+pun
rtStr=["弱","中低","中高","强"]
print("密码 `{}` 是 {} 级密码".format(pwd, rtStr[s-1]))