🎯 今日目标
-
理解什么是变量,学会创建和使用变量
-
掌握四种基本数据类型:整数、浮点数、字符串、布尔值
-
学会查看变量的类型
-
能够进行简单的数据类型转换
📦 一、什么是变量?
在Python中,变量就是一个名字,用来指向某个值。
举个例子:
python
name = "小明"
age = 18
这里:
-
name是一个变量,它指向字符串"小明" -
age是一个变量,它指向整数18
= 号的作用是赋值(把右边的值放到左边的变量里)。
💡 新手常见疑问:
=不是"等于",而是"把右边的东西放进左边的盒子里"。Python里的"等于"是==,明天会讲到。
🔢 二、四种基本数据类型
Python中常用的数据类型有很多,今天先学最基础的四种:
| 类型名称 | 英文名 | 例子 | 说明 |
|---|---|---|---|
| 整数 | int | 10, -3, 0, 999 |
没有小数点的数字 |
| 浮点数 | float | 3.14, -0.5, 2.0 |
带小数点的数字 |
| 字符串 | str | "你好", 'Python', "123" |
用引号包裹的文本 |
| 布尔值 | bool | True, False |
只有两个值:真/假 |
💡 注意:
True和False的首字母必须大写,不能写成true/false。
✍️ 三、在代码中使用变量
打开VS Code,新建一个 day2_variables.py 文件,输入以下代码并运行。
python
# 第2天:变量与数据类型示例
# 整数
age = 25
print("年龄:", age)
# 浮点数
price = 19.99
print("价格:", price)
# 字符串
name = "张三"
print("姓名:", name)
# 布尔值
is_student = True
print("是否学生:", is_student)
运行结果:
text
年龄: 25
价格: 19.99
姓名: 张三
是否学生: True
💡
print()里用逗号分隔多个内容,Python会自动加上空格。
🔍 四、查看变量的类型:type() 函数
有时候你(或Python)不确定一个变量是什么类型,可以用 type() 函数查看。
python
# 查看类型示例
a = 10
b = 3.14
c = "Hello"
d = True
print(type(a)) # 整数
print(type(b)) # 浮点数
print(type(c)) # 字符串
print(type(d)) # 布尔值
运行结果:
text
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
💡
<class 'int'>的意思是"这是一个整数类型的对象"。你暂时不需要深究"类"的概念,只看最后那个单词(int/float/str/bool)就知道类型了。
🔄 五、类型转换:把一种类型变成另一种
Python在某些情况下会自动转换类型,但更多时候需要你手动转换。常用的转换函数:
| 函数 | 作用 | 例子 |
|---|---|---|
int() |
转换为整数 | int("123") → 123 |
float() |
转换为浮点数 | float("3.14") → 3.14 |
str() |
转换为字符串 | str(100) → "100" |
bool() |
转换为布尔值 | bool(1) → True |
5.1 字符串和数字之间的转换
python
# 字符串转数字
num_str = "456"
num_int = int(num_str)
print(num_int + 10) # 输出 466
# 数字转字符串
score = 95
message = "我的分数是:" + str(score)
print(message)
运行结果:
text
466
我的分数是:95
⚠️ 注意:直接用
"我的分数是:" + score会报错,因为字符串和数字不能直接用+拼接。必须先str(score)转成字符串。
5.2 整数和浮点数之间的转换
python
x = 10
y = float(x) # 整数转浮点数 → 10.0
print(y)
z = 3.99
w = int(z) # 浮点数转整数 → 3(直接截断小数,不四舍五入)
print(w)
运行结果:
text
10.0
3
5.3 什么值会被转为 False?
bool() 转换时,以下值都会变成 False:
-
0(整数零) -
0.0(浮点数零) -
""(空字符串) -
None(空值,后面会学)
其他大多数值都是 True。
python
print(bool(0)) # False
print(bool(5)) # True
print(bool("")) # False
print(bool("abc")) # True
🧪 六、变量的重新赋值
变量可以随时改变指向的值。
python
score = 80
print(score) # 80
score = 95 # 重新赋值
print(score) # 95
score = "优秀" # 甚至可以改变类型
print(score) # 优秀
💡 Python是动态类型语言:同一个变量可以先存整数,再存字符串。其他语言(如Java、C)不允许这样。虽然灵活,但建议一个变量只存一种类型,否则容易搞混。
🎮 七、变量的命名规则
给变量起名字要遵循一些规则(否则Python会报错):
| 规则 | 正确示例 | 错误示例 |
|---|---|---|
| 只能包含字母、数字、下划线 | my_var, var2 |
my-var(不能有横杠) |
| 不能以数字开头 | var1, _private |
1var(数字开头) |
| 不能使用Python关键字 | name, score |
if, for, while(这些是关键字) |
| 区分大小写 | Name 和 name 是不同的变量 |
--- |
推荐习惯:
-
变量名用小写字母,单词间用下划线:
student_name(而不是studentName) -
名字要能看出含义:
age比a好,total_score比ts好
🐛 八、新手常见错误及解决
| 错误信息 | 可能原因 | 解决方法 |
|---|---|---|
NameError: name 'xxx' is not defined |
使用了一个没有定义过的变量 | 检查变量名是否拼写错误,或者先赋值再使用 |
TypeError: can only concatenate str to str |
用 + 拼接了字符串和数字 |
把数字用 str() 转成字符串 |
SyntaxError: invalid syntax |
变量名不符合规则(比如 1a = 5) |
检查变量名是否以数字开头或包含非法字符 |
True 被写成 true |
布尔值首字母必须大写 | 改为 True |
错误示例演示
你可以试着手动输入下面这段代码,看看会报什么错:
python
# 错误1:变量未定义
print(score) # score 还没有赋值过
# 错误2:字符串拼接数字
age = 18
print("我今年" + age + "岁")
错误1的输出:
text
NameError: name 'score' is not defined
错误2的输出:
text
TypeError: can only concatenate str (not "int") to str
修正方法:
python
# 修正1
score = 100
print(score)
# 修正2
age = 18
print("我今年" + str(age) + "岁")
📚 九、今日练习(一定要亲手做)
-
创建变量 :定义三个变量,分别存储你的姓名(字符串)、年龄(整数)、身高(浮点数),然后分别用
print输出。 -
类型转换 :接收一个数字字符串
"3.14",先转成浮点数,再转成整数,最后转成字符串,每一步都打印出值和类型。 -
找错误:下面这段代码有两处错误,尝试找出并修正:
python
1st_name = "李华" age = 15 message = "名字:" + 1st_name + ",年龄:" + age print(message) -
布尔值测试 :打印
bool(0),bool(1),bool(""),bool(" ")(注意空字符串和空格字符串的区别),观察结果。
💡 参考答案在博文最底部,但建议你先自己尝试。
🎯 今日总结
今天你学会了:
-
什么是变量,如何赋值和使用
-
四种基本数据类型:
int,float,str,bool -
用
type()查看变量类型 -
用
int(),float(),str(),bool()进行类型转换 -
变量的命名规则
-
常见错误及解决方法
明天预告 :学习 input() 输入函数,让程序可以和用户交互;以及更详细的 print() 用法。
📝 练习参考答案
第3题修正:
python
# 错误1:变量名不能以数字开头
first_name = "李华" # 改成了 first_name
# 错误2:age 是整数,不能直接拼接
age = 15
message = "名字:" + first_name + ",年龄:" + str(age)
print(message)
第4题结果:
text
False (bool(0))
True (bool(1))
False (bool(""))
True (bool(" ")) # 空格字符不是空的,所以是 True