内容涵盖 数据结构、控制流、函数定义与调用、异常处理 四大核心模块,语言简洁、示例清晰,适合初学者或需要快速复习的读者。

第一节:Python 编程基础知识

目标:掌握 Python 基础语法,能够熟练操作常用数据结构、编写逻辑控制流程、定义和调用函数,并处理常见运行时错误。

python中常用的代码注释的方法有2种,

      ''' 
这里的内容不会被执行
这里的内容不会被执行
'''

"""
这里的内容不会被执行
这里的内容不会被执行
"""


    

0. 数据类型

0.1. 数值类型(Numeric Types)

类型 示例 说明
int 42, -7 任意精度整数(无大小限制)
float 3.14, -2.5e3 双精度浮点数(64位,遵循 IEEE 754)
complex 3+4j, 1j 复数,real + imag*j

0.2. 布尔类型(Boolean Type)

bool:只有两个值 True或False 实际上是 int 的子类(True == 1, False == 0)

      use_gpu=True
use_cpu=False

    

0.3. 字符串类型(Text Sequence Type)

str:Unicode 字符串(不可变) 字符串类型的变量不能变化,但是你可以给他重新赋值。

      name="zhangsan"
location="Changzhou"

    

0.4. 序列类型(有序集合)

序列中的数字可以不使用引号,但是字符串必须使用引号

      name_list=["zhaowu","lisi"]
age_list=[18,21,"ten"]

    
      status=(1,100,"bad")

    
      range(0,10,2)

    

所有的序列都支持下面的操作:

注意python中的索引的下标是从0开始。 这里的seq就是定义的序列的变量名 seq=(True,1001,1552,"mazi")

检查变量的数据类型:

      name="zhangsan"
type(name) 

    

<class 'str'>

      isinstance(name,str) #True
isinstance(100,int)   #True
isinstance(name,(list,tuple)) #False 可以一次检查是否为多个类型之一。

    

isinstance(变量名,变量类型)这种检测方法会返回逻辑值True或False。所以一般优先使用isinstance函数。

1. 数据结构(Data Structures)

Python 提供了多种内置数据结构,用于高效存储和操作数据。

1.1 列表(List)

特点:有序、可变、允许重复元素。 创建:

      fruits = ["apple", "banana", "cherry"]
numbers = [1, 3, 5, 4]
mixed = [1, "hello", 3.14, True]

    

常用操作:

      访问元素(索引从0开始)
print(fruits[0]) # "apple"
修改元素
fruits[1] = "orange"
添加元素
fruits.append("grape") # 末尾添加
fruits.insert(1, "kiwi") # 在指定位置插入
删除元素
fruits.remove("apple") # 按值删除
last = fruits.pop() # 弹出最后一个元素
del fruits[0] # 按索引删除
切片(slice)
sub = fruits[1:3] # ["orange", "cherry"]

    

1.2 元组(Tuple)

特点:有序、不可变、允许重复。 用途:存储不应被修改的数据(如坐标、RGB 值)。 示例:

      point = (10, 20)
colors = ("red", "green", "blue")
print(point[0]) # 10
point[0] = 5 # ❌ 报错!元组不可修改

    

1.3 字典(Dictionary)

特点:无序(Python 3.7+ 保持插入顺序)、键值对、键必须唯一且不可变。 创建与操作:

      student = {"name": "张三", "age": 20, "major": "计算机"}
访问
print(student["name"]) # "张三"
修改/新增
student["age"] = 21
student["gpa"] = 3.8
删除
del student["major"]
安全访问(避免 KeyError)
print(student.get("phone", "未提供")) # "未提供"
遍历
for key, value in student.items():
print(f"{key}: {value}")

    

1.4 集合(Set)

特点:无序、不重复、支持数学集合运算。 用途:去重、成员检测、交并差集。 示例:

      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}
a.add(4)
a.discard(1) # 安全删除(不存在不报错)

    
运算 数学符号 Python 方法 Python 运算符
并集(Union) A ∪ B A.union(B) A | B
交集(Intersection) A ∩ B A.intersection(B) A & B
差集(Difference) A − B A.difference(B) A - B
对称差集 A Δ B A.symmetric_difference(B) A ^ B

2. 控制流(Control Flow)

控制程序执行顺序的语句。

2.1 条件语句(if / elif / else)

      score = 85
if score >= 90:
	grade = "A"
elif score >= 80:
	grade = "B"
elif score >= 70:
	grade = "C"
else:
	grade = "D"
print(f"成绩等级: {grade}") # B

    

注意:Python 使用 缩进(通常 4 空格或tab)表示代码块,没有花括号 . 不同的缩进代表不同的代码块等级。tab和空格缩进不要混用,否则会出错。

2.2 循环语句

for 循环(遍历序列)

      遍历列表
for fruit in ["apple", "banana", "cherry"]:
	print(fruit)
遍历字典
for key in student:
	print(key)
使用 range()
for i in range(5): # 0, 1, 2, 3, 4
	print(i)

for i in range(2, 6): # 2, 3, 4, 5
	print(i)

    

while 循环(条件循环)

      count = 0
while count < 3:
	print("Hello")
	count += 1

    

循环控制关键字 break:立即退出循环 continue:跳过本次循环,进入下一次 else(可选):循环正常结束时执行(未被 break 中断)

      for i in range(10):
	if i == 5:
		print(f"停止运行在数字:{i}")
		break
	else:
		print(i)

    

上面的示例中,else输出的i只能到4,因为满足条件i==5时里面有个break,会直接中断循环。

3.运算符

算术运算符

注意:/返回的值始终是float,//对附属也向下取整

比较运算符

注意:等于是2个等号,一个等号是赋值,而且==两端必须数据类型一样,字符串和数值是不相等的

逻辑运算符

赋值运算符

以上几种格式都是类似的等价格式

位运算(不常用)

位运算是对整数的二进制位进行操作。

成员运算符

      name_list=("zhangsan","mike","test","admin",)
for i in name_list:
	print(i)

if "admin" not in name_list:
	print("no admin")
else:
	print("admin exist")


name="Zhangsan"
if "Zhang" in name:
	print("姓氏是:Zhang")

    

成员运算符用来判断是否存在某个成员,对字典,列表,字符串,元组,集合都可以使用。

身份运算符

比较两个对象是否是同一个对象(内存地址相同)

运算符优先级

从高到低,从左到右,括号最高。

优先级 运算符 说明
1 () 括号(最高优先级)
2 ** 幂运算(右结合)
3 +x, -x, ~x 正、负、按位取反
4 *, /, //, % 乘除模
5 +, - 加减
6 <<, >> 位移
7 & 按位与
8 ^ 按位异或
9 | 按位或
10 <, <=, >, >=, ==, !=, in, not in, is, is not 比较、成员、身份
11 not 逻辑非
12 and 逻辑与
13 or 逻辑或
14 := 海象运算符(赋值表达式,Python 3.8+)

4. 函数(Functions)

函数是组织代码、实现复用的基本单元。

4.1 定义函数

      def greet(name, greeting="Hello"):
"""
打印问候语(带文档字符串)
参数:
	name: 姓名
	greeting: 问候语,默认为 "Hello"
返回:
	欢迎用户
"""
	return f"{greeting}, {name}!"

    

4.2 调用函数

      message = greet("李四")
print(message) # Hello, 李四!

message2 = greet("王五", "Hi")
print(message2) # Hi, 王五!

    

4.3 可变参数

args:接收任意数量的位置参数(元组)

      def sum_all(args):
	return sum(args)
new_tuple=(1,3,6)
print(sum_all(new_tuple)) # 10

    

kwargs:接收任意数量的关键字参数(字典)

      def print_info(kwargs):
	for key, value in kwargs.items():
		print(f"{key}: {value}")
person={"name":"赵六","age":22} #创建一个字典
print_info(person)

    

name: 赵六 age: 22

4.4 Lambda 表达式(匿名函数)和高阶函数map,filter,sorted

Lamba是匿名函数,

用法:lambda 命令名: 表达式

      square = lambda x: x ** 2
print(square(4)) # 16
#与 sorted 结合
points = [(1, 2), (3, 1), (5, 0)]
sorted_points = sorted(points, key=lambda p: p[1])
print(sorted_points) # [(5, 0), (3, 1), (1, 2)]

    

上面这个这里是对points这个list进行排序,后面的key指定规则,规则是按照输入值的第1个元素 从小到大排序

sorted遍历points这个list时,首先获得的输入是tuple (1,2),然后按照规则获取第1个元素是2.因为下标是从0开始的。

依次获得值是2,1,0,然后对这3个数字按照从小到大的顺序,对list里的tuple进行排序。

所以最终输出的是[(5, 0), (3, 1), (1, 2)]

map 对每个元素应用函数

语法:map(函数,元素)

      square = lambda x: x ** 2 #定义1个求平方的匿名函数
numlist= [1,3,5]
list(map(square,numlist)) #[1, 9, 25]

    

注意:map函数返回的值是迭代器,需要使用list()函数转还能才能看到全部结果

      numlist= [1,3,5]

#定义1个求平方的匿名函数
square = lambda x: x ** 2

#运行map对list里的每个值执行square函数
numlist2=list(map(square,numlist)) #[1, 9, 25] 
#运行map对2个list的每个值,依次执行匿名函数相乘。
list(map(lambda x,y : x * y,numlist,numlist2)) #[1, 27, 125]

    

filter 过滤满足条件的元素

用法:filter(函数,元素) filter返回的是布尔值,也是迭代器,需要使用list转换。

      nums=[100,85,65,15,25,89,31]
badscore=list(filter(lambda x : x<60 , nums))
print(badscore)

    

sorted函数

用法:sorted(元素,key=function,reverse=False)

      nums=[100,85,65,15,25,89,31,-21] 
sorted(nums) #[-21, 15, 25, 31, 65, 85, 89, 100]
sorted(nums,reverse=True) #倒序排列 [100, 89, 85, 65, 31, 25, 15, -21]
sorted(nums,key=lambda x : x**2) #按照输入的元素的平方,从小到大排序

    

5. 异常处理(Exception Handling)

捕获并处理程序运行中的错误,防止崩溃。

5.1 常见异常类型

异常 触发场景
ValueError 值类型正确但值不合适(如 int("abc"))
IndexError 列表索引越界
KeyError 字典键不存在
ZeroDivisionError 除以零

5.2 try / except / else / finally

      try:
	num = int(input("请输入一个整数: "))
	result = 10 / num
except ValueError:
	print("输入不是有效整数!")
except ZeroDivisionError:
	print("不能除以零!")
else:
	# 无异常时执行
	print(f"结果是: {result}")
finally:
	# 无论是否异常都会执行(常用于清理资源)
	print("程序结束。")

    

5.3 主动抛出异常(raise)

      def divide(a, b):
	if b == 0:
		raise ValueError("除数不能为零!")
	return a / b
#调用
try:
	print(divide(10, 0))
except ValueError as e:
	print("错误:", e)

    

下一节课,第2节将会学习NumPy、Pandas的使用。