上一课我们学会了 print(),能打印文字、数字,还能算 1+1。但你有没有发现一个问题:

print("我叫张三")
print("我今年 20 岁")
print("我在学 Python")

这串代码跑起来没问题,可它有个大毛病——"张三""20""Python"这些信息是写死在代码里的。哪天你想把名字换成"李四",就得一行行改。而且程序从头到尾就只会"照着念",不会"记住"任何东西。

真正有用的程序,是能先把东西存起来、随时取出来用、还能改来改去的。这就是这一课的主角——变量


一、变量是什么?一句话说清

变量,就是给一个值起个名字,存进内存里,之后用名字就能找到它。

看代码:

name = "张三"
age = 20
print(name)
print(age)

运行结果:

张三
20

拆开看:

  • name = "张三":把 "张三" 这个值,装进一个叫 name 的盒子里
  • age = 20:把数字 20 装进 age 的盒子里
  • print(name):把 name 盒子里的东西拿出来打印

这里的 = 不是"等于",是"赋值"——读作"把右边的值放进左边"。记住这个方向:右边算出来 → 放进左边

以后想改名字,只改一处:

name = "李四"   # 只改这一行
print(name)     # 输出:李四

这就是变量的第一个好处:一处修改,处处生效


二、变量名的规矩(起名别乱来)

变量名不是随便起的,有规则,也有"潜规则":

必须遵守的硬规则:

  1. 只能由 字母、数字、下划线 _ 组成
  2. 不能以数字开头1name 是错的,name1 可以)
  3. 不能用 Python 的关键字(比如 printiffor 这些被占用的小写词)

强烈建议遵守的软规则(别人都这么写,你也这么写好看):

  • 有意义的英文名agea 好,total_pricex1
  • 多个单词用下划线连接:user_nametotal_price(这叫蛇形命名 snake_case)
  • 别用拼音,别用单个字母(除非就是循环计数)

对比一下:

# 差
a = 20
b = "张三"

# 好
age = 20
name = "张三"

第二份,别人一眼就懂你在存什么。


三、数据类型:盒子有不同种类

变量是"盒子",但盒子也分种类——装文字的盒子,和装数字的盒子,不是一个盒子。Python 里主要有这几种类型(先认熟前 4 个):

类型英文名是什么例子
字符串str一段文字,用引号包起来"张三" 'hello'
整数int整数,没有小数点20 -5 100
浮点数float带小数点的数3.14 -0.5
布尔值bool只有两种:真 / 假True False

注意几个坑:

1. 数字加不加引号,完全是两码事:

age = 20        # int,是数字,能算加减
age2 = "20"     # str,是文字"20",不能算加减
print(age + 1)   # 21,数字加法
print(age2 + "1")  # "201",文字拼接(把"20"和"1"连起来)

2. 布尔值的 True / False 首字母必须大写,小写的 true 会报错。

3. 浮点数就是小数,别奇怪为什么叫这个名,先记住 3.14 这种带点的数是 float。

想知道一个变量是什么类型,用 type()

print(type(20))       # <class 'int'>
print(type(3.14))     # <class 'float'>
print(type("你好"))    # <class 'str'>
print(type(True))     # <class 'bool'>

数字的算术运算:加减乘除、整除、取模、幂

数字类型之所以重要,是因为能。Python 最常用的算术运算符就这 7 个:

运算符含义例子结果
+2 + 35
-7 - 25
*3 * 412
/除(结果是小数)7 / 23.5
//整除(舍去小数部分)7 // 23
%取模(求余数)7 % 21
**幂(次方)2 ** 38
print(2 + 3)     # 5
print(7 - 2)     # 5
print(3 * 4)     # 12
print(7 / 2)     # 3.5,除出来是小数
print(7 // 2)    # 3,整除:把小数部分直接扔掉,不是四舍五入
print(7 % 2)     # 1,取模:7 除以 2 的余数
print(2 ** 3)    # 8,幂:2 的 3 次方

后面三个(// % **)是新手最容易懵的,重点记:

  • // 整除:7 // 2 = 3,直接扔掉小数,不是四舍五入
  • % 取模:7 % 2 = 1,求的是余数——判断奇偶就靠它(下一课会用到)。
  • ** 幂:2 ** 3 = 8,就是「2 的 3 次方」。

运算符优先级:谁先算?

一行里出现多个运算符时,Python 有固定的计算顺序,从高到低:

优先级运算符说明
最高()括号,先算括号里的
**
* / // %乘、除、整除、取模
+ -加、减
print(2 + 3 * 4)    # 14,不是 20!先算 3*4=12,再加 2
print((2 + 3) * 4)  # 20,括号强制先算 2+3
print(2 ** 3 ** 2)  # 512,幂"从右往左":先 3**2=9,再 2**9=512
铁律:拿不准就先加括号。括号一加,谁先谁后一目了然,别人也看得懂。
比较运算(> <)和逻辑运算(and or not)的优先级,留到第 3 课讲到它们时再补全。

四、让程序"说话":输入 input()

光会存,还不够。程序得能听你说话——用 input()

name = input("你叫什么名字?")
print("你好," + name)

运行后,程序会停住,等你打字,回车后继续:

你叫什么名字?小明
你好,小明

input() 的作用:弹出提示,等你输入,把你输入的字符串返回

注意一个大坑input() 拿到的永远是字符串,哪怕是数字:

age = input("你几岁了?")   # 你输入 20
print(type(age))           # <class 'str'>,是字符串不是数字!
print(age + 1)             # 报错!字符串不能和数字相加

想算数字,得先"转换类型":

age = input("你几岁了?")     # 输入 20,得到字符串 "20"
age = int(age)              # 转成整数 20
print(age + 1)              # 21

int() 是把字符串转成整数,float() 是转成小数,str() 是把别的类型转回字符串。这个转换是下一课的铺垫,现在先混个脸熟。


五、字符串拼接:把几段文字拼起来

print 里用 + 可以把字符串拼起来,但两边必须都是字符串

name = "小明"
age = 20

print("我叫" + name)          # 我叫小明,两个都是字符串,OK
print("我今年" + age + "岁")   # 报错!age 是数字,不能和字符串用 + 拼

要拼数字,先转成字符串:

print("我今年" + str(age) + "岁")   # 我今年20岁

还有一种更省事、也更推荐的写法叫 f-string(格式化字符串),在引号前加个 f,把变量用 {} 包起来:

print(f"我叫{name},我今年{age}岁")

{} 里的变量会被自动填进去,不用管类型、不用手动 str(),强烈推荐你用这个。


六、动手时间

打开你的 Python,敲一遍下面这题。先自己想,卡住了再看答案。

题目:做一个"自我介绍小助手"

程序先问你名字、年龄、喜欢的语言,然后打印一句完整的自我介绍:

你叫什么名字?小明
你今年几岁?20
你喜欢什么编程语言?Python
我叫小明,今年 20 岁,喜欢 Python。

提示:

  • input() 收三个值
  • 年龄是数字,要用来拼句子时记得转 str() 或者用 f-string


点我看答案(先自己写!)

name = input("你叫什么名字?")
age = input("你今年几岁?")
language = input("你喜欢什么编程语言?")

print(f"我叫{name},今年 {age} 岁,喜欢 {language}。")

这里 age 没做数学运算,只是拼进句子里,所以直接用 f-string 就行,不用 int()

再练一个:让程序帮你算年龄。输入出生年份,输出你 2026 年时的岁数:

birth_year = input("你哪年出生的?")
birth_year = int(birth_year)     # 转成数字才能算
age = 2026 - birth_year
print(f"到 2026 年你 {age} 岁")

试试把 int() 那行删掉,看会报什么错——报错不可怕,看懂报错才是进步。


七、小结

  1. 变量就是给值起名字存起来,= 把右边的值装进左边。
  2. 类型不能乱混:+ 只拼字符串,数字要先转;f-string 最好用。
  3. input() 拿到的永远是字符串,要做算术先 int() / float() 转一下。

下一课,我们让程序学会"做判断"——if 语句,程序从此不再只会一条路走到黑。

先别急着往后看,把这一课的动手题敲熟,变量和类型是你后面所有代码的地基。

标签: none

添加新评论