''' 函數的概念: 將特定功能的一些代碼,整合在一個單元中,這個單元就叫做方法或函數 函數的定義: 1、使用關鍵字def定義 2、def后跟的是函數名(標識符) 3、函數名后面一定要有一對小括號(),python2是不帶小括號的,python3要求必須帶 4、小括號中是可以定義參數的(形式參數),不用指定數據類型,實際調用方法時傳什么類型的數據就處理什么數據 5、小括號后是冒號,(冒號和縮進是在一起) 6、在函數代碼塊的第一行,可以放文檔字符串(多行注釋),如果不知道此函數的功能,可以使用函數._doc_查看函數的功能 7、return: 1)方法中不寫return語句,返回None 2)方法中寫return,但不指定返回的變量或值,返回None 3)方法中寫return,並制定返回的數據,返回指定數據 4)方法中寫return,並指定返回多個數據,使用逗號分隔,返回多個數據的元組 函數的調用:函數不調用,不執行 1、直接調用 area(5, 6),只需要用到一次,調用該方法並不關心返回值 2、輸出調用 print(area(5, 6)),只需要用到一次 3、賦值調用 在代碼中可能會使用多次,需要有一個變量把返回的數據保存起來 類和方法特性差不多:方法不調用,不執行;類,不創建對象,不能調用成員方法 對於類方法,是可以直接通過類名調用的,不需要創建對象的,eg:math.sin() 不用創建對象就可以調用的屬性(變量)叫靜態屬性,是可以通過類名調用 python類中的構造方法名是:__init__(self) 私有變量是需要在變量前面加__ 類變量:所有類的對象同意使用的變量,不會隨着對象的不同而改變 實例變量:是創建了對象才有的變量 局部變量:在類的方法中或者方法的聲明上()里面定義的變量 python中以.py結尾的文件,我們就叫做模塊 包:就是文件夾,里面需要有個文件__init__.py 導包或導模考:import XXX from XXX import yyy import XXX as zzz ''' # 聲明一個方法,要指定參數聊表的,怎么指定? # 在python定義的變量,不是我們直接指定是什么類型,而是通過賦值的形式來確定的 # 參數列表就只有變量名,不需要數據類型,那么這個變量就可以接收任意類型的數據了 # def sum(a, b): # ''' # 這是一個加法運算 # ''' # # pass #空語句,起到占位符的作用 # return a + b # print(sum.__doc__) #文檔字符串,這是一個加法運算 # # print(sum(2, 3)) # 求長方形面積的方法 def area(high, width): return high * width print(area(5, 6))
''' 函數的參數類型使用: 位置參數: 1、必須與聲明中的參數個數保持一致,否則會報錯 2、參數的順序可以不一樣,但是不保證結果的正確性,故數據類型也要保持一致 3、可以通過判斷,確定傳入參數的合理性,傳入的參數類型如果不一致,解釋器無法檢查,需要在代碼中添加判斷語句(錯了,會顯示None) 關鍵字參數: 1、在關鍵字參數的后面不能跟着位置參數,會直接報語法錯誤 2、前面使用了關鍵字參數,后面一定也要使用關鍵字參數 3、位置參數后面是可以使用關鍵字參數,但是要求與聲明的參數位置保持一致 默認值參數: 1、調用函數時,如果沒有傳遞參數,則會使用默認參數 2、聲明函數時要指定默認值 3、使用默認值可以起到避免漏掉參數導致的錯誤 4、使用場景:參數比較多,某個參數,一般不會變化,每次調用方法的時候就沒有必要去填,如果寫的話就按照設定數據來執行 不定長參數: 1、需要一個函數能處理比當初聲明時更多的參數,這些參數就叫做不定長參數,和上述三種不同,聲明時不會命名 2、使用場景:定義的方法的參數個數是不確定的 3、加了星號*的變量名會存放所有未命名的變量參數,一般使用*args,args是一個特定數據類型,其中可以放入多個數據 4、args是一個元組,調用方法是傳參數的形式把數據放入元組args中,使用for循環對元組進行遍歷取值 5、如果聲明為第一個參數是位置參數,第二個是不定長參數,在調用的時候,我們傳遞的實際數據,第一個是位置參數,第二個之后的放入不定長參數 6、如果聲明為,第一個參數是不定長參數,第二個是位置參數,在調用的時候,我們直接給位置參數,會報錯(第二個變量拿不到),西能通過關鍵字參數給第二個參數進行傳參 7、在后面自動化測試里面,我們需要記錄腳本運行的情況,不同的腳本或用例,他們需要輸出的日志內容可能不一樣,這時候就需要將日志方法的參數定義為不定長的,用的時候傳遞什么,就在日志文件中寫入什么 ''' # 所有語言中浮點數據,都是不精確的,做是否相等判斷時,是不能用==直接判斷,可以用差值小於多少誤差數 # 變量定義的時候必須同時進行初始化(賦值) def print_hello(name, sex): # 判斷sex的值是否為整型,是否是int的一個實例 if isinstance(sex, int): sex_dict = {1: '先生', 2: '女士'} print('hello %s %s ,welcome to python world!' % (name, sex_dict.get(sex))) print_hello('王炸', 1) #hello 王炸 先生 ,welcome to python world! print_hello(1, '王') #不加判斷時輸出hello 1 None ,welcome to python world! print('a' < 'b' < 'c') #True print('a' < 'b' and 'b' < 'c') #True print('ab' < 'ac') #True字符串是可以進行大小比較的,'ab'相當於['a','b'],相當於兩個列表進行比較大小,按位進行對比 a = (1) print(type(a)) #<class 'int'>元組中至少有一個逗號(1,)表示元組 #元組、列表是容器類型,里面什么都可以放,字符串、整型數據、列表和元組都可以