24大数据 python练习 - 实践
1. 数字小魔术(基础语法+输入输出)
题目
编写程序实现“数字猜大小”入门版——让用户输入1-100之间的一个数字,程序先打印“收到你的数字啦!”,再计算这个数字的2倍+5的结果,最后输出“你的数字经过魔法变换后是:XXX”。
要求:
- 必须使用input()获取用户输入,并用int()转换类型。
- 变量名规范(比如用num存储用户输入的数字)。
参考答案
# 1. 获取用户输入并转换类型
num = int(input("请输入1-100之间的一个数字:"))
# 2. 打印接收提示
print("收到你的数字啦:",num)
# 3. 计算魔法变换结果
result = num * 2 + 5
# 4. 输出最终结果
print(f"你的数字经过魔法变换后是:{result}")
解析
- 输入处理:input()获取的是字符串,必须用int()转换为整数才能参与计算,否则会报“TypeError”错误。
- 变量命名:用num表示“用户输入的数字”,result表示“计算结果”。
- 格式化输出:用f-string(f"{}")将变量嵌入字符串。
- 易错点:忘记转换int()、变量名拼写错误、计算时运算符顺序错误(本题先乘后加,符合数学规则,无需括号)。
2. 身份验证小卫士(分支判断if-else)
题目
模拟手机解锁验证——程序预设一个密码(比如123456),让用户输入密码,若输入正确,打印“验证通过!欢迎使用~”;若输入错误,打印“密码错误!请重试~”。
要求:
- 预设密码用变量存储(比如password = 123456)。
- 用if-else判断密码是否匹配。
- 输入的密码要转换为整数类型再比较。
拓展:如果想让密码支持字符串(比如“abc123”),该怎么修改?
参考答案
# 1. 预设密码(整数类型)
password = 123456
# 2. 获取用户输入并转换为整数
user_input = int(input("请输入密码:"))
# 3. 判断密码是否正确
if user_input == password:
print("验证通过!欢迎使用~")
else:
print("密码错误!请重试~")
# 拓展:支持字符串密码的版本
# password = "abc123" # 预设字符串密码
# user_input = input("请输入密码:") # 无需转换int()
# if user_input == password:
# print("验证通过!欢迎使用~")
# else:
# print("密码错误!请重试~")
解析
- 分支判断:if-else是“二选一”逻辑,满足条件(密码相等)执行if下的代码,否则执行else下的代码。
- 类型匹配:预设密码是整数时,用户输入必须也转为整数,否则“字符串 vs 整数”比较会返回False(比如输入"123456"和123456不相等)。
- 拓展说明:字符串密码无需转换类型,直接用input()获取后比较即可,这是实际应用中更常见的场景(比如账号密码通常是字符串)。
- 易错点:忘记转换int()导致密码永远不匹配、if语句后漏写冒号(:)、缩进错误(if/else下的代码必须用tab键缩进)。
3. 成绩等级评定(多分支if-elif-else)
题目
老师需要快速评定成绩等级,编写程序让用户输入学生的分数(0-100),程序根据分数输出对应等级:
- 90-100分:A等(优秀)
- 80-89分:B等(良好)
- 60-79分:C等(及格)
- 0-59分:D等(不及格)
- 输入超出0-100:提示“输入错误!分数请在0-100之间~”
要求:
- 用if-elif-else实现多条件判断,顺序不能乱。
- 先判断输入是否合法,再评定等级。
- 输出时要明确显示“XX分对应的等级是:X等(XXX)”。
参考答案
# 1. 获取用户输入并转换为整数
score = int(input("请输入学生的分数(0-100):"))
# 2. 先判断输入是否合法
if score < 0 or score > 100:
print("输入错误!分数请在0-100之间~")
# 3. 按分数区间评定等级
elif score >= 90:
print(f"{score}分对应的等级是:A等(优秀)")
elif score >= 80:
print(f"{score}分对应的等级是:B等(良好)")
elif score >= 60:
print(f"{score}分对应的等级是:C等(及格)")
else:
print(f"{score}分对应的等级是:D等(不及格)")
解析
- 多分支逻辑:if-elif-else按顺序判断,满足一个条件后就不再执行后续判断,所以必须从“高分到低分”排序(如果先判断60分以上,90分的会直接被判为C等)。
- 合法性判断:先排除超出0-100的无效输入,再处理有效分数,符合实际应用逻辑(避免无效分数进入等级判断)。
- 条件简化:score >=80 已经隐含了“score <90”(因为前面的elif已经判断过>=90),无需写“80<=score<=89”,代码更简洁。
- 易错点:判断顺序颠倒导致等级错误、漏写“score <0 or score >100”的合法性判断、输出时忘记拼接分数变量。
4. 猜数字游戏(while+判断+循环控制)
题目
经典猜数字游戏——程序随机生成1-100之间的一个秘密数字,让用户反复猜,直到猜对为止。每次猜测后给出提示:
- 猜大了:打印“猜大啦!再试试小一点的~”
- 猜小了:打印“猜小啦!再试试大一点的~”
- 猜对了:打印“恭喜你猜对啦!秘密数字就是XXX~”,然后结束循环。
要求:
- 用random模块生成秘密数字(先写import random,再用secret = random.randint(1,100))。
- 用while True创建无限循环,猜对后用break退出。
- 每次猜测都要获取用户输入,并转换为整数。
参考答案
# 1. 导入random模块,用于生成随机数
import random
# 2. 生成1-100之间的秘密数字
secret = random.randint(1, 100)
# 3. 创建无限循环(直到猜对用break退出)
while True:
# 4. 获取用户猜测的数字并转换为整数
guess = int(input("请猜一个1-100之间的数字:"))
# 5. 判断猜测结果
if guess > secret:
print("猜大啦!再试试小一点的~")
elif guess < secret:
print("猜小啦!再试试大一点的~")
else:
# 猜对了,打印提示并退出循环
print(f"恭喜你猜对啦!秘密数字就是{secret}~")
break
解析
- 随机数生成:必须先导入random模块,randint(a,b)函数会生成a到b之间的整数(包含a和b)。
- 无限循环:while True会一直执行循环体,直到遇到break语句才退出,适合“反复操作直到满足条件”的场景。
- 循环控制:猜对时用break退出循环,避免一直猜下去。
- 易错点:忘记导入random模块导致报错、用户输入非数字时会报“ValueError”、判断条件写反(比如把guess>secret写成guess<secret)。
5. 积分兑换机(while+累加+多条件)
题目
模拟超市积分兑换——用户初始积分为0,程序循环显示菜单:
“1. 消费赚积分(每次+10分) 2. 兑换礼品(50分兑换1份) 3. 退出”
用户输入选项后执行对应操作:
- 选1:积分+10,打印“消费成功!当前积分:XXX”
- 选2:若积分≥50,积分-50,打印“兑换成功!剩余积分:XXX”;若积分不足,打印“积分不够呀~再攒攒!”
- 选3:打印“感谢使用,再见~”,结束程序
- 输入其他数字:打印“输入错误!请选1-3~”
要求:
- 用while True循环,选3时break退出。
- 用变量score存储积分,初始值为0。
- 每个选项都要做输入判断,确保逻辑通顺。
参考答案
# 1. 初始化积分,初始值为0
score = 0
# 2. 无限循环,显示菜单并处理操作
while True:
# 3. 显示菜单
print("\n===== 超市积分兑换机 =====")
print("1. 消费赚积分(每次+10分)")
print("2. 兑换礼品(50分兑换1份)")
print("3. 退出")
# 4. 获取用户选择的选项(转换为整数)
choice = int(input("请输入选项(1-3):"))
# 5. 根据选项执行对应操作
if choice == 1:
score += 10 # 积分+10
print(f"消费成功!当前积分:{score}")
elif choice == 2:
# 判断积分是否足够兑换
if score >= 50:
score -= 50 # 积分-50
print(f"兑换成功!剩余积分:{score}")
else:
print(f"积分不够呀~当前只有{score}分,再攒攒!")
elif choice == 3:
print("感谢使用,再见~")
break # 退出循环,结束程序
else:
print("输入错误!请选1-3~")
解析
- 累加与累减:score +=10 等价于 score = score +10(消费赚积分),score -=50 等价于 score = score -50(兑换扣积分),是循环中常见的“数值更新”操作。
- 嵌套判断:选项2中需要先判断积分是否足够,再执行兑换操作,属于“if嵌套if”的逻辑,适合多条件场景。
- 菜单交互:每次循环都显示菜单,用户可以反复操作,符合“兑换机”的实际使用场景。
- 易错点:积分初始值不是0、兑换时忘记判断积分是否足够、选3时忘记写break导致无法退出、输入非数字时会报“ValueError”(可提示用户输入1-3的数字)。

浙公网安备 33010602011771号