第3集 变量与数据类型基础
1. 变量概念
1.1 什么是变量?
变量是程序中用于存储数据的容器。可以把变量想象成一个盒子,盒子里面可以装不同的东西(数据),我们给盒子贴上标签(变量名)来区分它。
变量名 = 数据
标签 → 盒子内容1.2 变量的命名规则
命名规则:
- 变量名只能包含字母、数字和下划线
- 变量名不能以数字开头
- 变量名不能使用Python关键字
- 变量名区分大小写(
name和Name是不同的变量)
命名示例:
# 正确的变量名
name = "张三"
age = 18
user_name = "admin"
_score = 100
name2 = "李四"
# 错误的变量名
2name = "错误" # 不能以数字开头
user-name = "错误" # 不能使用连字符
class = "错误" # class是Python关键字命名建议:
- 使用有意义的名称,便于理解
- 使用小写字母和下划线组合(蛇形命名法)
- 避免使用单个字母(除非是循环变量)
# 推荐
student_name = "张三"
user_age = 18
total_score = 100
# 不推荐
n = "张三"
a = 18
ts = 1001.3 变量的赋值
# 基本赋值
name = "张三"
age = 18
# 同时给多个变量赋值
x = y = z = 0
# 同时给多个变量赋不同的值
a, b, c = 1, 2, 3
# 交换两个变量的值
x, y = y, x2. 数据类型概述
Python中主要有以下几种基本数据类型:
| 数据类型 | 说明 | 示例 |
|---|---|---|
int |
整数 | 10, -5, 0 |
float |
浮点数 | 3.14, -2.5, 0.01 |
str |
字符串 | "Hello", '你好' |
bool |
布尔值 | True, False |
list |
列表 | [1, 2, 3] |
tuple |
元组 | (1, 2, 3) |
dict |
字典 | {'name': '张三'} |
set |
集合 | {1, 2, 3} |
3. 数字类型(int 和 float)
3.1 整数(int)
整数是没有小数部分的数字,可以是正数、负数或零。
# 正整数
positive = 100
print(positive) # 输出:100
# 负整数
negative = -50
print(negative) # 输出:-50
# 零
zero = 0
print(zero) # 输出:0
# 大整数(Python支持任意大的整数)
big_number = 123456789012345678901234567890
print(big_number) # 输出:1234567890123456789012345678903.2 浮点数(float)
浮点数是有小数部分的数字,也叫实数。
# 正浮点数
pi = 3.14159
print(pi) # 输出:3.14159
# 负浮点数
negative_float = -2.5
print(negative_float) # 输出:-2.5
# 科学计数法
scientific = 1.23e5 # 1.23 × 10^5 = 123000
print(scientific) # 输出:123000.0
# 小数浮点数
decimal = 0.5
print(decimal) # 输出:0.53.3 浮点数精度问题
# 浮点数可能会有精度问题
result = 0.1 + 0.2
print(result) # 输出:0.30000000000000004(不是精确的0.3)
# 解决方法:使用round()函数四舍五入
print(round(result, 2)) # 输出:0.34. 字符串类型(str)
字符串是由字符组成的序列,用单引号、双引号或三引号包围。
4.1 字符串的定义
# 使用单引号
str1 = 'Hello'
print(str1) # 输出:Hello
# 使用双引号
str2 = "World"
print(str2) # 输出:World
# 使用三引号(可以包含换行)
str3 = """
这是一个
多行字符串
"""
print(str3)4.2 字符串的常用操作
# 字符串拼接
greeting = "Hello"
name = "World"
message = greeting + ", " + name + "!"
print(message) # 输出:Hello, World!
# 字符串重复
stars = "*" * 10
print(stars) # 输出:**********
# 字符串长度
text = "Python"
print(len(text)) # 输出:6
# 字符串索引(从0开始)
name = "Python"
print(name[0]) # 输出:P
print(name[-1]) # 输出:n(最后一个字符)4.3 字符串转义字符
# 换行符
print("第一行\n第二行")
# 制表符
print("姓名\t年龄")
# 引号转义
print("他说:\"你好!\"")
# 反斜杠
print("路径:C:\\Users\\")5. 布尔类型(bool)
布尔类型只有两个值:True(真)和False(假)。
# 布尔值
is_student = True
is_teacher = False
print(is_student) # 输出:True
print(is_teacher) # 输出:False
# 比较运算的结果是布尔值
x = 10
y = 20
print(x == y) # 输出:False
print(x < y) # 输出:True
print(x != y) # 输出:True6. 查看数据类型
使用type()函数可以查看变量或值的数据类型。
# 查看各种数据类型
print(type(100)) # 输出:<class 'int'>
print(type(3.14)) # 输出:<class 'float'>
print(type("Hello")) # 输出:<class 'str'>
print(type(True)) # 输出:<class 'bool'>
# 查看变量的类型
name = "张三"
age = 18
height = 1.75
print(type(name)) # 输出:<class 'str'>
print(type(age)) # 输出:<class 'int'>
print(type(height)) # 输出:<class 'float'>7. 数据类型转换
7.1 转换为整数(int())
# 字符串转整数
str_num = "100"
num = int(str_num)
print(num) # 输出:100
print(type(num)) # 输出:<class 'int'>
# 浮点数转整数(向下取整)
float_num = 3.9
int_num = int(float_num)
print(int_num) # 输出:3
# 布尔值转整数
print(int(True)) # 输出:1
print(int(False)) # 输出:07.2 转换为浮点数(float())
# 整数转浮点数
int_num = 100
float_num = float(int_num)
print(float_num) # 输出:100.0
# 字符串转浮点数
str_float = "3.14"
num = float(str_float)
print(num) # 输出:3.147.3 转换为字符串(str())
# 数字转字符串
num1 = 100
num2 = 3.14
print(str(num1)) # 输出:"100"
print(str(num2)) # 输出:"3.14"
# 布尔值转字符串
print(str(True)) # 输出:"True"
print(str(False)) # 输出:"False"8. 综合示例
8.1 学生信息管理
"""
学生信息管理程序
演示不同数据类型的使用
"""
# 学生信息
student_id = 1001 # 学号:整数
name = "张三" # 姓名:字符串
age = 18 # 年龄:整数
height = 1.75 # 身高:浮点数
weight = 65.5 # 体重:浮点数
is_male = True # 性别:布尔值
grades = [90, 85, 95] # 成绩:列表
# 输出学生信息
print("=" * 40)
print("学生信息")
print("=" * 40)
print(f"学号:{student_id}")
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"身高:{height}米")
print(f"体重:{weight}公斤")
print(f"性别:{'男' if is_male else '女'}")
print(f"成绩:{grades}")
print("=" * 40)
# 计算BMI
bmi = weight / (height ** 2)
print(f"BMI指数:{bmi:.2f}")8.2 数据类型检测器
"""
数据类型检测器
演示如何检测和转换数据类型
"""
# 定义不同类型的变量
values = [
100, # 整数
3.14, # 浮点数
"Hello", # 字符串
True, # 布尔值
[1, 2, 3] # 列表
]
# 检测并输出类型
print("数据类型检测")
print("-" * 40)
for value in values:
print(f"值:{value:<10} 类型:{type(value).__name__}")
# 类型转换示例
print("\n类型转换示例")
print("-" * 40)
# 字符串转数字
str_num = "123"
print(f"字符串 '{str_num}' 转为整数:{int(str_num)}")
print(f"字符串 '{str_num}' 转为浮点数:{float(str_num)}")
# 数字转字符串
num = 456
print(f"数字 {num} 转为字符串:'{str(num)}'")
# 布尔值转数字
print(f"布尔值 {True} 转为整数:{int(True)}")
print(f"布尔值 {False} 转为整数:{int(False)}")9. 常见错误
9.1 变量未定义
# 错误:使用未定义的变量
print(x) # NameError: name 'x' is not defined
# 正确:先定义再使用
x = 10
print(x)9.2 类型转换错误
# 错误:无法转换的字符串
num = int("abc") # ValueError: invalid literal for int()
# 正确:确保字符串可以转换
num = int("123")
print(num)9.3 运算类型不匹配
# 字符串和数字不能直接相加
text = "年龄:"
age = 18
# print(text + age) # TypeError: can only concatenate str
# 正确:转换为字符串
print(text + str(age)) # 输出:年龄:1810. 本集总结
本集我们学习了:
- 变量的概念和命名规则
- Python的基本数据类型(int、float、str、bool)
- 如何查看数据类型
- 如何进行数据类型转换
- 各类型的基本操作
核心要点:
- 变量名要有意义,遵循命名规则
- Python有丰富的数据类型,根据需求选择合适的类型
- 使用
type()函数可以查看数据类型 - 类型转换时要注意数据的兼容性
- 布尔值
True和False在运算中等价于1和0
下一集预告:我们将学习基本输入输出操作,学习如何从键盘获取输入并格式化输出。
11. 课后练习
- 创建变量存储你的姓名、年龄、身高、体重,并输出这些信息
- 编写程序,计算圆的面积(半径=5),输出结果保留2位小数
- 将字符串"123.45"转换为浮点数,然后再转换为整数
- 判断以下变量的类型并输出:
True、3.14、"Python"、[1, 2, 3] - 编写一个简单的数据类型检测程序,用户输入一个值,程序输出其类型
提示:理解数据类型是编程的基础,建议多动手实践,熟悉每种类型的特点和使用场景!