- 無參,無值
- 無參,有值
- 有參,有值
- 有參,無值
我給出了如下的總結:此類函式,不接收引數,也沒有返回值,應用場景如下:
只是單純地做一件事情,例如顯示選單
在函式內部針對全域性變數進行操作,例如:新建名片,最終結果記錄在全域性變數中
注意:此類函式,不接收引數,但是有返回值,應用場景如下:
此類函式,接收引數,沒有返回值,應用場景如下:
此類函式,接收引數,同時有返回值,應用場景如下:
def measuer():
print("開始...")
temp = 30
wetness = 50
print("結束...")
#元祖可以使用多個資料,所以可以放回多個值
# 如果函式返回的元祖,我們可以丟掉小括號
return temp,wetness
result = measuer()
print(result)
# 單獨的拿出來元素,但是不是恆方便
print(result[0])
# 我們可以使用多個變數一次接受返回自
gl_temp,gl_wetbess = measuer()
print(gl_temp)
print(gl_wetbess)
題目要求
有兩個整數變數a = 6
,b = 100
不使用其他變數,交換兩個變數的值
解法 1 —— 使用其他變數
# 解法 1 - 使用臨時變數
c = b
b = a
a = c
解法 2 —— 不使用臨時變數
# 解法 2 - 不使用臨時變數
a = a + b
b = a - b
a = a - b
解法 3 —— python 專有,利用元組
a, b = b, a
注意哈,我們這裡的知識和之前說過的變數有關!問題 1:在函式內部,針對引數使用賦值語句,會不會影響呼叫函式時傳遞的實參變數? —— 不會!
def demo(num, num_list):
print("函式內部")
# 賦值語句
num = 200
num_list = [1, 2, 3]
print(num)
print(num_list)
print("函式**完成")
gl_num = 99
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)
問題 2:如果傳遞的引數是可變型別,在函式內部,使用方法修改了資料的內容,同樣會影響到外部的資料
def mutable(num_list):
# num_list = [1, 2, 3]
num_list.extend([1, 2, 3])
print(num_list)
gl_list = [6, 7, 8]
mutable(gl_list)
print(gl_list)
def demo(num, num_list):
print("函式內部**")
# num = num + num
num += num
# num_list.extend(num_list) 由於是呼叫方法,所以不會修改變數的引用
# 函式執行結束後,外部資料同樣會發生變化
num_list += num_list
print(num)
print(num_list)
print("函式**完成")
gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)
所謂的預設,實際上,你可以理解為,預設值
gl_num_list = [6, 3, 9]
# 預設就是公升序排序,因為這種應用需求更多
gl_num_list.sort()
print(gl_num_list)
# 只有當需要降序排序時,才需要傳遞 `reverse` 引數
gl_num_list.sort(reverse=true)
print(gl_num_list)
1. 首先,引數使用賦值語句,可以指定為預設值(預設值)
比如這個的**
def print_info(name, gender=true):
2. **必須保證** **帶有預設值的預設引數** **在引數列表末尾**
3. 在 **呼叫函式時**,如果有 **多個預設引數**,**需要指定引數名**,這樣直譯器才能夠知道引數的對應關係!
以下是具體的**案例
```python
def print_info(name, title="", gender=true):
""":param title: 職位
:param name: 班上同學的姓名
:param gender: true 男生 false 女生
"""gender_text = "男生"
if not gender:
gender_text = "女生"
print("%s%s 是 %s" % (title, name, gender_text))
print_info("小明")
print_info("老王", title="班長")
print_info("小美", gender=false)
如何定義乙個多值引數?
def demo(num, *args, **kwargs):
print(num)
print(args)
print(kwargs)
demo(1, 2, 3, 4, 5, name="小明", age=18, gender=true)
def demo(*args, **kwargs):
print(args)
print(kwargs)
# 需要將乙個元組變數/字典變數傳遞給函式對應的引數
gl_nums = (1, 2, 3)
gl_xiaoming =
# 會把 num_tuple 和 xiaomin, gl_xiaoming)
demo(*glg 作為元組傳遞個 args
# demo(gl_nums_nums, **gl_xiaoming)
它主要完成的是以下的任務:希望將乙個元組/字典變數直接傳遞給args/kwargs
其實這個是一種演算法。詳見我的部落格,演算法分類
Python函式引數傳遞的幾種形式
莫聽穿林打葉聲,何妨吟嘯且徐行。竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。位置傳參 實際呼叫引數 實參 的對應關係與形式引數 形參 的對應關係是按位置來依次對應的。def fx a,b,c pass fx 1,2,3 序列傳參 在函式呼叫過程中,用 將序列拆解 或收集 後按位置進行傳遞的傳參方式,def...
js函式的幾種引數形式
es6 預設引數特性允許使用預設值初始化引數。這種比上面介紹的方法更好 更簡潔。an highlighted block function parameter param1,param2 0 parameter 1 1 parameter 1 undefined 1function paramete...
Python 佔位的幾種運用形式
號佔位符 轉換形式 轉換標記 寬度 精確度 轉換型別 轉換標記 解釋樣例 左對齊 預設右對齊 print the number is 9f 1991 在正數後加上 print the number is 9f or 0.9f 1991,1991 a space 正數之前保留空格 print the ...