Lazy loaded image
Task 6 - Password Protectedb
Words 516Read Time 2 min
2025-3-31

题目分析

notion image
上一题的基础上,增加密码验证,即:
  • 某些文件需要密码才能访问
  • 用户有 3 次机会输入正确密码,否则返回到部门输入。

有效的文件、部门及其密码(题目提供的):

文件名
部门
是否受保护
密码
filea
dep1
❌ 无
-
fileb
dep1
✅ 是
pass1
filec
dep2
❌ 无
-
filed
dep2
✅ 是
pass2
filea
dep3
❌ 无
-
filec
dep3
❌ 无
-

解题逻辑

  1. 打印 "CHECK FILENAMES" 作为程序启动提示。
  1. 使用字典 valid_files 存储 各个部门与文件名的对应关系,并记录密码
      • 值为 None 或为表示该文件不需要密码
      • 存在密码的文件必须输入正确密码才能访问
  1. 使用 while True 让用户不断输入部门
      • 如果输入 "quit",打印 "GOODBYE" 并退出程序。
      • 如果输入的是无效部门,则重新提示输入。
  1. 进入文件名输入环节
      • 用户必须输入非空文件名,否则继续要求输入。
      • 检查该部门是否有该文件
        • 没有 → 输出 "文件名 - *is not* a valid filename for - 部门" 并重新输入部门。
        • → 进入密码验证环节:
          • 如果该文件需要密码
            • 用户有 3 次输入密码的机会,如果 输入正确,打印 "文件名 - is a valid filename for - 部门"
            • 如果 3 次机会都失败,直接返回到部门输入环节。
          • 如果该文件不需要密码,直接打印 "文件名 - is a valid filename for - 部门"

总结:

第六题比前面的题目好玩多了!还是这周学的数据类型,但是是数据结构变了一下。跟着解题逻辑走问题不大,秒了。