# 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 - 数据容器应用场景 ![数据容器应用场景.png](pic/%E6%95%B0%E6%8D%AE%E5%AE%B9%E5%99%A8%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF.png) ### 函数 - 函数基础 - 函数进阶 变量作用范围 ```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 ``` ### 模块 ![模块导入方法.png](pic/%E6%A8%A1%E5%9D%97%E5%AF%BC%E5%85%A5%E6%96%B9%E6%B3%95.png) ![导入包.png](pic/%E5%AF%BC%E5%85%A5%E5%8C%85.png) ### 异常 ``` 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进阶语法