Python基础:数据类型与控制流详解
本文系统讲解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基础数据类型与控制流的核心内容,希望能为读者的学习提供有益帮助,欢迎继续支持本站获取更多技术干货。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













