1. 程式人生 > >9-函數初識

9-函數初識

mode 裏的 IT 分享 功能 RR 書寫 常用 不常用

三元運算
  z = a if a > b else b


函數的初識:
  def 函數名():
  函數體

 1 ll = 你好,China
 2 def my_lenth():  # 用來定義函數
 3 
 4     # 函數體
 5     count = 0
 6     for i in ll:
 7         count += 1
 8     print(count)
 9 
10 
11 my_lenth() #調用函數

  函數就是封裝一個功能
  函數是以功能為導向的

  def:關鍵字,用來聲明一個函數
  函數名:函數名的書寫規則與變量一樣
  def與函數名之間只有一個空格
函數的執行:
  函數名()
  用來調用函數


函數的返回值:
  盡量不要再函數體中使用print()
  return:
  在函數中遇到return就結束函數,後面的函數體就不執行。
  將值返回給函數的調用者
  #無 return
  #return count 返回參數
  #return None 返回None,不常用
  #return 一個值 ,該值是什麽,就返回該值給函數的調用者
  #return 多個值 ,將多個值組合成一個元組,返回給函數的調用者


  在函數調用者的括號裏的參數叫做實際參數(實參),在函數裏的參數稱之為形式參數(形參)

實參角度:
  >按位置傳參(按順序一一對應)

技術分享圖片
 1 def compare(a,b):
 2     if a > b:
 3         return a
 4     elif a == b:
 5         return ("一樣大")
 6     else:
 7         return b
 8 
 9     # return a if a > b else b
10     #三元運算
11 s = compare(6,6)
12 print(s)
View Code

  >按關鍵字傳參(不按順序,一一對應)

技術分享圖片
 1 def compare(a,b):
 2     if a > b:
3 return a 4 elif a == b: 5 return ("一樣大") 6 else: 7 return b 8 9 # return a if a > b else b 10 #三元運算 11 s = compare(b = 6,a = 6) 12 print(s)
View Code

  >混合傳參(既有位置,又有關鍵字)

技術分享圖片
1 def test1(a,b,c,d,e,f):
2     print(a)
3     print(b)
4     print(c)
5     print(d)
6     print(e)
7     print(f)
8 
9 test1(4,5,d=9,c=0,f=9,e=44)
View Code

    對於混合傳參來說關鍵字參數永遠要在最後面,否則會報錯

SyntaxError: positional argument follows keyword argument

  

形參角度:
  >按位置傳參(按順序一一對應)
  >默認參數(傳參則覆蓋,不傳則默認)

技術分享圖片
 1 def info_entry(user_name,sex=man):
 2     with open(a,mode=a,encoding=UTF-8) as f:
 3         f.write({_username}  {_sex}\n.format(_username = user_name,
 4                                                _sex = sex))
 5 
 6 
 7 while True:
 8     user_name = input("請輸入你的姓名(以1開頭為男性):")
 9     if user_name.startswith(1):
10         user_name = user_name[1:]
11         info_entry(user_name)
12     else:
13         info_entry(user_name,sex=woman)
View Code

    默認參數永遠要在位置參數的後面
  >動態傳參



9-函數初識