# 最簡單的
# 使用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...