function的定義


'''
函數的概念:
    將特定功能的一些代碼,整合在一個單元中,這個單元就叫做方法或函數
函數的定義:
    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,)表示元組
#元組、列表是容器類型,里面什么都可以放,字符串、整型數據、列表和元組都可以

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM