作业:
题目描述
模拟一个数字密码锁的工作过程,规则如下:
1. 初始密码为四位数:1234
2. 用户有3次输入密码的机会
3. 每次输入后:
- 若密码正确,提示"密码正确,锁已打开"并结束程序
- 若密码错误,提示"密码错误,剩余X次机会"
- 若输入的不是四位数,提示"请输入四位数密码",不消耗尝试次数
4. 额外功能:
- 连续输错3次后,提示"密码错误次数过多,锁已锁定"
- 锁定后询问是否重置(y/n),输入y则重新获得3次机会,输入n则退出程序
作业:题目要求
程序随机生成 1-20 的整数作为答案,玩家有 5 次猜测机会,规则如下:
用 for 循环控制 5 次猜测机会,每次输入猜测的数;
若猜对,打印 “恭喜!第 X 次猜对了” 并提前结束游戏;
若猜错,提示 “猜大了” 或 “猜小了”,并显示剩余次数;
5 次都猜错,打印 “游戏结束,正确答案是 XX”。
练习题 3:模拟 ATM 机系统(多功能 + 安全验证)
题目要求
模拟一个简易 ATM 机操作,功能包括:
登录验证:预设账号("123456")和密码("654321"),允许最多 3 次输入错误,超过则锁定(退出程序);
主菜单:登录后显示 “查询余额、存款、取款、转账、退出” 选项;
核心功能:
存款:输入金额(正整数),余额增加;
取款:输入金额(正整数),需判断是否≤余额,否则提示 “余额不足”;
转账:输入目标账号(非空)和金额(正整数),需判断金额≤余额,转账后余额减少;
查询余额:显示当前余额;
用 while 循环控制主菜单持续运行,输入 “退出” 则结束程序。
解题思路
登录阶段:用 while 循环控制登录次数(最多 3 次),for 循环可辅助计数,if 判断账号密码是否正确,错误次数达 3 次则退出;
初始化账户信息:余额(如 1000 元)、当前账号;
主菜单阶段:用 while True 循环持续显示选项,用户输入选项后,用 if/elif 分支执行对应功能;
各功能逻辑:
存款 / 取款 / 转账:用 if 判断输入金额是否为正整数(简化处理,假设输入合法),取款 / 转账需额外判断金额≤余额;
转账需验证目标账号非空(if target_account.strip() == "");
输入 “退出” 时,用 break 退出主循环,程序结束。
输入一个正整数 n,使用 while 循环统计 1 到 n 之间(含 n)所有 “既是偶数又能被 4 整除” 的数,并打印:
这些数的总和;
这些数的个数。
示例:输入 n=10,符合条件的数为 4、8,总和 12,个数 2。
输入一个正整数 k(2≤k≤5),使用 嵌套 for 循环 打印对称数字图案,规则:
共 k 行,第 i 行(从 1 开始)打印 i 个数字,数字从 1 递增到 i;
每行数字之间用空格分隔。
示例:输入 k=3,输出:
输入一个正整数 k(k 为奇数,3≤k≤7),使用 嵌套 for 循环 打印由星号(*)组成的菱形,菱形的对角线长度为 k。示例:输入 k=5,输出:
输入商品价格 price(整数,0 < price < 100)和支付金额 payment(整数,payment ≥ price),计算找零金额并使用 最少硬币数 组合(硬币面额:1 元、5 元、10 元、20 元)。示例:找零 36 元,最优组合为 20+10+5+1(共 4 枚)。