Appearance
变量与数据类型
🎯 什么是变量?
变量就像你家里的储物盒,用来存放东西。在编程中,变量用来存放数据。
想象一下:
- 你在盒子上贴个标签"名字",里面放一张纸条写着"小明"
- 你在另一个盒子上贴"年龄",里面放一张纸条写着"18"
- 这样你就能随时找到这些信息了
什么是变量? 变量就是给数据起个名字,方便我们记住和使用。就像你给文件起名字一样,report.docx 比 新建文档.docx 更容易理解里面是什么。
python
# 创建一个变量
name = "小明"
age = 18生活类比:
- 变量名(
name)就像盒子上的标签,告诉你里面装的是什么 - 变量值(
"小明")就是盒子里的实际内容 =这个符号表示"把右边的值放进左边的盒子",不是数学里的"等于"
小提示
变量名就像人的名字,起得好别人一看就知道是什么意思。age 比 a 好,user_name 比 un 好。
🏷️ 变量命名规则
就像给孩子起名字有规矩一样,给变量起名字也有规则:
python
# ✅ 正确的命名
my_name = "张三"
age2 = 20
_private = "私有"
userName = "李四"
# ❌ 错误的命名
2age = 20 # 不能以数字开头(就像名字不能以数字开头)
my-name = "张三" # 不能使用连字符(Python 会以为这是减法)
class = "一班" # 不能使用关键字(关键字是 Python 的"保留字")什么是关键字? 关键字是 Python 语言自己用的词,比如 if、for、class 等。就像你不能给孩子起名叫"法律"一样,变量名不能用这些词。
命名建议
- 使用有意义的名称:
age比a更好,一眼就知道是年龄 - 多个单词用下划线连接:
user_name(推荐)或userName(也可以) - 使用小写字母:Python 习惯用小写
📊 数据类型
什么是数据类型? 就像现实中有不同的容器装不同的东西(水杯装水,饭盒装饭),Python 也有不同的数据类型来存放不同类型的数据。
Python 有几种基本的数据类型:
1. 字符串(str)- 文本
什么是字符串? 字符串就是文字,比如你的名字、一句话、一段话。在 Python 里,用引号(单引号或双引号)包起来的就是字符串。
python
# 用引号包围的内容就是字符串
name = "Python"
message = '你好,世界!'
long_text = """这是
多行
文本"""
# 字符串操作
print("Hello" + " " + "World") # 拼接:Hello World(就像把两句话连起来)
print("Ha" * 3) # 重复:HaHaHa(就像回声)
print(len("Python")) # 长度:6(数一数字母有几个)为什么要用引号? 引号告诉 Python:"这是文字,不是代码"。就像说话时用引号表示引用别人的话一样。
2. 整数(int)- 整数
什么是整数? 整数就是没有小数点的数字,比如 1、2、100、-5。就像数苹果,你不能有 1.5 个苹果(除非你切开了)。
python
age = 18
year = 2024
count = -5
# 整数运算
print(10 + 3) # 加法:13
print(10 - 3) # 减法:7
print(10 * 3) # 乘法:30
print(10 // 3) # 整除:3(只取整数部分,不要小数)
print(10 % 3) # 取余:1(10 除以 3 余 1)
print(2 ** 10) # 幂运算:1024(2 的 10 次方)3. 浮点数(float)- 小数
什么是浮点数? 浮点数就是有小数点的数字,比如 3.14、9.99、-5.5。就像测量身高,可能是 1.75 米。
python
price = 9.99
pi = 3.14159
temperature = -5.5
# 浮点数运算
print(10 / 3) # 除法:3.3333...(会得到小数)
print(0.1 + 0.2) # 0.30000000000000004(浮点数精度问题)注意
浮点数运算有时候会有精度问题,比如 0.1 + 0.2 不等于 0.3。这是因为计算机用二进制表示小数,就像 1/3 用小数表示是 0.333...一样,永远写不完。一般不影响使用,但做精确计算时要注意。
4. 布尔值(bool)- 真/假
什么是布尔值? 布尔值只有两个:True(真)和 False(假)。就像开关,只有开和关两种状态。
python
is_student = True # 是学生
is_adult = False # 不是成年人
# 布尔运算
print(3 > 2) # True(3 大于 2 是真的)
print(3 == 2) # False(3 等于 2 是假的)
print(3 != 2) # True(3 不等于 2 是真的)什么时候用布尔值? 当你需要表示"是"或"否"、"有"或"没有"、"对"或"错"的时候,就用布尔值。
🔄 类型转换
什么是类型转换? 有时候你需要把数字变成文字,或者把文字变成数字。就像把人民币换成美元,需要"转换"。
python
# 转换为字符串
age = 18
print("我今年 " + str(age) + " 岁") # 必须转成字符串才能拼接
# 转换为整数
num_str = "123"
num = int(num_str) # 把文字"123"变成数字 123
print(num + 1) # 124(现在可以做数学运算了)
# 转换为浮点数
price = float("9.99") # 把文字"9.99"变成小数 9.99
print(price * 2) # 19.98
# 查看类型
print(type("Hello")) # <class 'str'>(告诉你这是字符串)
print(type(123)) # <class 'int'>(告诉你这是整数)
print(type(3.14)) # <class 'float'>(告诉你这是浮点数)
print(type(True)) # <class 'bool'>(告诉你这是布尔值)为什么要转换类型? 就像你不能把苹果和数字相加一样,不同类型的数据不能直接运算。需要先转换成同一种类型。
💬 格式化输出
什么是格式化输出? 格式化输出就是把变量"插入"到文字里,就像填空一样。比如"我叫___,今年___岁",把变量填进去。
有几种方式将变量插入到字符串中:
f-string(推荐)⭐
什么是 f-string? f-string 是 Python 3.6 引入的新功能,最简单最好用。在字符串前面加个 f,然后用 {} 把变量包起来。
python
name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")
# 输出:我叫小明,今年 18 岁
# 可以在 {} 中进行计算
price = 10
quantity = 3
print(f"总价:{price * quantity}元") # 总价:30 元为什么推荐 f-string? 因为它最简单、最直观,就像说话一样自然。f"我叫{name}" 比 "我叫" + name 更容易读。
format 方法
python
name = "小明"
age = 18
print("我叫{},今年{}岁".format(name, age))% 格式化(旧式)
python
print("我叫%s,今年%d岁" % (name, age))小提示
初学者直接用 f-string 就够了,简单又好用!
🎯 输入用户数据
什么是 input()?input() 是让程序"停下来"等用户输入的功能。就像服务员问你"要什么菜?",你回答后他才会去下单。
使用 input() 获取用户输入:
python
# 获取用户输入
name = input("请输入你的名字:")
print(f"你好,{name}!")
# 注意:input() 返回的始终是字符串
age = input("请输入你的年龄:")
age = int(age) # 转换为整数(因为年龄应该是数字)
print(f"明年你就 {age + 1} 岁了")为什么 input() 返回的是字符串? 因为用户输入的都是文字,即使输入的是数字,Python 也把它当作文字。就像你填表格时,即使填的是数字,表格里存的也是文字。需要做数学运算时,记得用 int() 或 float() 转换。
✏️ 动手练习
练习 1:自我介绍程序
python
# 创建变量存储个人信息
name = "你的名字"
age = 18
city = "你的城市"
hobby = "你的爱好"
# 使用 f-string 输出
print(f"大家好,我叫{name}")
print(f"今年{age}岁,来自{city}")
print(f"我喜欢{hobby}")练习 2:简单计算器
python
# 获取用户输入
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
# 计算并输出
print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
print(f"{num1} ÷ {num2} = {num1 / num2}")练习 3:温度转换
python
# 华氏温度转摄氏温度
fahrenheit = float(input("请输入华氏温度:"))
celsius = (fahrenheit - 32) * 5 / 9
print(f"华氏 {fahrenheit}° = 摄氏 {celsius:.2f}°")🎯 本节要点
| 概念 | 说明 | 示例 |
|---|---|---|
| 变量 | 存储数据的容器 | name = "小明" |
| 字符串 | 文本数据 | "Hello" |
| 整数 | 整数数据 | 18 |
| 浮点数 | 小数数据 | 3.14 |
| 布尔值 | 真/假 | True / False |
| f-string | 格式化输出 | f"我是{name}" |
| input() | 获取用户输入 | input("提示:") |
常见问题
Q: 变量名可以用中文吗?
可以,但不推荐。虽然 Python 支持中文变量名,但:
- 容易出编码问题
- 和团队协作不方便
- 不符合编程习惯
建议用英文,不会的单词查一下就好。
Q: 什么时候用单引号,什么时候用双引号?
都可以,看个人习惯。一般:
- 字符串里有单引号时,用双引号:
"It's a book" - 字符串里有双引号时,用单引号:
'他说:"你好"' - 其他情况随便,保持一致就行
Q: 为什么 0.1 + 0.2 不等于 0.3?
这是浮点数的精度问题。计算机用二进制表示小数,就像 1/3 用小数表示是 0.333...一样。一般不影响使用,但做精确计算(比如钱)时,可以用 decimal 模块。
下一步
了解了变量和数据类型后,接下来学习运算符!