python之函數(function)

來源:互聯網
上載者:User

標籤:字串   字元   spec   ddr   今天   cep   總結   war   代碼   

#今天來學習一下函數,function
# 定義一個函數的時候,函數不會被執行,只有調用函數,函數才會執行
#
# 定義函數
# # 1、def是建立函數的關鍵字,建立函數
# # 2、函數名
# # 3、()
# # 4、函數體
# # 5、傳回值
#
#
# try:
# 撲捉這段代碼的執行
# except:
# 如果失敗,則執行這裡的語句
#
# else:
# 如果成功,則執行這裡的語句
#
# 執行函數
#
# 函數名()
#
# 類似這樣定義一個函數
#
#
# def  取快遞():
#
#
# xxxxx
# xxxxx
# xxxxx


#函數遇到return後就不會繼續執行後面的語句

# def my_first_function ():
# username = ‘Bob‘
# _username = input(‘Input name:‘)
# if _username == username:
# return "Welcome login"
# else:
# return "Username is Invalid"
#
# result = my_first_function()
# print(result)


#如果在函數中沒有定義任何一個return,則python會給一個預設的傳回值,none
# def f2():
# print("hi,everybody")
# ret = f2()
# print(ret)



#學習一下形參和實參,這裡要注意,形參是定義函數的時候定義的,實參是調用函數的傳給函數的,實參和形參要一一對應,且順序要一致,第一個實參對應第一個形參,第二個
#實參對應第二個形參,以此類推
# def send(address,content,name): #這裡是形參
# print(‘send to‘,address,‘成功‘,‘內容是‘,content,‘名字是‘,name)
# return True
# while True:
# em = input("input address:")
# result = send(em,‘SB‘,‘Bob‘) #這裡是實參
# if result == True:
# print(‘發送成功‘)
# else:
# print(‘發送失敗‘)



#函數的預設參數,如果形參有三個參數,而其中有一個是預設參數,則實參只需要傳2個或者3個都可以,如果是2個,則第三個參數用預設值來顯示,如果傳三個參數,則第三個參數
#用傳遞的參數代替,這裡有個重點,就是如果要設定預設參數,則必須要放在形參的最後面,可以有多個預設的形參,但是都要放在最後面

#這裡是定義了三個參數,其中name這個參數是預設參數,有預設值,但是實參傳了三個參數,所以就沒有使用預設值
# def send(address,content,name=‘Bob‘):
# print(‘send to‘,address,‘成功‘,‘內容是‘,content,‘名字是‘,name)
# return True
# while True:
# em = input("input address:")
# result = send(em,‘SB‘,‘ale‘)
# if result == True:
# print(‘發送成功‘)
# else:
# print(‘發送失敗‘)

#這裡是定義了三個參數,其中name這個參數是預設參數,有預設值,但是實參傳了兩個個參數,所以name就使用了預設參數
# def send(address, content, name=‘Bob‘):
# print(‘send to‘, address, ‘成功‘, ‘內容是‘, content, ‘名字是‘, name)
# return True
# while True:
# em = input("input address:")
# result = send(em, ‘SB‘)
# if result == True:
# print(‘發送成功‘)
# else:
# print(‘發送失敗‘)


#指定參數,前面是預設實參和形參的是按照順序一一對應的,下面可以指定哪一個形參對應哪個實參,不需要按照順序一一對應
# def send(address, content):
# print(‘send to‘, address, ‘成功‘, ‘內容是‘, content)
# return True
# while True:
# em = input("input address:")
# result = send(address=‘[email protected]‘,content=em)
# if result == True:
# print(‘發送成功‘)
# else:
# print(‘發送失敗‘)


# *號,表示可以接受n個實參,然後放在把所有的實參放到一個叫args的tuple中
# def f1(*args):
# print(args)
# print(type(args))
# f1(11,22,33,‘aaad‘,‘bbbb‘)

#這裡也可以傳一個列表進去,但是把這個列表當做元組的一個元素

# list1 = [11,22,33,44]
# list2 = [66,77,8,8]
# def f1(*args):
# print(args)
# print(type(args))
# f1(list1,list2)

#如果傳遞的實參的前面有個*號,我們來看下效果,不論傳遞的是list和str,相當於一個for迴圈,把list中或者字串的每個元素當做形參的一個元素
# name = ‘1234‘
# list1 = [11,22,33,44]
# def f1(*args):
# print(args)
# f1(list1)
# f1(*list1)
# f1(*‘abcd‘)
# f1(*name)

#前面的形參是有一個*號,其實還可以形參前也可以有兩個*號,那麼在調用函數的時候傳遞實參的時候要用dict的方式傳遞實參,不然會報錯,這裡要注意下傳遞形式,傳參的使用要用
#=號
# def f1(**args):
# print(args)
# print(type(args))
#
# f1(n1=‘cccc‘,n2=‘dddd‘)

#直接傳遞一個dict進去,如果用這樣的方式,是把整個dict當做一個元素
# dict1 = {‘name‘:‘Bob‘,‘age‘:12,‘job‘:‘it‘}
# def f1(**args):
# print(args)
# print(type(args))
#
# f1(k=dict1)

#如果實參中有兩個*號,則把dict中的每個元素當做一個元素傳遞給形參
# dict1 = {‘name‘:‘Bob‘,‘age‘:12,‘job‘:‘it‘}
# def f1(**args):
# print(args)
# print(type(args))
#
# f1(**dict1)


#總結下函數傳參
# 1、普通參數,嚴格按照輸入的順序,將實參和形參一一對應
# 2、預設參數,必須放在形參的最後
# 3、指定參數,將實際參數賦值給形參
# 4、動態參數
# 4-1、* 預設將傳入的參數,全部放到列表中,如果傳實參的加一個*,會對list或者字串做一個for迴圈,把把實參的每一個元素當做一個元素傳遞給形參
# 4-2、**預設將傳入的參數,全部放到字典中,如果傳實參的加一個**,會對dict做一個for迴圈,把把實參的每一個元素當做一個元素傳遞給形參
# 5、萬能參數,就必須下面的列子,會自動把list或者str的參數傳遞給args,把dict傳遞給kwargs,且在寫形參的時候,一定要把一個*args放在前面,**kwargs
# 放在後面

# def f1(*args,**kwargs):
# print(args)
# print(kwargs)
#
#
# f1(11,22,33,44,k1=‘bob‘,k2=‘ale‘)

#其中python中的另外一個格式化輸出就用到萬能傳參的方法
# def format(self, *args, **kwargs): # known special case of str.format

# s = ‘i am {0},age is {1}‘ .format(‘bob‘,34)
# print(s)
#
# s = ‘i am {0},age is {1}‘ .format(*[‘bob‘,34])
# print(s)


# s = ‘i am {name},age is {age}‘ .format(name=‘Bob‘,age=‘23‘)
# print(s)

# dict = {‘name‘:‘Bob‘,‘age‘:12}
# s = ‘i am {name},age is {age}‘ .format(**dict)
# print(s)

python之函數(function)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.