自定義函數(shù)
變量作用域
Python內(nèi)建函數(shù)

一.函數(shù)

Python中的函數(shù)都是語句和表達(dá)式的集合。函數(shù)的用法并沒有限制,使用方式就像Python 中其他值一樣,對于重復(fù)使用的代碼,需要編寫為自定義函數(shù)以便于重復(fù)使用。

函數(shù)可以分為無參函數(shù)和帶參函數(shù)

1.無參函數(shù)

自定義無參函數(shù)并不復(fù)雜,語法格式如下:


                                        def函數(shù)名稱() :
                                                        代碼塊
                                                        return [表達(dá)式]

案例:

def add():                    \\\\\\\\定義函數(shù)
    op1=10
    op2=20
    rt=op1 op2
    print op1,\\\' \\\',op2,rt
    return
add()                            \\\\\\\\調(diào)用函數(shù)

\\\\\\\\輸出結(jié)果

>>> 
10   20 30
>>> 

案例:輸出九九乘法表

def nineMultiTab():
    op1=(1,2,3,4,5,6,7,8,9)
    op2=(1,2,3,4,5,6,7,8,9)
    for i in op1:
        for j in op2:
            print i,*,j,=,i*j
    retrun
nineMultiTab()

\\\\\\\\輸出結(jié)果

>>> 
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
..................略

(2)使用函數(shù)時經(jīng)常會犯一-些錯誤,總結(jié)如下

函數(shù)的定義要先于函數(shù)的調(diào)用,否則會出錯。
函數(shù)體的代碼是一個整體,要注意縮進(jìn)。
定義函數(shù)時要使用冒號,但調(diào)用時不可以使用冒號。

2.帶參參數(shù)

帶參函數(shù)的語法格式如下:


                                                        def函數(shù)名稱(形式參數(shù)列表) :
                                                                        代碼塊
                                                                        return[表達(dá)式]

案例:

def add(x,y):                  \\\\\\\\帶參數(shù)函數(shù)定義
    return x   y
print add(1,2)                  \\\\\\\\帶參數(shù)函數(shù)調(diào)用

\\\\\\\\輸出結(jié)果

>>> 
3

(1)當(dāng)程序比較煩瑣時,參數(shù)的順序很難記住,可以使用關(guān)鍵字參數(shù)。關(guān)鍵字參數(shù)是在調(diào)用函數(shù)時,明確指定參數(shù)值賦給哪個形參,語法格式如下:

函數(shù)名稱(形參1=實參1,形參2=實參…)

綜合案例:(計算器)

def operator (op1,op2,opFu):
    if opFu not in \\\' -*/\\\':
        return -1
    if opFu == \\\' \\\':
        result = op1 op2
    elif opFu == \\\'-\\\':
        result = op1 - op2
    elif opFu == \\\'*\\\':
        result = op1*op2
    elif opFu == \\\'/\\\':
        if op2 == 0:
            print \\\'錯誤,除數(shù)不能為0\\\'
            result = None
        else:
            result = op1 / op2
    return result
def convert(op):
    flag = True
    for ch in op:
        if ch not in \\\'1234567890\\\':
            flag = Flase
            brank
        if flag == True:
            return int(op)
        else:
            return None
if __name__== \\\'__main__\\\':
     str1 = \\\'請輸入第1個數(shù):\\\\n\\\'
     strFu = \\\'請輸入一個算術(shù)運算符:\\\\n\\\'
     str2 = \\\'請輸入2個數(shù):\\\\n\\\'
     while True:
        print \\\'需要退出程序,請輸入字母q\\\'
        opp1 = raw_input(str1)
        ch = opp1.strip()[0].lower()
        if ch ==\\\'q\\\':
            break
        op1 = convert(opp1)
        if op1 ==None:
            print \\\'輸入錯誤,請輸入整數(shù)!/n\\\'
            continue
        while True:
            opFu= raw_input(strFu)
            if opFu in \\\' -*/\\\':
              break
            else:
                print \\\'運算符輸入錯誤\\\'
                continue
        while True:
            op2 = convert(raw_input(str2))
            if op2 == None:
                print 輸入錯誤,請輸入整數(shù)!\\\\n
                continue
            else:
                break
        result = operator(op1,op2,opFu)
        if result <> None:
            print 計算%d %s %d = %d\\\\\\\'n %(op1,opFu,op2,result)
print \\\'程序退出了\\\'

\\\\\\\\輸出結(jié)果如下

需要退出程序,請輸入字母q
請輸入第1個數(shù):
20
請輸入一個算術(shù)運算符:
*
請輸入2個數(shù):
30
計算20 * 30 = 600\\\'n
需要退出程序,請輸入字母q

二.變量作用域

作用域是指變量在程序中的應(yīng)用范圍,而變量聲明的位置決定它的作用域,Python按作用域區(qū)分有局部變量和全局變量。全局變量是指在一個模塊中最高級別的變量有全局作用域,除非被刪除,否則存活到程序運行結(jié)束,所有函數(shù)都能訪問全局變量。
局部變量是指定義在函數(shù)內(nèi)的變量有局部作用域,依賴于定義變量的函數(shù)現(xiàn)階段是否處于活動狀態(tài),調(diào)用函數(shù)時,局部變量產(chǎn)生,暫時存在。-旦 函數(shù)執(zhí)行完,局部變量將會被釋放。局部變量的作用域僅限于定義它的函數(shù),全局變量的作用域在整個模塊內(nèi)部都是可見的。在同一個函數(shù)中,不允許有同名局部變量。在不同的函數(shù)中,可以有同名局部變量。在同一個程序中,全局變量和局部變量同名時,局部變量具有更高的優(yōu)先級。
下面代碼演示局部變量和全局變量的使用情況:

def addAge(age):
    age  =1
    print \\\'addAge(): _age=%d age=%d\\\' %(_age,age)
    return age
_age = input(\\\'輸入年齡: \\\\n\\\')
rt = addAge(_age)
print \\\'main(): _age =%d \\\' %_age
print \\\'main(): rt=%d\\\' %rt

\\\\\\\\輸出結(jié)果如下

>>> 
輸入年齡: 
20
addAge(): _age=20 age=21
main(): _age =20 
main(): rt=21
>>> 

局部變量只有在局部中才能使用,其他范圍是訪問不到的,如age是局部變量.在全局范圍就引用不到,比如在程序最后加上代碼

lambda函數(shù)
lambda函數(shù)的作用是創(chuàng)建匿名函數(shù),是一種聲明函數(shù)的特殊方式。
lambda函數(shù)的語法如下所示:

lambda params: expr

params相當(dāng)于函數(shù)接收的參數(shù)列表,expr 是函數(shù)返回值的表達(dá)式。

普通函數(shù)和一個lambda函數(shù),案例如下:

def sum1(x,y):                             \\\\\\\\普通函數(shù)
    return x y
sum2 = lambda x,y : x y             \\\\\\\\lambda函數(shù)
print sum1(3,4)
print sum2(3,4)

\\\\\\\\輸出結(jié)果如下

>>> 
7
7

內(nèi)建函數(shù)

Python除了本身的語法結(jié)構(gòu),還提供了常用的內(nèi)建函數(shù)。內(nèi)建函數(shù)是程序員經(jīng)常使用到的方法.可增加程序編寫的效率,如float()就是內(nèi)建的函數(shù)。內(nèi)建函數(shù)是自動加載的, Python 的解釋器可以識別。它不需要導(dǎo)入模塊,不必做任何的操作.不需要引用就可以調(diào)用。

(1)abs()函數(shù)能夠返回一個數(shù)字的絕對值,即正數(shù)。語法格式如下:

abs (x)

案例:

>>> abs(10)
10
>>> abs(-10)
10
>>> bb = -3
>>> abs(bb)
3

(2) bool()函 數(shù)返回值是True或False.它是Boolean (布爾值)的簡寫,語法格式如下:

bool([x]

案例:里面不能為空

>>> bool()
False
>>> bool(0)
False
>>> bool(-3)
True
>>> bool(\\\'xws\\\')
True

(3) float() 函數(shù)用于轉(zhuǎn)換數(shù)據(jù)為float 類型,語法格式如下:

float([ x ])

案例:

>>> float(\\\'25\\\')
25.0
>>> float(3)
3.0
>>> float(999.123)
999.123
>>> 

字符串和數(shù)字都可以轉(zhuǎn)為float類型,如果不能轉(zhuǎn)換,就會拋出異常。

(4) int ()函數(shù)可以將數(shù)據(jù)轉(zhuǎn)換為整數(shù),語法結(jié)構(gòu)如下:

int ([ x [,base]])

案例:

>>> int(199.99)                      \\\\\\\\浮點數(shù)
199
>>> int(\\\'100\\\')                           \\\\\\\\字符串
100
>>> int(\\\'99.9\\\')                           \\\\\\\\字符串

Traceback (most recent call last):
  File <pyshell#25>, line 1, in <module>
    int(\\\'99.9\\\')
ValueError: invalid literal for int() with base 10: \\\'99.9\\\'
>>> 

需要注意當(dāng)參數(shù)是字符串時,字符串中只能是整數(shù)格式,如果是浮點格式將有異常產(chǎn)生。

(5)range ()函數(shù)可以生成- -個列表,語法結(jié)構(gòu)如下:

range ([start,] stop[,step])

案例:

>>> range(0,5)
[0, 1, 2, 3, 4]
>>> range(0,30,3)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]       \\\\\\\\遞增
>>> range(30,0,-3)
[30, 27, 24, 21, 18, 15, 12, 9, 6, 3]      \\\\\\\\遞減
>>> 

(6) sum () 函數(shù)可以對列表中元素求和,語法結(jié)構(gòu)如下

sum(x[ ,start] )

案例:

>>> num=range(0,500,50)
>>> num
[0, 50, 100, 150, 200, 250, 300, 350, 400, 450]
>>> print(sum(num))
2250
>>> 

(7) max()函數(shù)可以返回列表、元組或字符串中最大的元素,語法結(jié)構(gòu)如下:

max (x)

案例:


>>> num=[6,2,12,7,64]
>>> max(num)
64
>>> string =\\\'d,u,a,n,g,D,U,A,N,G\\\'
>>> max(string)
\\\'u\\\'
>>> 

len()函數(shù)返回一個對象的長度,語法格式如下:

len(s)

案例

>>> len(\\\'duang\\\')                                    \\\\\\\\字符串
5
>>> aa=[\\\'python\\\',\\\'jave\\\',\\\'c#\\\',\\\'vb\\\']              \\\\\\\\列表
>>> len(aa)
4
>>> bb={\\\'zhangsan\\\':\\\'100\\\',\\\'lisi\\\':\\\'90\\\'}          \\\\\\\\字典
>>> len(bb) 
2

更多關(guān)于云服務(wù)器域名注冊,虛擬主機的問題,請訪問三五互聯(lián)官網(wǎng):m.shinetop.cn

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明出處:三五互聯(lián)知識庫 » Python函數(shù)及操作

登錄

找回密碼

注冊

主站蜘蛛池模板: 综合图区亚洲欧美另类图片| 国产精品自拍午夜福利| 亚洲国产日韩欧美一区二区三区 | 国产综合久久久久鬼色| 成年午夜免费韩国做受视频| 蜜桃传媒av免费观看麻豆| 麻豆一区二区中文字幕| 亚洲禁精品一区二区三区| 国产精品黄色精品黄色大片| 在线看无码的免费网站| 人人玩人人添人人澡超碰| 亚洲AV日韩AV激情亚洲 | 国产99视频精品免费视频36| 国产免费午夜福利在线观看| 青浦区| 四虎成人精品在永久在线| 奶头好大揉着好爽视频| 午夜福利国产精品视频| 大城县| 91精品国产色综合久久不| 日韩精品一区二区三区在线观看| 亚洲av不卡电影在线网址最新| 中文字幕无码色综合网| 亚洲av天堂天天天堂色| 香港日本三级亚洲三级| 丰满少妇特黄一区二区三区| 亚洲国产精品综合久久20| 亚洲av肉欲一区二区| 天天躁夜夜踩很很踩2022| 国产午夜精品福利91| 四虎精品寂寞少妇在线观看| 亚洲精品人成网线在播放VA| 国产午夜福利免费入口| 自拍偷在线精品自拍偷免费 | 国产精品久久无中文字幕| 国产精品中文字幕二区| 国产精品日日摸夜夜添夜夜添无码| 免费无码成人AV片在线| 精品国产品香蕉在线| 内射极品少妇xxxxxhd| 国内精品视频一区二区三区八戒|