Python基础:数据类型与控制流详解

蓝鲸
蓝鲸
发布时间:2026-10-14| 6人浏览过
原创

本文系统讲解Python的六大标准数据类型(数字、字符串、列表、元组、集合、字典)及其可变性原理,深入解析变量引用机制。同时详细阐述顺序、选择(if/elif/else)、循环(for/while)三种控制流结构,结合break、continue语句及99乘法表实例,帮助开发者掌握Python程序执行逻辑。

Python基础:数据类型与控制流详解

在之前的文章中,我们探讨了Python语言的核心特性,并在结尾提出了一个关键问题:Python除了按顺序从上到下执行代码外,是否具备其他执行路径?

本文将重点介绍Python中的两大核心概念:数据类型与控制流,解答上述疑问并构建基础编程框架。

Python六大标准数据类型

数据类型

Python内置了六个标准数据类型,它们是构建程序的基础组件:

Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)以及Dictionary(字典)。

不同的数据类型通常对应特定的应用场景,这一逻辑非常直观。例如,若需存储一个人的姓名,使用字符串类型是最合适的选择。


name = "六小登登"

然而,当需要存储包含姓名、年龄、身高等多个属性的完整人员信息时,字符串便显得力不从心。此时,字典(Dictionary)成为更优的数据容器。


person = {
  name: "六小登登",
  age: 18,
  height: 180
}

既然字典适合存储单个人的详细信息,那么当面对大量人员数据时该如何处理?这时,列表(List)的优势便体现出来,它可以容纳多个字典对象。


people = [{name: "二狗"},{name: "狗蛋"}]

这种设计思路类似于不同容器盛装不同液体,各类数据类型各司其职又相互协作,共同支撑起复杂的数据结构。

可变与不可变类型辨析

根据数据是否支持原地修改,这些类型可进一步划分为「可变类型」和「不可变类型」:

不可变类型包含3种:Number、String、Tuple。 可变类型包含3种:List、Set、Dictionary。

可变与不可变的本质区别在于值是否可被修改。部分初学者可能会产生疑惑:明明可以执行 `age = 18` 后将其改为 `age = 20`,为何称为不可变?

关键在于计算机内存模型中,变量名与值是分离的。变量实际上只是保存了值的引用(Reference),而引用指向具体的内存地址中的值。

当你尝试修改不可变类型的值时,Python并不会在原内存地址上修改,而是创建一个新的值对象,并将变量重新指向这个新对象的内存地址。例如:


age = 18
id(age)
4478947024 //引用
age = 20
id(age)
4478947088 //引用

因此,修改不可变类型后,变量的引用地址会发生变化;而对于可变类型,即使内容改变,其引用地址依然保持不变。


list = [1,2]
id(list)
4481387656 //此时的引用
list[0]=2
print(list)
[2, 2]
id(list)
4481387656 //修改后的引用,依然相同
 

Python控制流机制

控制流

前文提到程序默认是「顺序执行」的,但在实际开发中,往往需要根据特定条件改变执行路径。这就是Python控制流的作用所在。

Python的控制流主要包含三种模式:

  • 顺序执行:即代码按书写顺序从上至下依次执行。
  • 选择执行:通过条件判断(如 if...else 语句)决定执行哪一段代码块。
  • 循环执行:通过 for 或 while 语句反复执行某段代码,直到满足退出条件。

条件判断:if与嵌套逻辑

条件判断


if age>19:
  print("111")
else:
  print("222")

上述代码示例展示了根据 age 变量的不同值执行不同逻辑的过程。若存在多种条件分支,可以使用 elif 关键字进行扩展判断。


if age < 8:
  print("儿童")
elif age < 18:
  print("少年")
else:
  print("青年")

此外,Python还支持「if嵌套」,即在条件判断内部再次进行条件判断,以处理更复杂的逻辑场景:


if age<8:
  if height>100:
    print("1")
  else: 
    print("2")
else:
  print("3")

循环语句:for与while实战

循环语句

Python提供了 for 和 while 两种循环语句,适用于不同的迭代需求。

1. while语法:


while 判断条件:
  语句

示例如下:


a = 1
while a<10:
  print(a)

使用 while 循环时,必须严格把控判断条件。如果条件始终为真,将导致「无限循环」,程序无法自然结束。


a = 1
while a:
 print(a)

此时程序会持续运行直至手动终止。此外,Python支持 while...else 结构,当判断条件变为 false 时,可执行 else 块中的代码。


a = 1
while a < 10:
  print(a)
  a += 1
else:
  print('大于10')

2. for语法:

for 循环主要用于遍历序列(如列表、字符串等)中的每一个元素。


for i in range(1, 5):
  print(i)
else:
  print('结束')
 
list = [1,2,3,4]
for temp in list:
  print(temp)
 

break 和 continue

掌握了基本循环后,若需提前结束循环或在满足特定条件时跳过当前迭代,仅靠基础语法无法实现。此时需要引入 break 和 continue 语句。

  • break语句:用于立即跳出 for 或 while 循环体,循环后续代码不再执行。
  • continue语句:仅跳过当前迭代剩余的代码,直接进入下一轮循环判断。

list = [1, 2, 3, 4]
for item in list:
  if item == 2:
    break
  print(item)

在此示例中,代码仅执行一次,当变量值等于 2 时,break 语句触发,整个循环立即终止。


list = [1, 2, 3, 4]
for item in list:
  if item == 2:
    continue
  print(item)

对比可见,使用 continue 时,仅当变量值等于 2 时跳过打印操作,其他值均正常执行。

练习:打印99乘法表


i = 1
while i<10:
 j =1
 while j<=i:
  print("%s*%s=%s" % (j,i, i*j), end=" ")
  j+=1
 print("")
 i+=1

运行上述代码后,效果如下所示:

1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

本文涵盖了Python基础数据类型与控制流的核心内容,希望能为读者的学习提供有益帮助,欢迎继续支持本站获取更多技术干货。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。