案例一:
python
# 1、计算输入的三个整数的平均数
# 错误一:
# x, y, z = int(input("请输入三个整数:"))
# ave = (x + y + z) / 3
# print(ave)
# 运行:
# 请输入三个整数:10
# 报错:TypeError: cannot unpack non-iterable int object
# 意思:不能把一个整数,拆分成 x、y、z 三个变量。
# 错误二:
# x, y, z = input("请输入三个整数:")
# x = int(x)
# y = int(y)
# z = int(z)
# ave = (x + y + z) / 3
# print(ave)
# 运行:
# 请输入三个整数:10
# 报错:ValueError: not enough values to unpack (expected 3, got 2)
# 10 → 会被拆成 '1' 和 '0'(只有 2 个字符)
# 但你要分给 x, y, z 3 个变量 → 不够分 → 报错!
# 方法一:
x = int(input("请输入第一个数:"))
y = int(input("请输入第二个数:"))
z = int(input("请输入第三个数:"))
ave = (x + y + z) / 3
print(ave) # 20.0
# 方法二:
# 下面这行是固定写法,记住它!
x,y,z = map(int,input("请输入三个整数,用空格隔开:").split())
ave = (x+y+z)/3
print(ave) # 60.0
# map(int, 列表)
# 作用:把里面所有字符串变成整数
# 请输入三个整数,用空格隔开:50 60 70 # 默认按空格、多个空格、Tab分割,非常方便
# int 是类型,意思是转成整数
# map(float, 列表) → 转小数
# map(bool, 列表) → 转布尔值
# map(str, 列表) → 全部转字符串
# 拓宽
x, y, z =map(bool, input("请输入三种是非情况:").split())
print(f"{x},{y},{z}")
"""
运行的情况是:
请输入三种是非情况:0 0 1
True,True,True
或者:
请输入三种是非情况:True False False
True,True,True
或者:
请输入三种是非情况:T T F
True,True,True
"""
# 分析:
# 因为 bool() 这个函数,只要不是空字符串,全都会变成 True!
# 输入 0 → 字符串 "0" → bool("0") → True
# 输入 False → 字符串 "False" → True
# 输入 F → 字符串 "F" → True
# 只有空字符串 "" 才会变成 False
# 改写一:
# 输入:0 0 1 → 输出:False,False,True
x, y, z = map(int, input("请输入三种是非情况(0=假,1=真):").split())
x, y, z = bool(x), bool(y), bool(z)
print(f"{x},{y},{z}")
"""
请输入三种是非情况(0=假,1=真):0 0 1
False,False,True
"""
# 改写二:(输入 True/False 文字)
def str_to_bool(s):
return s.lower() in ['true', '1', 't']
x, y, z = map(str_to_bool, input("请输入三种是非情况:").split())
print(f"{x},{y},{z}")
"""
请输入三种是非情况:T 0 False
True,False,False
"""
案例二:
python
# 2、要求输入梯形的上底、下底、高,然后计算梯形的面积
# 用float支持小数输入,更贴合实际计算
up = float(input("请输入梯形的上底:"))
down = float(input("请输入梯形的下底:"))
height = float(input("请输入梯形的高:"))
# 梯形面积公式:(上底+下底)×高÷2
print(f"梯形的面积area={(up+down)*height/2}") #我自己写的
area = (up + down) * height / 2
# 格式化输出,排版更清晰
print(f"梯形的面积为:{area:.2f}") # 外面的 f:开启「变量插入功能」;里面的 f:控制「数字保留几位小数」
案例三:
python
# 3.要求输入圆的半径,然后计算圆的周长和面积(周长:2πr,面积:πr²)
# 初步写的:
r = float(input("请输入圆的半径:"))
π = 3.14
perimeter = 2*π*r
area = π*r*r
print(f"圆的周长:{perimeter};圆的面积:{area}")
# 修正得更好:
# 输入半径,计算圆周长和面积
r = float(input("请输入圆的半径:"))
PI = 3.14 # π 改成 PI,Python 规范常量全大写
circumference = 2 * PI * r # perimeter → circumference(周长标准英文)
area = PI * r ** 2 # r*r 改成 r**2,Python 专用平方写法更专业
print(f"圆的周长:{circumference:.2f}") # 保留 2 位小数 :.2f 自动四舍五入,结果干净好看
print(f"圆的面积:{area:.2f}")
# 进阶版(用系统精准 π 值,更准确)
import math
r = float(input("请输入圆的半径:"))
c = 2 * math.pi * r
s = math.pi * r **2
print(f"周长={c:.2f},面积={s:.2f}")
# 一句话总结差别
# 第一种:π=3.14 + 不四舍五入
# 第二种:π=3.14 + 四舍五入保留 2 位
# 第三种:π= 高精度(3.1415926...)+ 四舍五入保留 2 位
# 推荐以后应该用:进阶版(第三种)
案例四:
python
# 4、身体质量指数BMI的计算(BMI = 体重(kg)/ 身高(m)²)
# BMI计算+体型判断
weight = float(input("请输入体重(kg):"))
height = float(input("请输入身高(m):"))
bmi = weight / height ** 2
print(f"BMI数值:{bmi:.2f}")
if bmi < 18.5:
print("体型偏瘦")
elif 18.5 <= bmi < 24:
print("体型标准")
elif 24 <= bmi < 28:
print("体型偏胖")
else:
print("体型肥胖")