第2天:变量与数据类型 —— 让程序记住信息

🎯 今日目标

  • 理解什么是变量,学会创建和使用变量

  • 掌握四种基本数据类型:整数、浮点数、字符串、布尔值

  • 学会查看变量的类型

  • 能够进行简单的数据类型转换


📦 一、什么是变量?

在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 只有两个值:真/假

💡 注意:TrueFalse 的首字母必须大写,不能写成 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(这些是关键字)
区分大小写 Namename 是不同的变量 ---

推荐习惯

  • 变量名用小写字母,单词间用下划线:student_name(而不是 studentName

  • 名字要能看出含义:agea 好,total_scorets


🐛 八、新手常见错误及解决

错误信息 可能原因 解决方法
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) + "岁")

📚 九、今日练习(一定要亲手做)

  1. 创建变量 :定义三个变量,分别存储你的姓名(字符串)、年龄(整数)、身高(浮点数),然后分别用 print 输出。

  2. 类型转换 :接收一个数字字符串 "3.14",先转成浮点数,再转成整数,最后转成字符串,每一步都打印出值和类型。

  3. 找错误:下面这段代码有两处错误,尝试找出并修正:

    python

    复制代码
    1st_name = "李华"
    age = 15
    message = "名字:" + 1st_name + ",年龄:" + age
    print(message)
  4. 布尔值测试 :打印 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
相关推荐
Dust-Chasing2 小时前
Claude Code源码剖析 - Claude Code 上下文压缩机制
人工智能·python·ai
Cloud_Shy6183 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
abcy0712134 小时前
python pandas csv异步后台清洗前端优先返回成功信息
前端·python·pandas
颜酱4 小时前
LangChain使用RAG 入门:让大模型读懂你的私有文档
python·langchain
天天进步20154 小时前
Python全栈项目--校园智能宿舍管理系统
开发语言·python
测试员周周5 小时前
【AI测试智能体-面试】AI测试面试60题(附回答思路)
人工智能·python·功能测试·测试工具·单元测试·自动化·测试用例
用户8356290780515 小时前
使用 Python 操作 Word 评论和回复
后端·python
Zella折耳根5 小时前
复习篇-继承和接口
java·开发语言·python
诗词在线5 小时前
求推荐飞花令
大数据·人工智能·python