Python-函數(上)詳解筆記

python學習網站推薦

一、set()
set:類似dict,是一組key的集合,不存儲value
本質:無序和無重複元素的集合
1.創建

#創建set需要一個list或者tuple或者dict作爲輸入集合
#重複元素在set中會自動被過濾
s1 = set([1,2,3,4,5,3,4,5])
print(s1)
s2 = set((1,2,3,3,2,1))
print(s2)
s3 = set({1:"good", 2:"nice"})
print(s3)

2.添加

s4 = set([1,2,3,4,5])
s4.add(6)
s4.add(3) #可以添加重複的,但是不會有效果
#s4.add([7,8,9]) #set的元素不能是列表,因爲列表是可變的
s4.add((7,8,9))
#s4.add({1:"a"}) #set的元素不能是字典,因爲字典是可變的
print(s4)

3.插入整個list、tuple、字符串,打碎插入

s5 = set([1,2,3,4,5])
s5.update([6,7,8])
s5.update((9,10))
s5.update("sunck")
print(s5)

4.刪除

s6 = set([1,2,3,4,5])
s6.remove(3)
print(s6)

5.遍歷

s7 = set([1,2,3,4,5])
for i in s7:
    print(i)
#set沒有索引的
#print(s7[3])

for index, data in enumerate(s7):
    print(index, data)


s8 = set([1,2,3])
s9 = set([2,3,4])

6.交集

a1 = s8 & s9
print(a1)
print(type(a1))

7.並集

a2 = s8 | s9
print(a2)
print(type(a2))

二、類型轉換
1.list去重複

l = [1,2,3,4,3,4,5,6]
'''
s = set(l)
l = list(s)
print(l)
'''

l = list(set(l))
print(l)

2.類型轉換
(1)list–>set

l1 = [1,2,3,4,5,3,4,5]
s1 = set(l1)

(2)tuple–>set

t2 = (1,2,3,4,3,2)
s2 = set(t2)

(3)set–>list

s3 = {1,2,3,4}
l3 = list(s3)
print(l3)

(4)set–>tuple

s4 = {2,3,4,5}
t4 = tuple(s4)
print(t4)

三、迭代器

from  collections import Iterable
from  collections import Iterator

可迭代對象:可以直接作用於for循環的對象統稱爲可迭代對象(Iterable)。可以用isinstance()去判斷一個對象是否是Iterable對象

可以直接作用於for的數據類型一般分兩種
1、集合數據類型,如list、tuple、dict、set、string
2、是generator,包括生成器和帶yield的generator function

print(isinstance([], Iterable))
print(isinstance((), Iterable))
print(isinstance({}, Iterable))
print(isinstance("", Iterable))
print(isinstance((x for x in range(10)), Iterable))
print(isinstance(1, Iterable))

迭代器:不但可以作用於for循環,還可以被next()函數不斷調用並返回下一個值,直到最後跑出一個StopIteration錯誤表示無法繼續返回下一個值

可以被next()函數調用並不斷返回下一個值的對象稱爲迭代器(Iterator對象)

可以使用isinstance()函數判斷一個對象是否是Iterator對象

print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("", Iterator))
print(isinstance((x for x in range(10)), Iterator))


l = (x for x in [23,4,5,64,3435])
print(next(l))
print(next(l))
print(next(l))
print(next(l))
print(next(l))
#print(next(l))

轉成Iterator對象

a = iter([1,2,3,4,5])
print(next(a))
print(next(a))

print(isinstance(iter([]), Iterator))
print(isinstance(iter(()), Iterator))
print(isinstance(iter({}), Iterator))
print(isinstance(iter(''), Iterator))

四、函數概述
認識函數:在一個完整的項目中,某些功能會反覆的使用。那麼會將功能封裝成函數,當我們要使用功能的時候直接調用函數即可

本質:函數就是對功能的封裝

優點
1、簡化代碼結構,增加了代碼的複用度(重複使用的程度)
2、如果想修改某些功能或者調試某個BUG,還需要修改對應的函數即可

1.定義函數:

格式:
def 函數名(參數列表):
語句
return 表達式

def:函數代碼塊以def關鍵字開始
函數名:遵循標識符規則
():是參數列表的開始和結束
參數列表(參數1,參數2,……,參數n):任何傳入函數的參數和變量必須放在圓括號之間,用逗號分隔。函數從函數的調用者哪裏獲取的信息
冒號:函數內容(封裝的功能)以冒號開始,並且縮進
語句:函數封裝的功能
return:一般用於結束函數,並返回信息給函數的調用者
表達式:即爲要返回給函數的調用者的信息,

注意:最後的return 表達式,可以不寫,相當於return None

凱 = "帥"
print(凱)

函數的調用
格式:函數名(參數列表)

函數名:是要使用的功能的函數函數名字
參數列表:函數的調用者給函數傳遞的信息,如果沒有參數,小括號也不能省略

函數調用的本質:實參給形參賦值的過程

五、定義了一個無參無返回值的函數

def myPrint():
    print("sunck is a very good man!")
    print("sunck is a nice man!")
    print("sunck is a handsome man!")
     
myPrint()
myPrint()
myPrint()
myPrint()
myPrint()

六、函數的參數
需求:編寫一個函數,給函數一個字符串和一個年齡,在函數內部打印出來

形參(形式參數):定義函數時小括號中的變量,本質是變量
參數必須按順序傳遞,個數目前要對應

def myPrint(str, age, hoby):
    print(str, age)

def myPrint(str, age):
    print(str, age)

實參(實際參數):調用函數時給函數傳遞的數據,本質是值

myPrint("sunck is a good man", 18)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章