一、函數基礎
-
函數是什么? 想象你每天都要重復做同一件事,比如泡咖啡。函數就像你寫好的泡咖啡步驟說明書,每次需要時直接按步驟執行,不用重新想流程。
# 定義泡咖啡的函數 def make_coffee(sugar=1): # 默認加1勺糖 print("燒水...") print("放入咖啡粉...") print(f"加{sugar}勺糖") return "一杯咖啡做好了?" # 調用函數 my_coffee = make_coffee(2) print(my_coffee)
-
函數的參數與返回值
-
參數類型
-
必須參數:調用時必須傳遞(如make_coffee(2)里的2)
-
默認參數:不傳值時使用默認值(如sugar=1)
-
可變參數:接收任意數量參數(*args用于元組,**kwargs用于字典)
def student_info(name, age, *hobbies, **scores): print(f"姓名:{name}, 年齡:{age}") print("愛好:", hobbies) print("成績:", scores) student_info("小明", 18, "籃球", "編程", 數學=90, 英語=85)
-
返回值
-
用return返回結果,可返回多個值(實際是元組)
-
無return時函數返回None
def calculator(a, b): add = a + b subtract = a - b return add, subtract result = calculator(10, 5) print(result) # 輸出 (15, 5)
-
變量的作用域
-
局部變量:函數內部定義的變量(如函數內的add)
-
全局變量:函數外部定義的變量(需用global關鍵字修改)
count = 0 # 全局變量 def increment(): global count count += 1 print(f"當前計數:{count}") increment() # 輸出 1
互動問題:如果去掉global count會報錯嗎?為什么?
二、常用數據結構
-
列表(List)
-
特點:可修改、有序、元素可重復
-
常用操作:增刪改查
shopping_list = ["蘋果", "牛奶"] shopping_list.append("面包") # 添加元素 shopping_list[1] = "酸奶" # 修改元素 shopping_list.pop() # 刪除最后一個元素 print(shopping_list) # 輸出 ['蘋果', '酸奶']
-
字典(Dictionary)
-
特點:鍵值對結構,鍵不可重復
-
應用場景:存儲用戶信息、配置參數
user = { "name": "李華", "age": 25, "is_vip": True } print(user["name"]) # 輸出 李華 user["email"] = "lihua@example.com" # 添加新鍵值對
-
元組(Tuple)與集合(Set)
-
元組:不可修改的列表,用圓括號定義
-
集合:自動去重,支持交集、并集操作
# 元組示例 colors = ("紅色", "藍色", "綠色") print(colors[0]) # 輸出 紅色 # 集合示例 fruit_set = {"蘋果", "香蕉", "蘋果", "橙子"} print(fruit_set) # 輸出 {'蘋果', '香蕉', '橙子'}
三、綜合案例:學生成績管理系統
students = [] def add_student(name, score): students.append({"name": name, "score": score}) def show_ranking(): sorted_students = sorted(students, key=lambda x: x["score"], reverse=True) for student in sorted_students: print(f"{student['name']}: {student['score']}分") # 添加學生 add_student("張三", 85) add_student("李四", 92) add_student("王五", 78) # 顯示排名 show_ranking()
輸出結果:
李四: 92分 張三: 85分 王五: 78分
思考題:如何修改代碼實現按姓名排序?