python 基礎 迭代,函式與引數

2021-09-28 19:57:25 字數 2292 閱讀 1241

# 最簡單的

# 使用for為物件生成可迭代物件 __next__(), 迭代器物件

nums =[1

,2,3

,4]for n in nums:

print

(n)# 輸出 1 2 3 4

# 使用__next__()迭代

iter

(nums)

.__next__(

)# 可迭代方法

# map

nums_str =

list

(map

(str

, nums)

)#['1','2','3','4']

# zip

# [('a','1'), ('b', '2'),('c', '3'),('d','4')]

nums_zip =

list

(zip([

'a',

'b',

'c',

'd']

, nums)

)# filter

defis_odd

(n):

return n %2==

1# 保留 true(1) 因為if 1 返回true

nums_odd =

list

(filter

(is_odd, nums)

)

python 函式使用 def 開始函式定義,接著是函式名,括號內部為函式的引數。

函式的返回:以return 返回值並終止函式,yield 只返回值並不終止函式。

def

my_iter()

:for i in

range(10

):return

1def

my_yield()

:for i in

range(10

):yield i

my_iter(

)# 就是個int

for item in my_iter():

# 報錯 'int' object is not iterable

print

(item)

for item in my_yield():

print

(item)

# 輸出0,1,2,3,4,5,6,7,8,9

函式中的引數:可變型別和不可變型別

# 不可變型別 string

input_str =

'hello'

defmyadd

(n):

n +=

'end'

return

# myadd(input_str )

print

(input_str )

# hello

input_list =

['hello'

]def

myadd2

(n):

'end'

)return

myadd2(input_list)

print

(input_list)

# ['hello', 'end]

# 若不想改變傳入的引數,傳入副本

myadd2(input_list[:]

) myadd2(input_list.copy(

))

引數的作用域(由大到小):

built-in

global

enclousure (nolocal)

local

x =

5def

func()

: x =

99print

(x)func(

)# 輸出99 x還是為5

# global # 可以使用在任意位置

x =5

deffunc1()

:global x

x =99print

(x)func1(

)# x 變為 99

# nolocal 只能使用在巢狀函式中

deffunc2()

: x =

5def

core()

: nolocal x

x =99 core(

)print

(x)# 99

func(

)

python基礎5 迭代,函式定義與引數

10 迭代 python中哪些可以用迭代迴圈?實現了迭代協議的物件。迭代協議原理 next 可獲取下乙個元素 1 迭代協議 next 2 迭代工具 for 推導 map map 迭代器物件 已經實現 可迭代物件 iter 用於生成迭代器 iter 3 內建可迭代物件 range map zip 11...

python語法基礎 4 函式與函式引數

關鍵字def 函式名 函式體 例子如下 func 函式體關鍵字return return的內容返回函式的呼叫 return下方 不執行,可以終止函式,不可以終止終止迴圈 return 返回多個內容的時候是元祖形式 return 沒有寫返回值的時候是none 不寫返回值時也是none 形參 是指函式定...

Python基礎 函式 函式引數

引數就是傳入的值 示例 usr bin env python3 coding utf 8 函式的引數和預設引數 defregist name,age,city shenzhen print name name print age age print city city 執行結果 d pythonpr...