蜜哈哈 发表于 2023-12-4 19:58:26

校验密码是否合法:编写程序提示用户输入一个密码,要求长度在5-10位,密码里必须...

校验密码是否合法:编写程序提示用户输入一个密码,要求长度在5-10位,密码里必须包含大写字母、小写字母和数字。根据用户输入会返回相应提示信息:如果密码长度不合法,返回“The length of password must in range of 5-10”;如果密码内容不合法,返回"Password must include uppercase,lowercase and digit",否则返回“Password input success”。提示:可利用S.isdisjoint(T)方法,如果集合S与T没有相同元素,返回True。

是哪儿出错了啊

password=input()
numlower=0
numisupper=0
numdigit=0
if 5<=len(password)<=10:
   for p in password:
          if p.islower():
            numlower+=1
         elif p.isupper():
             numisupper+=1
         elif p.isdigit():
             numdigit+=1
    if numlower>0 and numdigit> and numisupper>0:
      print('Password input success')
    else:
          print('Password must include uppercase,lowercase and digit')
else:
      print('The length of password must in range of5-10')

FishC_GPT 发表于 2023-12-4 19:58:44

代码中有几个问题导致错误:

1. 在判断密码长度是否合法时,使用了 `if 5 and numisupper>0:` 的语句,这是错误的。应该使用条件判断 `if 5 <= len(password) <= 10:` 来判断密码长度是否在合法范围内。

2. 变量 `numisupper` 并未正确计算大写字母的数量,也没有计算小写字母和数字的数量。你可以使用循环遍历密码中的每个字符,并使用 `isupper()`、`islower()` 和 `isdigit()` 方法来判断字符的类型,并相应地增加统计变量的值。

3. 在密码内容不合法的情况下,应该返回提示信息而不是打印,可以使用 `return` 语句替代 `print` 语句。

下面是修改后的代码:

password = input()
num_lower = 0
num_upper = 0
num_digit = 0

for char in password:
    if char.isupper():
      num_upper += 1
    elif char.islower():
      num_lower += 1
    elif char.isdigit():
      num_digit += 1

if 5 <= len(password) <= 10:
    if num_lower > 0 and num_upper > 0 and num_digit > 0:
      print('Password input success')
    else:
      print('Password must include uppercase, lowercase, and digit')
else:
    print('The length of password must be in the range of 5-10')

希望以上解答对您有所帮助!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

蜜哈哈 发表于 2023-12-4 19:59:40

{:10_269:}{:10_269:}

FishC_GPT 发表于 2023-12-4 19:59:58

蜜哈哈 发表于 2023-12-04 19:59
{:10_269:}{:10_269:}

非常抱歉,前面的回答出现了一些错误。以下是修正后的代码:

password = input()
num_lower = 0
num_upper = 0
num_digit = 0

if len(password) >= 5 and len(password) <= 10:
    for char in password:
      if char.islower():
            num_lower += 1
      elif char.isupper():
            num_upper += 1
      elif char.isdigit():
            num_digit += 1
   
    if num_lower > 0 and num_upper > 0 and num_digit > 0:
      print('Password input success')
    else:
      print('Password must include uppercase, lowercase and digit')
else:
    print('The length of password must be within 5-10')

这段代码首先获取用户输入的密码,并初始化三个变量用于记录大写字母、小写字母和数字的数量。然后,通过循环遍历密码中的每个字符,并使用`islower()`、`isupper()`和`isdigit()`方法来判断字符的类型,分别对应增加对应的计数器。最后,根据计数器的结果判断密码是否符合要求并输出相应的提示信息。

希望这次能帮到您!如果还有其他问题,请随时提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

jackz007 发表于 2023-12-4 20:50:20

      代码的逻辑和语法基本上没有问题,重点检查代码的缩进,每级4个空格,必须严格遵守。
password = input()
numlower = 0
numisupper = 0
numdigit = 0
if 5 <= len(password) <= 10 :
    for p in password:
      if p . islower():
            numlower += 1
      elif p . isupper():
            numisupper += 1
      elif p . isdigit():
            numdigit += 1
    if numlower > 0 and numdigit > 0 and numisupper > 0 :
      print('Password input success')
    else:
      print('Password must include uppercase,lowercase and digit')
else:
    print('The length of password must in range of5-10')

蜜哈哈 发表于 2023-12-7 18:37:31

jackz007 发表于 2023-12-4 20:50
代码的逻辑和语法基本上没有问题,重点检查代码的缩进,每级4个空格,必须严格遵守。

谢谢你{:9_232:}

蜜哈哈 发表于 2023-12-7 18:38:50

FishC_GPT 发表于 2023-12-4 19:59
非常抱歉,前面的回答出现了一些错误。以下是修正后的代码:



谢谢你{:5_106:}

FishC_GPT 发表于 2023-12-7 18:39:03

蜜哈哈 发表于 2023-12-07 18:38
谢谢你{:5_106:}

不客气,我很高兴能帮到你!如果还有其他问题或者需要进一步的帮助,请随时提问。祝你编程愉快!{:5_137:}

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

sfqxx 发表于 2023-12-20 20:48:22

{:5_137:}
页: [1]
查看完整版本: 校验密码是否合法:编写程序提示用户输入一个密码,要求长度在5-10位,密码里必须...