数字类型
Python中的数字类型
Python支持整数(int)、浮点数(float)和复数(complex)三种数字类型。
# 整数(int)
age = 25
population = 1_000_000 # 使用下划线分隔数字,提高可读性
# 浮点数(float)
height = 1.75
pi = 3.14159
# 复数(complex)
c = 3 + 4j
print(c.real) # 实部:3.0
print(c.imag) # 虚部:4.0
# 类型转换
x = int(3.9) # 结果:3
y = float(5) # 结果:5.0
z = complex(2) # 结果:2+0j
字符串
字符串是Python中最常用的数据类型之一,用于处理文本数据:
# 字符串创建
name = 'Python'
message = "Hello, World!"
paragraph = '''这是一个
多行字符串
示例'''
# 字符串操作
print(len(name)) # 长度:6
print(name[0]) # 索引:'P'
print(name[-1]) # 负索引:'n'
print(name[0:2]) # 切片:'Py'
# 字符串方法
text = " Python编程 "
print(text.strip()) # 去除空白:'Python编程'
print(text.upper()) # 转大写:' PYTHON编程 '
print(text.lower()) # 转小写:' python编程 '
print(text.replace('Python', 'Java')) # 替换:' Java编程 '
# 字符串格式化
name = "小明"
age = 18
# f-string(推荐)
print(f"我叫{name},今年{age}岁")
# format方法
print("我叫{},今年{}岁".format(name, age))
# %运算符
print("我叫%s,今年%d岁" % (name, age))
注意:字符串是不可变类型,一旦创建就不能修改。所有的字符串操作都会返回一个新的字符串。
列表和元组
列表和元组的区别
列表是可变序列,可以修改其内容;元组是不可变序列,创建后不能修改。
列表(List)
# 创建列表
fruits = ['苹果', '香蕉', '橙子']
numbers = [1, 2, 3, 4, 5]
mixed = [1, '你好', 3.14, True]
# 列表操作
fruits.append('梨') # 添加元素
fruits.insert(1, '草莓') # 插入元素
fruits.remove('香蕉') # 删除元素
fruits.pop() # 弹出最后一个元素
fruits.sort() # 排序
fruits.reverse() # 反转
# 列表切片
print(numbers[1:4]) # [2, 3, 4]
print(numbers[::-1]) # 反转:[5, 4, 3, 2, 1]
# 列表推导式
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
元组(Tuple)
# 创建元组
point = (3, 4)
coordinates = (1,) # 单元素元组需要加逗号
rgb = (255, 128, 0)
# 元组操作
x, y = point # 元组解包
print(len(rgb)) # 长度:3
print(rgb.count(255)) # 计数:1
print(rgb.index(128)) # 索引:1
# 元组的优势
# 1. 数据不可变,更安全
# 2. 性能更好
# 3. 可以作为字典的键
字典和集合
字典(Dictionary)
# 创建字典
student = {
'name': '小明',
'age': 18,
'scores': {'语文': 90, '数学': 95}
}
# 字典操作
student['class'] = '一年级' # 添加键值对
del student['age'] # 删除键值对
print(student.get('name')) # 获取值
print(student.keys()) # 所有键
print(student.values()) # 所有值
print(student.items()) # 所有键值对
# 字典推导式
squares = {x: x**2 for x in range(5)}
集合(Set)
# 创建集合
fruits = {'苹果', '香蕉', '橙子'}
numbers = set([1, 2, 2, 3, 3, 4]) # 自动去重
# 集合操作
fruits.add('梨') # 添加元素
fruits.remove('香蕉') # 删除元素
fruits.discard('梨') # 安全删除(元素不存在不会报错)
# 集合运算
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # 并集:{1, 2, 3, 4, 5}
print(a & b) # 交集:{3}
print(a - b) # 差集:{1, 2}
print(a ^ b) # 对称差:{1, 2, 4, 5}
练习与实践
练习1:数据类型转换
创建一个程序,尝试以下转换:
- 将字符串转换为整数和浮点数
- 将列表转换为元组和集合
- 将字典的键和值分别转换为列表
练习2:数据结构应用
创建一个学生信息管理系统,要求:
- 使用字典存储学生信息(姓名、年龄、成绩等)
- 使用列表存储多个学生的信息
- 实现添加、查询、修改学生信息的功能
参考代码:
# 学生信息管理系统
students = []
def add_student(name, age, scores):
student = {
'name': name,
'age': age,
'scores': scores
}
students.append(student)
def find_student(name):
return next((s for s in students if s['name'] == name), None)
# 使用示例
add_student('小明', 18, {'语文': 90, '数学': 95})
add_student('小红', 17, {'语文': 88, '数学': 92})
print(find_student('小明'))