Python學習筆記 14

2021-09-19 07:51:42 字數 2541 閱讀 7208

本節主要有:

tips:如果不想改變原資料,傳遞引數時盡量用其副本

# 函式也是乙個物件

# 物件是記憶體中專門用來儲存資料的一塊區域

# 一切皆物件

# 函式的引數:

defrt

( a )

:print

('zzzz'

, a )

rt(3

)def

sum(a,b,c)

:print

(a*b*c)

sum(4,

5,8)

# 定義形參時可以指定默值,沒有傳遞對應引數,預設值生效

deffn

( a , b=

10, c=20)

:print

(a,b,c)

fn(a=

1, c=2)

fn(1,2

,5)# 實參的傳遞方式

# - 位置引數

# 形參和實參位置一一對應

# - 關鍵字引數

# 直接根據引數名傳遞引數

# 混合使用時,必須將位置引數寫在前面

fn(3

,c=1

)# 傳遞引數時,解析器不會檢查實參的型別,實參可以是任意型別的資料

defp()

:print

('hello'

)def

p1(a)

:# a當作乙個函式物件的引數

print

('a ='

, a)

a()p1(p)

deffn1

(a):

# 在方法中,通過形參修改物件時,會影響到所有指向該物件的變數

a[0]=

100print

('a='

,a)c =[1

,2,3

]fn1(c.copy())

# 用c的副本傳遞給a , c不會受到影響

print

('c='

,c)fn1(c[:]

)# 用c的切片傳遞給a , c不會受到影響

print

('c='

,c)fn1(c)

print

('c='

,c)# 不定長引數

# 在定義函式時,可以在形式引數前加上乙個*,

# 它將會將傳遞的實參儲存到乙個元組tuple中(裝包)

deffn2

(*nums)

:print

('nums ='

,nums,

type

(nums)

)def

fn3(

*nums)

: result =

0for n in nums :

result+=n

print

(result)

fn2(1,

2,3,

4,5,

6)fn3(1,

2,3,

4,5,

6)# 可變引數*b不是必須寫在最後,但它後面的實參傳遞時,必須以關鍵字形式傳遞

deffn

(a,*b,c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)fn(1,

2,3,

4,c=5)

# 如果形參開頭只寫乙個*,則所有的實參傳遞時,必須以關鍵字形式傳遞

deffn(*

,a,b,c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)fn(a=

1,b=

2,c=3)

# *形參只能接收位置引數

# **形參可以接收其他剩餘的關鍵字引數,儲存到乙個字典中,

# 字典key是引數的名字,value是引數的值

# **形參只能放在所有引數的最後

deffn3

(a,b,

**c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)fn3(

1,d=

4,b=

2,c=3)

# 引數的解包

deffn4

(a,b,c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)# 在傳遞實參時在序列前加上*,可以對序列進行解包後依次傳遞引數

t =(4,

5,6)

fn4(

*t)# 字典需要用**,字典中的key要與形式引數一一對應,傳遞的是value

d =fn4(

**d )

Python學習筆記14 模組

在python中所有的模組都被加入到了sys.path中,用下面的方法可以看見模組的位置。import sys import pprint pprint.pprint sys.path usr local python2.7 lib python27.zip usr local python2.7 ...

Python學習筆記(14)random模組

一 random模組 主要用來生成一些隨機數,一般有randint 隨機生成範圍內乙個整數 uniform 隨機生成範圍內乙個小數 choice 從給定的資料中隨機選擇乙個 sample l,num 從乙個list中隨機選擇num個數字並返回到乙個新的list中 import random numb...

Perl 學習筆記 14

system是呼叫shell的最簡單的方法。例如 system ls l home system date exec是 呼叫後不用管 的system。使用 env獲得環境變數。例如 env home rootbeer bin env path delete env my make result sy...