guagua888 发表于 2020-10-9 22:33:54

14讲课后作业密码安全性检查的while 1

请教2个问题
1,while 1是不是等于 while True ?

2,    if flag_len == 1 or flag_con == 1:
      print("您的密码强度为低")
这里是不是也要加break不然会一直循环打印 "您的密码强度为低")?
      


以下是我敲的代码 谢谢各位老师指点

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input("请输入您的密码:")
length = len(passwd)
while passwd.isspace() or length == 0:
    print('您输入的是空格或者是空密码,请重新输入')
    passwd = input("请输入您的密码:")
    length = len(passwd)
if length < 8:
    flag_len = 1
elif 8 < length <16:
    flag_len = 2
else:
    flag_len = 3
flag_con = 0
for each in symbols:
    if each in symbols:
      flag_con = flag_con + 1
      break
for each in chars:
    if each in chars:
      flag_con = flag_con + 1
      break
for each in nums:
    if each in nums:
      flag_con = flag_con + 1
      break
while 1:
    if flag_len == 1 or flag_con == 1:
      print("您的密码强度为低")
      
    elif flag_len == 3 and flag_con == 3and (passwd in chars):
      print("您的密码强度为高")
      break
    else:
      print("您的密码强度为中")
      print("请按照以下方法增强您的密码 \n 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合 \n 2. 密码只能由字母开头 \n 3. 密码长度不能低于16位")
      

heidern0612 发表于 2020-10-10 07:30:20

1、是的。只要不是while 0,你while 2020也是合理的,不过就是不太推荐这么写而已,一般都是while Ttue.

2、如果你的if分支是包含在while循环内部的,那就要加break。照你代码的情况来看是必须要break。

Python_春树 发表于 2020-12-9 11:18:28

我想请问一下你这里判断是否拥有数字或字母 的代码
for each in   是否应该是password   感觉不太对啊
页: [1]
查看完整版本: 14讲课后作业密码安全性检查的while 1