# Python-Project
**Repository Path**: su27sk/Python-Project
## Basic Information
- **Project Name**: Python-Project
- **Description**: 复习Python语法,为FastAPI项目做好准备
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-15
- **Last Updated**: 2026-04-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Python
## README
# Python基础语法
## 基础配置
参考在线文档:https://heuqqdmbyk.feishu.cn/wiki/SHXXwTeDUiFMLhkJ3WjcrYOpnLe
## 核心基础语法
### 数据容器
- list(列表):
可以存储不同类型的元素;元素有序,可以重复,元素可以修改。相当于Java的ArrayList
- 切片:
切片是指对操作的数据截取其中一部分的操作。列表,字符串,元组都支持切片操作
不包含结束索引位置对应的元素 (开始索引未指定默认为 0;结束索引未指定默认为列表长度 (直到列表末尾);步长未指定默认为 1)
索引采用正向、反向索引都可以
步长是选取间隔,默认步长为 1
经常配合解包和推导式使用
- str(字符串):
不可变(无法修改),有序性,可迭代性。相当于Java的String
- tuple(元组):
元组和列表最大的不同在于元组一旦完成以后无法修改(可以重复,有序,不可修改)。相当于不可修改的list(列表)
- set(集合):
集合是一种无序的,不可重复的,可修改的数据容器。相当于Java的HashSet
- dict(字典):
相当于Java的HashMap
- 数据容器应用场景

### 函数
- 函数基础
- 函数进阶
变量作用范围
```commandline
# 全局变量
num = 100
# 定义函数
def circle_area(r):
pi = 3.14
area = pi * r ** 2
# 想在函数内修改全局变量 → 必须加 global 变量名.声明当前的变量是全局的那个变量
global num
num = 10000
print("num = ", num)
return area
# 调用函数
c_area = circle_area(10)
print(c_area)
print("num = ",num)
```
不定长函数
```commandline
# -------------- 函数 - 不定长参数(位置参数 *args --> 元组) --------------
# 不定长位置参数
# 需求:根据传入的数据计算数据的最小值,最大值,平均值
def calc_data(*args):
min_data = min(args)
max_data = max(args)
avg_data = round(sum(args) / len(args))
return min_data,max_data,avg_data
print(calc_data(3,67,8,90,45,67,8))
# -------------- 函数 - 不定长参数(关键字参数 **kwargs --> 字典) --------------
# 不定长位置参数关键字
# 需求:根据传入的数据计算数据的最小值,最大值,平均值;保留平均值几位小数,是否打印
def calc_data(*args,**kwargs):
"""
根据传入的数据计算数据的最小值,最大值,平均值;保留平均值几位小数,是否打印
Args:
*args: 不定长位置参数
**kwargs: 不定长位置参数关键字
Returns: 计算数据的最小值,最大值,平均值
"""
min_data = min(args)
max_data = max(args)
avg_data = sum(args) / len(args)
if kwargs.get("round") is not None:
avg_data = round(avg_data,kwargs.get("round"))
if kwargs.get("print"):
print(f"计算出来的最小值:{min_data},最大值:{max_data},平均值:{avg_data}")
return min_data,max_data,avg_data
print(calc_data(2,34,5,6,78,56,27,round = 3,print = True))
print(calc_data(2,34,5,6,78,56,27,print=False))
```
函数作为参数
```commandline
# -------------- 函数 - 函数作为参数 --------------
'''
# 函数参数类型
def add(x,y):
return x+y
def subtract(x,y):
return x-y
def multiply(x,y):
return x*y
def divide(x,y):
return x/y
# 计算
def calc(x,y,oper):
return oper(x,y)
print(calc(10,20,add))
'''
```
匿名函数
```commandline
# 匿名函数是没有名字的函数,用lambda表达式来定义
# 匿名函数
# 需求1:打印一个分割线
# def out_line():
# print("-------------------------")
out_line = lambda : print("-------------------------")
out_line()
# 需求2:计算两个数之和
# def add(x,y):
# return x + y
add = lambda x,y:x+y
print(add(10,20))
# 需求3:完成如下列表的排序操作,按照每一个元素的字符个数,从小到大排序
data_list = ["C++","C","Python","Jack","PHP","Java","Go","JavaScript","Rust"]
print(data_list)
# 规定按照字符个数排序
data_list.sort(key= lambda item : len(item))
print(data_list)
```
### 类型注解
- 变量类型注解:如果对变量直接赋值、变量运算等场景,Python 会自动进行类型推断,Python是动态类型语言。类型注解只是给一个友好型提升,并不是强制约束
- 函数类型注解
```commandline
def 函数名(参数名: 类型, 参数名: 类型 = 默认值) -> 返回值类型:
pass
```
### 模块


### 异常
```
try:
print("=======================")
# print(my_name)
# print( 1 / 0)
print("aaa".hello)
print("=======================")
except NameError as e: # 捕获NameError异常
print(f"名字不存在,异常信息:{e}")
except ZeroDivisionError as e: # 捕获ZeroDivisionError异常
print(f"0不能做除数,异常信息:{e}")
except Exception as e:
print(f"程序出错了,异常信息:{e}")
finally:
print("资源释放")
```
# Python进阶语法