鱼C论坛

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

求大佬

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

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

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

x
letter='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM'
symbol='!@#$%^&*()_+|}{:>?<*.,;\][=-'
first=0
second=0
third=0
temp=input('请输入密码:')
has_num=False
for apple in temp:
    if apple in num:
        has_num=True
if has_num:
    first+=1
has_letter=False
for apple in temp:
    if apple in letter:
if has_letter:
    first+=1
has_symbol=False
for apple in temp:
    if apple in symbol:
if has_symbol:
    first+=1
length=len(temp)
if length<=8:
    second=1
elif 16>=length>8:
    second=2
elif length>=16:
    second=3
if temp.istitle():
    third=1
while 1:
    if first==1 and second==1:
        print('低')
    elif first==2 and second==2:
        print('中')
    elif first==3 and second==3 and third==1:
        print('高')
    break

为什么报错啊,而且输完密码后不继续进行了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
你好!看起来你提供了两个字符串:letter 和 symbol。letter 包含字母字符,symbol 包含特殊字符。你可能想用它们来生成随机密码或进行字符串操作。这里是一个简单的Python示例,演示如何生成一个随机密码:


  1. import random

  2. letter = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM'
  3. symbol = '!@#$%^&*()_+|}{:>?'  # 注意:symbol 字符串可能不完整,但基于你提供的使用

  4. all_chars = letter + symbol
  5. password_length = 12  # 设置密码长度
  6. password = ''.join(random.choice(all_chars) for _ in range(password_length))
  7. print(password)
复制代码


这会输出一个包含字母和符号的随机字符串。如果你有更多问题,比如修复 symbol 字符串或其它用途,请提供更多细节!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 尉尉的可乐 于 2025-9-4 19:50 编辑

你的代码存在变量未定义、循环逻辑不完整、判定条件缺失三个核心问题,导致报错且无法正常运行。以下是具体问题、修复方案及完整代码:

一、直接报错的2个原因

        1.变量num未定义:判断“是否包含数字”时用了if apple in num,但未定义数字集合num,Python找不到该变量会报错。

        2.has_letter和has_symbol循环逻辑不完整:检查字母/符号的for循环内,未写has_letter = True和has_symbol = True,即使检测到目标字符,标志位也不会激活,后续判定永远为False。

二、“输完密码不继续”的原因
现有判定只覆盖“低(1+1)、中(2+2)、高(3+3+1)”三种情况,若密码是其他组合(如first=3+second=2),while循环内无匹配if,会空转不输出结果。

三、完整修复代码


  1. #补充定义数字集合num,修复未定义问题

  2. num = '0123456789'
  3. letter = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM'
  4. symbol = '!@#$%^&()_+|}{:>?<.,;][=-'

  5. first = 0  # 记录密码包含的字符类型数量(数字/字母/符号)
  6. second = 0  # 记录密码长度等级
  7. third = 0  # 记录是否为首字母大写(istitle()判定)
  8. temp = input('请输入密码:')

  9. #检查是否包含数字(修复num未定义,补充激活标志位)

  10. has_num = False
  11. for apple in temp:
  12. if apple in num:
  13. has_num = True
  14. if has_num:
  15. first += 1

  16. #检查是否包含字母(补充激活标志位)

  17. has_letter = False
  18. for apple in temp:
  19. if apple in letter:
  20. has_letter = True  # 关键:之前缺失这行
  21. if has_letter:
  22. first += 1

  23. #检查是否包含符号(补充激活标志位)

  24. has_symbol = False
  25. for apple in temp:
  26. if apple in symbol:
  27. has_symbol = True  # 关键:之前缺失这行
  28. if has_symbol:
  29. first += 1

  30. #判定密码长度等级(优化逻辑顺序,更直观)

  31. length = len(temp)
  32. if length <= 8:
  33. second = 1
  34. elif 8 < length <= 16:
  35. second = 2
  36. else:  # 等价于length >16
  37. second = 3

  38. #判定是否为首字母大写(istitle():所有单词首字母大写,其他小写)

  39. if temp.istitle():
  40. third = 1

  41. #修复判定条件缺失:覆盖所有可能情况,删除无用while循环

  42. if first == 3 and second == 3 and third == 1:
  43. print('高')
  44. elif (first == 2 and second == 2) or (first == 3 and second == 2):  # 补充中等级其他可能
  45. print('中')
  46. elif first >= 1 and second == 1:  # 补充低等级其他可能
  47. print('低')
  48. else:
  49. print('中')  # 兜底:未匹配情况默认“中”(可按需调整)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 10:46 From FishC Mobile | 显示全部楼层
num没有定义
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 10:10 | 显示全部楼层
  1. if apple in num:
复制代码
这一行代码中num未定义
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-8 15:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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