函數是組織好的, 可重復使用, 用來實現單一,或相關功能的代碼段。
## 函數的定義
* 函數代碼塊以def 關鍵詞開頭, 后接函數標識符名稱和圓括號
* 任何傳入的參數和自變量放在圓括號中間。圓括號之間可以用于定義參數。
* 函數的第一行語句可以選擇性地使用文檔字符串-用于存放函數說明
* 函數內容以冒號開始,并且縮進
* `return [表達式]` 結束函數, 選擇性地返回一個值給調用方。不帶表達式的return 相當于返回None
語法:
```
def 函數名( 參數列表 ):
"函數_文檔字符串"
函數體
return [expression]
```
實例:
```
# 定義
def myfunc():
print("My Function")
# 調用
myfunc()
```
```
def max(a,b):
if a>b:
return a
else:
return b
a = 3
b = 4
print(max(a,b))
```
*****
在 Python 中,函數是一種可重復使用的代碼塊,它可以執行一個特定的任務。你可以在你的程序中任何地方調用一個函數,使得代碼更易讀,更易理解。
* 以 def 關鍵字開頭,后接函數標識符名稱和圓括號**()**
* 圓括號之間可以用于定義參數
* 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
* 函數內容以冒號起始,并且縮進
* return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None
Python 中的函數用 def 關鍵字定義,后面跟著函數名和括號。函數內的代碼塊應縮進。
這里有一個簡單的函數定義和調用的例子:
python
Copy code
# 定義一個函數
def greet():
print("Hello, world!")
# 調用這個函數
greet()
這個函數沒有參數,也沒有返回任何值。如果想要一個函數接受參數,我們可以在括號中指定參數,如下:
python
Copy code
# 定義一個接受參數的函數
def greet(name):
print("Hello, " + name + "!")
# 調用這個函數
greet("Alice")
如果要返回一個值,可以使用 return 關鍵字,如下所示:
python
Copy code
# 定義一個返回值的函數
def add_two_numbers(num1, num2):
return num1 + num2
# 調用這個函數并獲取返回值
sum = add_two_numbers(3, 4)
print(sum) # 輸出 7
在 Python 中,函數也可以接受可變數量的參數,有默認值的參數,甚至可以返回多個值。
## 參數傳遞
在Python 中, 類型屬于對象, 變量是沒有類型的。
`a=[1,2,3]`
* `[1,2,3]` 是List 類型
* 變量a 沒有類型
strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。
* 不可變類型: a=5 之后 a=10 , 新增一個int值對象, 5 被丟棄, 相當于新生成a
* 可變類型: a=[1,2,3,4] , 元素改變, 本身沒有變
參數傳遞:
* 不可變類型: 值傳遞
* 可變類型: 引用傳遞
python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。
## 參數類型
* 必備參數
* 關鍵字參數
```
#可寫函數說明
def printme( str ):
"打印任何傳入的字符串"
print str
return
#調用printme函數
printme( str = "My string")
```
* 默認參數
```
#可寫函數說明
def printinfo( name, age = 35 ):
"打印任何傳入的字符串"
print "Name: ", name
print "Age ", age
return
```
* 不定長參數
```
def functionname([formal_args,] *var_args_tuple ):
"函數_文檔字符串"
function_suite
return [expression]
```
加了星號(\*)的變量名會存放所有未命名的變量參數。
## 匿名函數
使用 lambda 來創建匿名函數
```
lambda [arg1 [,arg2,.....argn]]:expression
```
```
# 可寫函數說明
sum = lambda arg1, arg2: arg1 + arg2
# 調用sum函數
print "相加后的值為 : ", sum( 10, 20 )
print "相加后的值為 : ", sum( 20, 20 )
```
## return 語句
return語句\[表達式\]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None
## 變量作用域
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate