Python - 数据类型

欢迎,有抱负的程序员们!今天,我们将深入探讨Python数据类型的奇妙世界。作为你们友好的计算机科学老师,我很兴奋能引导你们了解Python编程的这个基本方面。所以,拿起你的虚拟笔记本,让我们一起踏上这个旅程吧!

Python - Data Types

Python中的数据类型

在编程中,数据类型就像用于存储各种信息的不同容器。想象一下,你正在组织一个派对,你需要不同类型的容器来存放不同的物品——盘子用来装食物,玻璃杯用来装饮料,盒子用来装礼物。同样,在Python中,我们使用不同的数据类型来存储不同类型的数据。

让我们从一个简单的例子开始:

name = "Alice"
age = 25
height = 5.7
is_student = True

在这段代码中,我们使用了四种不同的数据类型:

  • name 是一个字符串(文本)
  • age 是一个整数(整数)
  • height 是一个浮点数(小数)
  • is_student 是一个布尔值(True或False)

这些变量分别保存不同类型的数据,就像我们在派对上用不同容器装不同物品一样。

Python数据类型的种类

Python带有几种内置的数据类型。让我们一一探讨它们:

1. 数值类型

a. 整数(int)

整数是正数或负数,没有小数点的整数。

my_age = 30
temperature = -5

这里,my_agetemperature 都是整数。你可以对整数执行各种数学运算:

x = 10
y = 3
print(x + y)  # 加法:13
print(x - y)  # 减法:7
print(x * y)  # 乘法:30
print(x / y)  # 除法:3.3333...(注意:这实际上返回一个浮点数)
print(x // y) # 地板除法:3(向下舍入到最接近的整数)
print(x % y)  # 模数(余数):1
print(x ** y) # 指数:1000

b. 浮点数

浮点数是有小数点的数字。

pi = 3.14159
gravity = 9.81

浮点数可以像整数一样用于计算:

radius = 5
area = pi * (radius ** 2)
print(f"圆的面积是 {area:.2f}")  # 输出:圆的面积是 78.54

c. 复数

复数有一个实部和虚部,用'j'表示。

z = 2 + 3j
print(z.real)  # 输出:2.0
print(z.imag)  # 输出:3.0

2. 序列类型

a. 字符串(str)

字符串是字符序列,用单引号或双引号括起来。

greeting = "Hello, World!"
name = 'Alice'
multi_line = """这是一个
多行
字符串。"""

字符串有许多有用的方法:

message = "Python真棒"
print(message.upper())  # 输出:PYTHON真棒
print(message.split())  # 输出:['Python', '真棒']
print(len(message))     # 输出:20(字符串的长度)

b. 列表

列表是有序的、可变的序列,用方括号表示。

fruits = ["苹果", "香蕉", "樱桃"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "二", 3.0, [4, 5]]

列表是多功能的,允许各种操作:

fruits.append("橙子")  # 添加一个项目
fruits.remove("香蕉")  # 删除一个项目
print(fruits[0])        # 通过索引访问:苹果
print(fruits[-1])       # 最后一个项目:橙子
print(fruits[1:3])      # 切片:['樱桃', '橙子']

c. 元组

元组是有序的、不可变的序列,用圆括号表示。

coordinates = (4, 5)
rgb = (255, 0, 128)

元组类似于列表,但创建后不能修改:

print(coordinates[0])  # 通过索引访问:4
# coordinates[0] = 6   # 这将引发错误

3. 映射类型:字典(dict)

字典存储键值对,用花括号表示。

person = {
"name": "Bob",
"age": 30,
"city": "New York"
}

字典对于结构化数据非常有用:

print(person["name"])   # 通过键访问:Bob
person["job"] = "开发者"  # 添加新的键值对
del person["age"]       # 删除键值对
print(person.keys())    # 获取所有键
print(person.values())  # 获取所有值

4. 集合类型

a. 集合

集合是无序的唯一元素集合,用花括号表示。

fruits = {"苹果", "香蕉", "樱桃"}
numbers = {1, 2, 3, 4, 5}

集合非常适合去除重复项和集合运算:

fruits.add("橙子")
fruits.remove("香蕉")
print("苹果" in fruits)  # 检查成员资格:True

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))        # 并集:{1, 2, 3, 4, 5}
print(set1.intersection(set2)) # 交集:{3}

b. 冻结集合

冻结集合是不可变的集合。

fs = frozenset([1, 2, 3])
# fs.add(4)  # 这将引发错误

Python数据类型转换

有时,你需要将数据从一种类型转换为另一种类型。Python为此提供了内置函数:

# 字符串转换为整数
age_str = "25"
age_int = int(age_str)
print(age_int + 5)  # 输出:30

# 整数转换为字符串
number = 42
number_str = str(number)
print("答案是 " + number_str)  # 输出:答案是 42

# 字符串转换为浮点数
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2)  # 输出:39.98

# 列表转换为集合(去除重复项)
numbers = [1, 2, 2, 3, 3, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # 输出:{1, 2, 3, 4, 5}

数据类型转换函数

以下是常见的数据类型转换函数表:

函数 描述 示例
int(x) 将x转换为整数 int("10")10
float(x) 将x转换为浮点数 float("3.14")3.14
str(x) 将x转换为字符串 str(42)"42"
list(x) 将x转换为列表 list("hello")['h', 'e', 'l', 'l', 'o']
tuple(x) 将x转换为元组 tuple([1, 2, 3])(1, 2, 3)
set(x) 将x转换为集合 set([1, 2, 2, 3]){1, 2, 3}
dict(x) 创建字典。x必须是键值对的序列 dict([('a', 1), ('b', 2)]){'a': 1, 'b': 2}
bool(x) 将x转换为布尔值 bool(1)True, bool(0)False

请记住,这些函数不会改变原始值;它们会创建所需类型的新值。

亲爱的学生们,我们已经穿越了Python数据类型的土地,从简单的整数到复杂的字典。每种数据类型都是你编程工具箱中的强大工具,可以帮助你解决各种问题。

在你继续Python的冒险之旅时,你会发现自己在日常中使用这些数据类型。它们是你程序的构建块,是你编码食谱的原料。所以,玩转它们,实验它们,最重要的是,享受乐趣!

记住,在编程和生活中,关键不在于一次做对,而在于学习、成长和享受这个过程。所以,不要害怕犯错误——它们只是你成为Python大师之路上的垫脚石!

现在,大胆地去编码吧!永远记住:在Python和生活中,类型很重要!?✨

Credits: Image by storyset