让程序听你说话
name = input("请输入你的名字:")
print(f"你好,{name}!")
input() 做三件事:把括号里的提示打到屏幕上 → 停下来等你敲字符并回车 → 把你敲的内容交出来,装进左边的抽屉。
最经典的一个坑
age = input("你今年多大?")
print(age + 1)
报错:TypeError: can only concatenate str (not "int") to str
翻译成人话:"文字"和"数字"不能相加。
关键事实是:input() 拿回来的永远是字符串,哪怕你输入的看起来是数字。 你输入 18,它给你的是文字 "18",不是数字 18。
文字的 + 是"拼接",数字的 + 是"相加"。Python 看到左边是文字、右边是数字,不知道你要哪种,干脆报错——这其实是好事,总比默默算错强。
类型转换
用 int() 把文字变成整数:
age = int(input("你今年多大?"))
print(f"明年你就 {age + 1} 岁了")
常用的三个转换函数:
int("18") # 18 文字 → 整数
float("1.5") # 1.5 文字 → 小数
str(18) # "18" 数字 → 文字
注意 int("abc") 会报错 ValueError,因为 abc 没法解释成数字。int("1.5") 同样会报错——整数转换不接受小数点,要先 float("1.5") 再 int(...),结果是 1(直接砍掉小数部分,不是四舍五入)。
除法的两种
print(7 / 2) # 3.5 普通除法,结果一定是小数
print(7 // 2) # 3 整除,砍掉小数部分
print(7 % 2) # 1 取余数
% 取余非常有用。判断一个数是不是偶数,就看它除以 2 的余数是不是 0。
运算符速查
a + b # 加(数字相加 / 文字拼接)
a - b # 减
a * b # 乘("ab" * 3 得到 "ababab",也合法)
a / b # 除,得小数
a ** b # 幂,2 ** 10 得 1024
一个完整的小程序
# BMI 计算器
weight = float(input("体重(公斤):"))
height = float(input("身高(米):"))
bmi = weight / (height ** 2)
print(f"你的 BMI 是 {bmi:.1f}")
{bmi:.1f} 里的 :.1f 是格式说明:保留 1 位小数。不写的话会打出一长串小数,很难看。
10 秒自测
print("3" + "4") 输出什么?
答案是 34。两个都是文字,+ 做的是拼接不是加法。想得到 7,要写 int("3") + int("4")。