146 lines
4.4 KiB
Python
146 lines
4.4 KiB
Python
# 1. 复杂身份验证系统
|
||
# 题目:
|
||
# 模拟一个简单的身份验证系统,用户需要输入 用户名 和 密码,并根据以下规则进行验证:
|
||
# 用户名必须是 admin 或 user
|
||
# 如果是 admin,密码必须是 "admin123"
|
||
# 如果是 user,密码必须是 "user456"
|
||
# 如果用户名或密码错误,提示 "用户名或密码错误"
|
||
# 如果输入的用户名不在系统内,提示 "用户不存在"
|
||
|
||
username = input("请输入用户名: ")
|
||
password = input("请输入密码: ")
|
||
|
||
if username == "admin":
|
||
if password == "admin123":
|
||
print("欢迎管理员登录!")
|
||
else:
|
||
print("用户名或密码错误")
|
||
elif username == "user":
|
||
if password == "user456":
|
||
print("欢迎用户登录!")
|
||
else:
|
||
print("用户名或密码错误")
|
||
else:
|
||
print("用户不存在")
|
||
|
||
|
||
|
||
|
||
|
||
# 2. ATM 取款机(加强版)
|
||
# 题目:
|
||
# 用户输入取款金额,必须满足以下条件:
|
||
# 取款金额必须是 100 的倍数
|
||
# 余额不足时,提示 "余额不足"
|
||
# 取款限额:单次取款金额不得超过 3000
|
||
# 每日限额:每日取款不得超过 10000
|
||
# 取款成功时,显示 "取款成功,余额为 X 元"
|
||
|
||
balance = 10000
|
||
daily_limit = 10000 # 每日可取款额度
|
||
|
||
amount = int(input("请输入取款金额(100 的倍数): "))
|
||
|
||
if amount % 100 != 0:
|
||
print("错误:取款金额必须是 100 的倍数")
|
||
elif amount > balance:
|
||
print("错误:余额不足")
|
||
elif amount > 3000:
|
||
print("错误:单次取款金额不得超过 3000 元")
|
||
elif amount > daily_limit:
|
||
print("错误:超过每日取款限额")
|
||
else:
|
||
balance -= amount
|
||
daily_limit -= amount
|
||
print(f"取款成功,余额为 {balance} 元,今日还可取 {daily_limit} 元")
|
||
|
||
# 3. 复杂成绩评级
|
||
# 题目:
|
||
# 输入成绩(0-100),根据以下规则进行评级:
|
||
# 95-100:A+
|
||
# 90-94:A
|
||
# 85-89:B+
|
||
# 80-84:B
|
||
# 70-79:C
|
||
# 60-69:D
|
||
# <60:F
|
||
# 额外要求:
|
||
# 如果成绩大于 100 或小于 0,提示 "输入错误"
|
||
# 如果成绩是 满分 100,提示 "满分!你太棒了!"
|
||
|
||
score = int(input("请输入成绩 (0-100): "))
|
||
|
||
if 95 <= score <= 100:
|
||
print("评级: A+")
|
||
if score == 100:
|
||
print("满分!你太棒了!")
|
||
elif 90 <= score < 95:
|
||
print("评级: A")
|
||
elif 85 <= score < 90:
|
||
print("评级: B+")
|
||
elif 80 <= score < 85:
|
||
print("评级: B")
|
||
elif 70 <= score < 80:
|
||
print("评级: C")
|
||
elif 60 <= score < 70:
|
||
print("评级: D")
|
||
elif 0 <= score < 60:
|
||
print("评级: F")
|
||
else:
|
||
print("输入错误,请输入 0-100 之间的成绩")
|
||
|
||
# 4. 复杂闰年判断
|
||
# 题目:
|
||
# 编写程序,输入年份 year,判断它是否是闰年:
|
||
# 能被 4 整除但不能被 100 整除,或
|
||
# 能被 400 整除
|
||
# 额外要求:
|
||
# 如果年份小于 0,提示 "输入错误"
|
||
# 让用户输入 起始年份和结束年份,打印出该范围内所有的闰年。
|
||
|
||
start_year = int(input("请输入起始年份: "))
|
||
end_year = int(input("请输入结束年份: "))
|
||
|
||
if start_year < 0 or end_year < 0:
|
||
print("输入错误,年份必须是正数")
|
||
elif start_year > end_year:
|
||
print("起始年份不能大于结束年份")
|
||
else:
|
||
print(f"{start_year} 到 {end_year} 之间的闰年有:")
|
||
for year in range(start_year, end_year + 1):
|
||
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
|
||
print(year, end=" ")
|
||
|
||
# 5. 进阶计算器
|
||
# 题目:
|
||
# 用户输入 两个数字 和 运算符(+、-、*、/、%),计算结果并显示:
|
||
# 除法 / 不能除以 0,否则提示 "错误:除数不能为 0"
|
||
# 允许输入 **(指数运算),比如 2 ** 3 = 8
|
||
# 增加异常处理,如果输入非数字,提示 "输入错误"
|
||
|
||
try:
|
||
num1 = float(input("请输入第一个数字: "))
|
||
num2 = float(input("请输入第二个数字: "))
|
||
operator = input("请输入运算符 (+, -, *, /, %, **): ")
|
||
|
||
if operator == "+":
|
||
print("结果:", num1 + num2)
|
||
elif operator == "-":
|
||
print("结果:", num1 - num2)
|
||
elif operator == "*":
|
||
print("结果:", num1 * num2)
|
||
elif operator == "/":
|
||
if num2 == 0:
|
||
print("错误:除数不能为 0")
|
||
else:
|
||
print("结果:", num1 / num2)
|
||
elif operator == "%":
|
||
print("结果:", num1 % num2)
|
||
elif operator == "**":
|
||
print("结果:", num1 ** num2)
|
||
else:
|
||
print("错误:无效的运算符")
|
||
except ValueError:
|
||
print("输入错误,请输入数字")
|
||
|