Python 函數魔法書:基礎、范例、避坑、測驗與項目實戰

Python 函數魔法書:基礎、范例、避坑、測驗與項目實戰


內容簡介

本系列文章是為 Python3 學習者精心設計的一套全面、實用的學習指南,旨在幫助讀者從基礎入門到項目實戰,全面提升編程能力。文章結構由 5 個版塊組成,內容層層遞進,邏輯清晰。

  1. 基礎速通n 個濃縮提煉的核心知識點,夯實編程基礎;
  2. 經典范例10 個貼近實際的應用場景,深入理解 Python3 的編程技巧和應用方法;
  3. 避坑寶典10 個典型錯誤解析,提供解決方案,幫助讀者避免常見的編程陷阱;
  4. 水平考試30 道測試題目,檢驗學習成果,附有標準答案,以便自我評估;
  5. 實戰案例3 個迷你項目開發,帶領讀者從需求分析到代碼實現,掌握項目開發的完整流程。

無論你是 Python3 初學者,還是希望提升實戰能力的開發者,本系列文章都能為你提供清晰的學習路徑和實用的編程技巧,助你快速成長為 Python3 編程高手。


閱讀建議

  • 初學者:建議從 “基礎速通” 開始,系統學習 Python3 的基礎知識,然后通過 “經典范例”“避坑寶典” 加深理解,最后通過 “水平考試”“實戰案例” 鞏固所學內容;
  • 有經驗的開發者:可以直接跳轉到 “經典范例”“避坑寶典”,快速掌握 Python3 的高級應用技巧和常見錯誤處理方法,然后通過 “實戰案例” 提升項目開發能力;
  • 選擇性學習:如果讀者對某個特定主題感興趣,可以直接選擇相應版塊學習。各版塊內容既相互獨立又邏輯關聯,方便讀者根據自身需求靈活選擇;
  • 測試與鞏固:完成每個版塊的學習后,建議通過 “水平考試” 檢驗學習效果,并通過 “實戰案例” 將理論知識轉化為實際技能;
  • 項目實戰優先:如果你更傾向于實戰學習,可以直接從 “實戰案例” 入手,邊做邊學,遇到問題再回溯相關知識點。

一、基礎速通

在 Python 中,函數是一段可重復使用的代碼塊,用于執行特定任務。通過定義函數,你可以將代碼模塊化,提升代碼的可讀性和維護性。

定義函數

使用 def 關鍵字定義函數,語法如下:

def 函數名(參數1, 參數2, ...):# 函數體return 返回值
  • 函數名:函數的名稱,需遵循變量命名規則。
  • 參數:傳遞給函數的值,可選。
  • 函數體:函數執行的代碼塊。
  • return:返回結果,可選。

示例

以下是一個簡單的函數示例:

def greet(name):return f"Hello, {name}!"# 調用函數
message = greet("Alice")
print(message)  # 輸出: Hello, Alice!

參數類型

  1. 位置參數:按順序傳遞。
  2. 關鍵字參數:通過參數名指定。
  3. 默認參數:定義時指定默認值。
  4. 可變參數
    • *args:接收任意數量的位置參數,作為元組。
    • **kwargs:接收任意數量的關鍵字參數,作為字典。

示例:多種參數

def describe_pet(pet_name, animal_type='dog'):print(f"I have a {animal_type} named {pet_name}.")# 使用默認參數
describe_pet("Buddy")  # 輸出: I have a dog named Buddy.# 使用關鍵字參數
describe_pet(animal_type="cat", pet_name="Whiskers")  # 輸出: I have a cat named Whiskers.

返回值

函數可以返回一個或多個值。使用 return 語句返回值,未指定時返回 None

示例:返回多個值

def get_user_info():name = "Alice"age = 30return name, age# 調用函數并接收返回值
user_name, user_age = get_user_info()
print(f"Name: {user_name}, Age: {user_age}")  # 輸出: Name: Alice, Age: 30

總結

  • 函數通過 def 定義,可接受參數并返回值。
  • 參數類型包括位置參數、關鍵字參數、默認參數和可變參數。
  • 使用 return 返回值,未指定時返回 None

函數是 Python 編程中的核心工具,能有效提升代碼的模塊化和可維護性。


二、經典范例

以下是 10 個 Python 函數使用的經典范例,每個范例都包含完整的程序代碼、代碼解釋說明、測試案例以及程序執行結果。這些案例可供初學者模仿和學習,從而快速掌握函數的編寫方法,為進階學習打下堅實的基礎。

溫馨提示:這里有一個認知誤區。千萬不要認為以下函數太簡單,函數編寫的精髓就是:函數體要小,就是幾行語句。這樣就可以顯著提高代碼的重用效率。這就是為什么你看到的函數代碼,總是很簡單的根本原因。


1. 計算階乘

def factorial(n):if n == 0:return 1else:return n * factorial(n - 1)# 測試
result = factorial(5)
print(result)  # 輸出: 120

解釋:

  • 使用遞歸計算階乘。
  • 測試案例:factorial(5),結果為 120

2. 反轉字符串

def reverse_string(s):return s[::-1]# 測試
result = reverse_string("hello")
print(result)  # 輸出: olleh

解釋:

  • 使用切片操作反轉字符串。
  • 測試案例:reverse_string("hello"),結果為 olleh

3. 合并兩個字典

def merge_dicts(d1, d2):return {**d1, **d2}# 測試
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
result = merge_dicts(dict1, dict2)
print(result)  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

解釋:

  • 使用 ** 解包操作符合并兩個字典。
  • 測試案例:merge_dicts(dict1, dict2),結果為 {'a': 1, 'b': 2, 'c': 3, 'd': 4}

4. 檢查字符串是否為回文

def is_palindrome(s):return s == s[::-1]# 測試
print(is_palindrome("madam"))  # 輸出: True
print(is_palindrome("hello"))  # 輸出: False

解釋:

  • 判斷字符串是否與其反轉字符串相等。
  • 測試案例:is_palindrome("madam") 返回 Trueis_palindrome("hello") 返回 False

5. 計算兩個數的最大公約數(GCD)

def gcd(a, b):while b:a, b = b, a % breturn a# 測試
result = gcd(48, 18)
print(result)  # 輸出: 6

解釋:

  • 使用歐幾里得算法計算兩個數的最大公約數。
  • 測試案例:gcd(48, 18),結果為 6

6. 將列表中的元素去重

def remove_duplicates(lst):return list(set(lst))# 測試
result = remove_duplicates([1, 2, 2, 3, 4, 4, 5])
print(result)  # 輸出: [1, 2, 3, 4, 5]

解釋:

  • 使用 set 去重,然后轉換回列表。
  • 測試案例:remove_duplicates([1, 2, 2, 3, 4, 4, 5]),結果為 [1, 2, 3, 4, 5]

7. 將字符串轉換為整數

def str_to_int(s):return int(s)# 測試
result = str_to_int("123")
print(result)  # 輸出: 123

解釋:

  • 使用 int() 函數將字符串轉換為整數。
  • 測試案例:str_to_int("123"),結果為 123

8. 計算列表中元素的平方

def square_list(lst):return [x**2 for x in lst]# 測試
result = square_list([1, 2, 3, 4, 5])
print(result)  # 輸出: [1, 4, 9, 16, 25]

解釋:

  • 使用列表推導式計算列表中每個元素的平方。
  • 測試案例:square_list([1, 2, 3, 4, 5]),結果為 [1, 4, 9, 16, 25]

9. 計算字符串中每個字符的出現次數

def count_characters(s):return {char: s.count(char) for char in set(s)}# 測試
result = count_characters("hello")
print(result)  # 輸出: {'h': 1, 'e': 1, 'l': 2, 'o': 1}

解釋:

  • 使用字典推導式計算字符串中每個字符的出現次數。
  • 測試案例:count_characters("hello"),結果為 {'h': 1, 'e': 1, 'l': 2, 'o': 1}

10. 將列表中的元素按升序排序

def sort_list(lst):return sorted(lst)# 測試
result = sort_list([3, 1, 4, 1, 5, 9, 2])
print(result)  # 輸出: [1, 1, 2, 3, 4, 5, 9]

解釋:

  • 使用 sorted() 函數對列表進行升序排序。
  • 測試案例:sort_list([3, 1, 4, 1, 5, 9, 2]),結果為 [1, 1, 2, 3, 4, 5, 9]

以上是 10 個 Python 函數的經典范例,涵蓋了常見的編程任務和算法。每個范例都附有詳細的解釋和測試案例,方便理解和實踐。


三、避坑寶典

在 Python 函數使用中,常見的錯誤包括語法錯誤、邏輯錯誤和運行時錯誤。以下是 10 種經典錯誤或者警告及其解決方法。


1. 忘記返回值

錯誤代碼:

def add(a, b):result = a + bprint(add(2, 3))  # 輸出: None

錯誤原因:
函數沒有使用 return 返回值,默認返回 None

糾正方法:
添加 return 語句。

正確代碼:

def add(a, b):return a + bprint(add(2, 3))  # 輸出: 5

2. 函數參數順序錯誤

錯誤代碼:

def greet(name, message):print(f"{message}, {name}!")greet("Hello", "Alice")  # 輸出: Alice, Hello!

錯誤原因:
參數順序與函數定義不匹配。

糾正方法:
調整參數順序或使用關鍵字參數。

正確代碼:

greet(name="Alice", message="Hello")  # 輸出: Hello, Alice!

3. 默認參數為可變對象

錯誤代碼:

def add_item(item, items=[]):items.append(item)return itemsprint(add_item(1))  # 輸出: [1]
print(add_item(2))  # 輸出: [1, 2]

錯誤原因:
默認參數 items=[] 是可變對象,會在多次調用中共享。

糾正方法:
使用 None 作為默認值,并在函數內初始化。

正確代碼:

def add_item(item, items=None):if items is None:items = []items.append(item)return itemsprint(add_item(1))  # 輸出: [1]
print(add_item(2))  # 輸出: [2]

4. 未處理函數參數類型

錯誤代碼:

def divide(a, b):return a / bprint(divide(10, 0))  # ZeroDivisionError

錯誤原因:
未檢查除數是否為零。

糾正方法:
添加參數檢查。

正確代碼:

def divide(a, b):if b == 0:return "Error: Division by zero"return a / bprint(divide(10, 0))  # 輸出: Error: Division by zero

5. 函數名與內置函數沖突

錯誤代碼:

def sum(lst):return sum(lst)  # RecursionErrorprint(sum([1, 2, 3]))

錯誤原因:
函數名 sum 與內置函數 sum 沖突,導致遞歸調用。

糾正方法:
避免使用內置函數名。

正確代碼:

def my_sum(lst):return sum(lst)print(my_sum([1, 2, 3]))  # 輸出: 6

6. 未捕獲異常

錯誤代碼:

def get_value(d, key):return d[key]print(get_value({"a": 1}, "b"))  # KeyError

錯誤原因:
未處理字典中不存在的鍵。

糾正方法:
使用 try-except 捕獲異常。

正確代碼:

def get_value(d, key):try:return d[key]except KeyError:return "Key not found"print(get_value({"a": 1}, "b"))  # 輸出: Key not found

7. 遞歸深度過大

錯誤代碼:

def factorial(n):return n * factorial(n - 1)print(factorial(5))  # RecursionError

錯誤原因:
遞歸沒有終止條件,導致棧溢出。

糾正方法:
添加遞歸終止條件。

正確代碼:

def factorial(n):if n == 0:return 1return n * factorial(n - 1)print(factorial(5))  # 輸出: 120

8. 變量作用域錯誤

錯誤代碼:

def set_value():value = 10set_value()
print(value)  # NameError

錯誤原因:
value 是局部變量,不能在函數外訪問。

糾正方法:
使用返回值或全局變量。

正確代碼:

def set_value():return 10value = set_value()
print(value)  # 輸出: 10

9. 未處理可變參數

錯誤代碼:

def print_args(*args):print(args)print_args(1, 2, 3)  # 輸出: (1, 2, 3)
print_args([1, 2, 3])  # 輸出: ([1, 2, 3],)

錯誤原因:
未正確處理列表作為可變參數。

糾正方法:
使用 * 解包列表。

正確代碼:

print_args(*[1, 2, 3])  # 輸出: (1, 2, 3)

10. 未處理關鍵字參數

錯誤代碼:

def print_kwargs(**kwargs):print(kwargs)print_kwargs(a=1, b=2)  # 輸出: {'a': 1, 'b': 2}
print_kwargs({"a": 1, "b": 2})  # TypeError

錯誤原因:
未正確處理字典作為關鍵字參數。

糾正方法:
使用 ** 解包字典。

正確代碼:

print_kwargs(**{"a": 1, "b": 2})  # 輸出: {'a': 1, 'b': 2}

四、水平考試

Python 函數測試試卷及答案。其中選擇題15題、填空題10題、編程題5題,每題后附有答案。試卷滿分為100分。


(一)選擇題(每題 2 分,共 30 分)

  1. 以下哪個關鍵字用于定義函數?
    A. func
    B. def
    C. function
    D. define
    答案:B

  2. 以下哪個函數可以返回多個值?
    A. 只能返回一個值
    B. 使用 return 返回多個值,以元組形式返回
    C. 使用 yield 返回多個值
    D. 使用 break 返回多個值
    答案:B

  3. 以下代碼的輸出是什么?

    def greet(name="World"):return f"Hello, {name}!"
    print(greet())
    

    A. Hello, World!
    B. Hello, name!
    C. 報錯
    D. Hello, !
    答案:A

  4. 以下哪個函數參數類型可以接受任意數量的關鍵字參數?
    A. *args
    B. **kwargs
    C. *kwargs
    D. **args
    答案:B

  5. 以下代碼的輸出是什么?

    def add(a, b=2):return a + b
    print(add(3))
    

    A. 5
    B. 3
    C. 報錯
    D. None
    答案:A

  6. 以下哪個函數可以用于計算列表的長度?
    A. count()
    B. len()
    C. size()
    D. length()
    答案:B

  7. 以下代碼的輸出是什么?

    def multiply(a, b):return a * b
    print(multiply(3, 4))
    

    A. 12
    B. 7
    C. 34
    D. 報錯
    答案:A

  8. 以下哪個函數可以用于對列表進行排序?
    A. sort()
    B. sorted()
    C. order()
    D. arrange()
    答案:B

  9. 以下代碼的輸出是什么?

    def func(*args):return sum(args)
    print(func(1, 2, 3))
    

    A. 6
    B. (1, 2, 3)
    C. 報錯
    D. None
    答案:A

  10. 以下哪個函數可以用于將字符串轉換為整數?
    A. int()
    B. str()
    C. float()
    D. bool()
    答案:A

  11. 以下代碼的輸出是什么?

    def greet(name):return f"Hello, {name}!"
    print(greet("Alice"))
    

    A. Hello, Alice!
    B. Hello, name!
    C. 報錯
    D. Hello, !
    答案:A

  12. 以下哪個函數可以用于反轉列表?
    A. reverse()
    B. reversed()
    C. flip()
    D. invert()
    答案:B

  13. 以下代碼的輸出是什么?

    def func(a, b, c=3):return a + b + c
    print(func(1, 2))
    

    A. 6
    B. 3
    C. 報錯
    D. None
    答案:A

  14. 以下哪個函數可以用于將列表轉換為元組?
    A. list()
    B. tuple()
    C. set()
    D. dict()
    答案:B

  15. 以下代碼的輸出是什么?

    def func(a, b):return a * b
    print(func(b=3, a=2))
    

    A. 6
    B. 5
    C. 報錯
    D. None
    答案:A


(二)填空題(每題 3 分,共 30 分)

  1. 定義一個函數 greet,接受一個參數 name,并返回 Hello, {name}!

    def greet(name):return f"Hello, {name}!"
    

    答案:def greet(name): return f"Hello, {name}!"

  2. 以下代碼的輸出是什么?

    def add(a, b):return a + b
    print(add(2, 3))
    

    答案:5

  3. 以下代碼的輸出是什么?

    def func(*args):return len(args)
    print(func(1, 2, 3))
    

    答案:3

  4. 以下代碼的輸出是什么?

    def func(a, b=2):return a * b
    print(func(3))
    

    答案:6

  5. 以下代碼的輸出是什么?

    def func(a, b, c=3):return a + b + c
    print(func(1, 2, 4))
    

    答案:7

  6. 以下代碼的輸出是什么?

    def func(a, b):return a ** b
    print(func(2, 3))
    

    答案:8

  7. 以下代碼的輸出是什么?

    def func(a, b):return a // b
    print(func(10, 3))
    

    答案:3

  8. 以下代碼的輸出是什么?

    def func(a, b):return a % b
    print(func(10, 3))
    

    答案:1

  9. 以下代碼的輸出是什么?

    def func(a, b):return a / b
    print(func(10, 2))
    

    答案:5.0

  10. 以下代碼的輸出是什么?

    def func(a, b):return a - b
    print(func(10, 3))
    

    答案:7


(三)編程題(每題 8 分,共 40 分)

  1. 編寫一個函數 is_even,判斷一個整數是否為偶數。如果是偶數,返回 True,否則返回 False

    答案

    def is_even(n):return n % 2 == 0
    
  2. 編寫一個函數 factorial,計算一個整數的階乘。

    答案

    def factorial(n):if n == 0:return 1else:return n * factorial(n - 1)
    
  3. 編寫一個函數 reverse_string,反轉一個字符串。
    答案

    def reverse_string(s):return s[::-1]
    
  4. 編寫一個函數 find_max,接受任意數量的參數,返回其中的最大值。

    答案

    def find_max(*args):return max(args)
    
  5. 編寫一個函數 count_vowels,統計字符串中元音字母(a, e, i, o, u)的個數。
    答案

    def count_vowels(s):vowels = "aeiou"return sum(1 for char in s if char in vowels)
    

總分:100 分


五、實戰案例

本節內容包含 3 編程學習案例,具體項目如下:

  1. 簡易聊天機器人
  2. 待辦事項提醒器
  3. 密碼生成器

項目 1:簡易聊天機器人

功能描述:
實現一個簡易聊天機器人,根據用戶輸入返回預設的響應。

代碼:

def chatbot_response(user_input):responses = {"hello": "Hello! How can I help you?","how are you": "I'm just a bot, but I'm doing great!","bye": "Goodbye! Have a nice day!","default": "I'm not sure how to respond to that."}return responses.get(user_input.lower(), responses["default"])# 測試案例
print(chatbot_response("Hello"))  # 輸出: Hello! How can I help you?
print(chatbot_response("How are you"))  # 輸出: I'm just a bot, but I'm doing great!
print(chatbot_response("What's your name?"))  # 輸出: I'm not sure how to respond to that.

執行結果:

Hello! How can I help you?
I'm just a bot, but I'm doing great!
I'm not sure how to respond to that.

項目 2:簡易待辦事項提醒器

功能描述:
實現一個簡易待辦事項提醒器,支持添加任務、設置提醒時間,并在指定時間提醒用戶。

代碼:

import time
from datetime import datetimedef add_task(tasks, task, reminder_time):tasks.append({"task": task, "reminder_time": reminder_time})def check_reminders(tasks):current_time = datetime.now()for task in tasks:if current_time >= task["reminder_time"]:print(f"Reminder: {task['task']} is due now!")tasks.remove(task)# 測試案例
tasks = []
add_task(tasks, "Buy groceries", datetime(2025, 1, 27, 10, 26))  # 設置提醒時間為 2025-1-27 10:26
add_task(tasks, "Read a book", datetime(2025, 1, 27, 10, 28))    # 設置提醒時間為 2025-1-27 10:28while tasks:check_reminders(tasks)time.sleep(60)  # 每分鐘檢查一次

執行結果:

Reminder: Buy groceries is due now!  # 當時間到達 2025-1-27 10:26 時輸出
Reminder: Read a book is due now!    # 當時間到達 2025-1-27 10:28 時輸出

項目 3:密碼生成器

功能描述:
實現一個密碼生成器,生成包含大小寫字母、數字和特殊字符的隨機密碼。

代碼:

import random
import stringdef generate_password(length=12):characters = string.ascii_letters + string.digits + string.punctuationpassword = ''.join(random.choice(characters) for _ in range(length))return password# 測試案例
print("Generated Password:", generate_password())  # 輸出: 隨機生成的密碼,如 "A1b@C3d$E5f^"

執行結果:

Generated Password: A1b@C3d$E5f^

總結

以上 5 個迷你項目涵蓋了密碼生成、待辦事項提醒、聊天機器人、等新穎且實用的功能。每個項目都附有測試案例和執行結果,適合用于學習和練習 Python 函數的綜合應用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67351.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67351.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67351.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Windows系統中本地部署屬于自己的大語言模型(Ollama + open-webui + deepseek-r1)

文章目錄 1 在Windows系統中安裝Ollama,并成功啟動;2 非docker方式安裝open-webui3下載并部署模型deepseek-r1 Ollama Ollama 是一個命令行工具,用于管理和運行機器學習模型。它簡化了模型的下載與部署,支持跨平臺使用&#xff0c…

React中的JavaScript語法

最近在看《深入淺出react和redux》。其實react-redux采用的單相流flux是對傳統mvc的一種改進,而Qt的qml遵循的是傳統mvc,已有類似flux的Qt-qml實現,比如:GitHub - benlau/quickflux: A Flux implementation for QML。為了更好理解…

ProGen生成功能蛋白序列

LLM在包括蛋白質設計等各種生物技術應用中展現出了潛力。ProGen是一種語言模型,它能夠生成在大型蛋白質家族中具有可預測功能的蛋白質序列,這類似于針對不同主題生成語法和語義正確的自然語言句子。該模型在來自超過19,000個家族的2.8億個蛋白質序列上進…

省級數字經濟發展水平數據(2011-2022年)-社科數據

省級數字經濟發展水平數據(2011-2022年)-社科數據https://download.csdn.net/download/paofuluolijiang/90028602 https://download.csdn.net/download/paofuluolijiang/90028602 數字經濟是指以數據資源為關鍵要素、以現代信息網絡為主要載體、以信息…

Leecode刷題C語言之跳躍游戲②

執行結果:通過 執行用時和內存消耗如下&#xff1a; int jump(int* nums, int numsSize) {int position numsSize - 1;int steps 0;while (position > 0) {for (int i 0; i < position; i) {if (i nums[i] > position) {position i;steps;break;}}}return steps…

《多線程基礎之條件變量》

【條件變量導讀】條件變量是多線程中比較靈活而且容易出錯的線程同步手段&#xff0c;比如&#xff1a;虛假喚醒、為啥條件變量要和互斥鎖結合使用&#xff1f;windows和linux雙平臺下&#xff0c;初始化、等待條件變量的api一樣嗎&#xff1f; 本文將分別為您介紹條件變量在w…

【信息系統項目管理師-選擇真題】2009上半年綜合知識答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 【第1題】【第2~3題】【第4題】【第5題】【第6題】【第7題】【第8題】【第9題】【第10題】【第11題】【第12題】【第13題】【第14題】【第15題】【第16題】【第17題】【第18題】【第19題】【第20題】【第21題】…

消息隊列篇--通信協議篇--TCP和UDP(3次握手和4次揮手,與Socket和webSocket的概念區別等)

1、TCP和UDP概述 TCP&#xff08;傳輸控制協議&#xff0c;Transmission Control Protocol&#xff09;和UDP&#xff08;用戶數據報協議&#xff0c;User Datagram Protocol&#xff09;都算是最底層的通信協議&#xff0c;它們位于OSI模型的傳輸層。*傳輸層的主要職責是確保…

mysql_store_result的概念和使用案例

mysql_store_result() 是 MySQL C API 中的一個函數&#xff0c;用于檢索一個完整的結果集到一個客戶端。當執行一個查詢&#xff08;通常是 SELECT 查詢&#xff09;并希望處理所有返回的數據時&#xff0c;可以使用此函數。 概念 mysql_store_result() 函數的原型如下&…

React Router v6配置路由守衛

首先準備好以下頁面 登錄頁&#xff1a;用戶可以在此頁面登錄。 受保護頁&#xff1a;只有登錄的用戶可以訪問&#xff0c;否則會重定向到登錄頁。 公共頁面&#xff1a;不需要鑒權&#xff0c;任何人都可以訪問。 1. 安裝依賴 首先&#xff0c;我們需要安裝 react-router-do…

打破傳統束縛:領略 Web3 獨特魅力

在互聯網發展的歷程中&#xff0c;我們見證了Web1和Web2的變遷。Web1是靜態信息的展示平臺&#xff0c;Web2則引領了社交互動和內容創作的繁榮&#xff0c;而如今&#xff0c;Web3作為新時代的互聯網架構&#xff0c;正逐漸展現出其獨特的魅力&#xff0c;帶領我們走向一個更加…

[論文總結] 深度學習在農業領域應用論文筆記14

當下&#xff0c;深度學習在農業領域的研究熱度持續攀升&#xff0c;相關論文發表量呈現出迅猛增長的態勢。但繁榮背后&#xff0c;質量卻不盡人意。相當一部分論文內容空洞無物&#xff0c;缺乏能夠落地轉化的實際價值&#xff0c;“湊數” 的痕跡十分明顯。在農業信息化領域的…

Linux 學習筆記__Day3

十八、設置虛擬機的靜態IP 1、VMware的三種網絡模式 安裝VMware Workstation Pro之后&#xff0c;會在Windows系統中虛擬出兩個虛擬網卡&#xff0c;如下&#xff1a; VMware提供了三種網絡模式&#xff0c;分別是&#xff1a;橋接模式&#xff08;Bridged&#xff09;、NAT…

QT+mysql+python 效果:

# This Python file uses the following encoding: utf-8 import sysfrom PySide6.QtWidgets import QApplication, QWidget,QMessageBox from PySide6.QtGui import QStandardItemModel, QStandardItem # 導入需要的類# Important: # 你需要通過以下指令把 form.ui轉為ui…

筆記本跑大模型嘗試

1&#xff0c;筆記本電腦資源 我是一臺聯想筆記本電腦&#xff0c;基本配置如下&#xff1a; CPU&#xff1a;12th Gen Intel(R) Core(TM) i7-1255U 1.70 GHz (12核心&#xff0c;2個P核和8個E核&#xff0c;共計10個核心) 顯卡&#xff1a;NVIDIA GeForce MX550 內存&am…

C語言實現掃雷游戲(有展開一片和標記雷的功能)

實現準備 分2個.c源文件和1個.h頭文件去寫代碼 test.c 對掃雷游戲進行測試game.c 掃雷游戲功能的實現game.h 掃雷游戲功能的聲明 掃雷游戲 1.test.c對掃雷游戲進行測試 首先我們要先把玩游戲的框架寫出來&#xff0c;然后一步一步去完成其功能 跟著下面的代碼的節奏走一步一步…

GitHub 倉庫的 Archived 功能詳解:中英雙語

GitHub 倉庫的 Archived 功能詳解 一、什么是 GitHub 倉庫的 “Archived” 功能&#xff1f; 在 GitHub 上&#xff0c;“Archived” 是一個專門用于標記倉庫狀態的功能。當倉庫被歸檔后&#xff0c;它變為只讀模式&#xff0c;所有的功能如提交代碼、創建 issue 和 pull req…

基礎IO(2)

基礎IO&#xff08;2&#xff09; 理解“?切皆?件” ?先&#xff0c;在windows中是?件的東西&#xff0c;它們在linux中也是?件&#xff1b;其次?些在windows中不是?件的東西&#xff0c;?如進程、磁盤、顯?器、鍵盤這樣硬件設備也被抽象成了?件&#xff0c;你可以使…

Transformation,Animation and Viewing

4 Transformation&#xff0c;Animation and Viewing 聲明&#xff1a;該代碼來自&#xff1a;Computer Graphics Through OpenGL From Theory to Experiments&#xff0c;僅用作學習參考 4.1 Modeling Transformations 平移、縮放和旋轉&#xff0c;即 OpenGL 的建模轉換&…

Deepseek的RL算法GRPO解讀

在本文中&#xff0c;我們將深入探討Deepseek采用的策略優化方法GRPO&#xff0c;并順帶介紹一些強化學習&#xff08;Reinforcement Learning, RL&#xff09;的基礎知識&#xff0c;包括PPO等關鍵概念。 策略函數&#xff08;policy&#xff09; 在強化學習中&#xff0c; a…