python入到到實戰--第八章

第八章 函數python

定義函數函數

關鍵字def測試

def get_name():ui

  print("測試函數代碼")spa

 

調用函數orm

get_name()ci

 

向函數傳遞信息------在函數的括號內添加須要傳遞的信息get

 

實參和形參input

在函數定義時,函數括號內的參數是形參;it

在調用函數時,函數括號內的參數是實參;

 

傳遞參數----還可使用列表和字典

位置實參:實參的順序和形參的順序相同---------順序很重要,若是順序錯誤,則實際結果會跟預期結果差異

關鍵字實參:每一個實參由變量名和值組成;

位置實參

def test1(abc, bcd):

  print(abc + " " + bcd)

test("1111","222")  >>>1111 2222

關鍵字實參:

def test2(abc, bcd):
print(abc + " " + bcd)

test2(abc = "1111",bcd = "222") >>>1111 2222

 

默認值:

編寫函數時,能夠給每一個形參指定默認值,調用函數時,若是提供了實參,則使用指定的參數,不然將使用形參的默認值。

def test3(abc="00000"):

  print(abc)

test3()  >>>00000

test3("789") >>>789

當有多個形參,而實參個數少與形參個數時,根據實參順序和形參順序進行匹配。

可混合使用位置實參、關鍵字實參和默認值,

 

避免實參錯誤:

調用函數時,未指定任何實參

出現traceback 錯誤時,請確保函數調用和函數定義匹配。

返回值:函數返回的值稱爲返回值

調用有返回值的函數時,須要提供一個變量,用戶存儲返回的值。

讓實參變爲可選的--------在定義函數時,給形參添加使用默認值。

 

返回字典:

def build_person(first_name, last_name):
"""返回一個字典, 其中包含有關一我的的信息"""
   person = {'first': first_name, 'last': last_name}
   return person


musician = build_person('jimi', 'hendrix')
print(musician)

結合使用函數和while 循環 :

def get_formatted_name(first_name, last_name):
  """返回整潔的姓名"""
  full_name = first_name + ' ' + last_name
  return full_name.title()

# 這是一個無限循環!
while True:
   print("\nPlease tell me your name:")

  f_name = input("First name: ")
  l_name = input("Last name: ")
  formatted_name = get_formatted_name(f_name, l_name)
  print("\nHello, " + formatted_name + "!")
=========================

增長循環退出條件

def get_formatted_name(first_name, last_name):
"""返回整潔的姓名"""
  full_name = first_name + ' ' + last_name
  return full_name.title()
while True:
  print("\nPlease tell me your name:")
  print("(enter 'q' at any time to quit)")
  f_name = input("First name: ")
  if f_name == 'q':
    break
  l_name = input("Last name: ")
    if l_name == 'q':
  break
  formatted_name = get_formatted_name(f_name, l_name)
  print("\nHello, " + formatted_name + "!")
=========================

傳遞列表

def greet_users(names):
"""向列表中的每位用戶都發出簡單的問候"""
  for name in names:
    msg = "Hello, " + name.title() + "!"
    print(msg)


usernames = ['hannah', 'ty', 'margot']
greet_users(usernames)



在函數中修改列表:

將列表傳遞給函數後, 函數就可對其進行修改。 在函數中對這個列表所作的任何修改都是永久性的, 這讓你可以高效地處理大量的數據。
禁止函數修改列表 :向函數傳遞列表的副本而不是原件; 這樣函數所作的任何修改都隻影響副本, 而絲絕不影響原件
要將列表的副本傳遞給函數, 能夠像下面這樣作 :function_name(list_name[:])     ----------切片表示法[:] 建立列表的副本。

 

傳遞任意數量的實參 --預先不知道函數須要接受多少個實參,python函數容許函數從調用語句中收集任意數量的實參。
def make_pizza(*toppings):
"""打印顧客點的全部配料"""
  print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')

解釋:形參名*toppings 中的星號讓Python建立一個名爲toppings 的空元組, 並將收到的全部值都封裝到這個元組中。 

結合使用位置參數實參和任意實參:

若是要讓函數接受不一樣類型的實參, 必須在函數定義中將接納任意數量實參的形參放在最後。

使用任意數量的關鍵字實參

 

將函數存儲在模塊中
導入整個模塊 import module_name

調用模塊的函數:module_name.function()

模塊 是擴展名爲.py的文件 。
導入特定的函數  from module_name  import function_name001, function002

調用函數:直接函數名調用,不須要使用模塊名.函數名的方式調用

使用as 給函數指定別名 -----函數名太長或者函數名衝突時,方便使用

from module_name import function_name as  f_n

使用as 給模塊指定別名 ---import module_name as  m_n

導入模塊的全部函數---from module_name import *

 

 

函數編寫指南

一、給函數指定描述性名稱,只使用小寫字母和下劃線

二、每一個函數應該包含簡要闡述其功能的註釋,註釋位置應該是定義函數的後面

三、給形參指定默認值時,等號兩邊不要有空格

四、函數調用時,關鍵字實參的等號兩邊不要有空格

五、形參列表比函數體多縮進一層

六、使用4個空格縮進

相關文章
相關標籤/搜索