【Python入門自學筆記專輯】——函數參數與返回值

函數參數

​ Python中的函數參數很靈活,具體體現在傳遞參數有都中形式上。本節介紹幾種不同形式的參數和調用方式。

使用關鍵字參數調用函數

​ 爲了提高函數調用的可讀性,在函數調用時可以使用關鍵字參數調用。採用關鍵字參數調用函數,在函數定義時不需要做額外工作。

​ 實例代碼如下:

#-*- coding = utf-8 -*-

def print_area(width, height):
    area = width * height
    print("{0} x {1} 長方形的面積:{2}".format(width, height, area))

print_area(320.0, 48.0)     # 沒有采用關鍵字參數函數調用
print_area(width = 320.0, height = 480.0)     # 採用關鍵字參數函數調用
print_area(320.0, height = 480.0)     # 採用關鍵字參數函數調用
# print_area(width = 32.0, height)     #發生錯誤
#原因--height沒有數值,系統就會認爲是一個變量,而這個變量沒有定義聲明
print_area(height = 480.0, width = 320.0)     #採用關鍵字參數函數調用

代碼很簡單,就不用了多說了

參數默認值

​ 在定義函數的時候可以爲參數設置一個默認值,調用函數時可以忽略該參數。

​ 實例:(下面兩段代碼是一體的)

# -*- coding = utf-8 -*-

def make_coffee(name = "卡布奇諾"):
    return "製作一杯{0}咖啡".format(name)

​ 上述代碼定義了makeCoffee()函數,其中把卡布奇諾😋挺好喝的​設置爲了默認值。在參數列表中,默認值可以跟在參數類型後面。在調用的時候,如果調用者沒有傳遞參數,則使用默認值,調用代碼如下:

coffee1 = make_coffee("拿鐵")
coffee2 = make_coffee()

print(coffee1)
print(coffee2)

​ 其中coffee1 = make_coffee("拿鐵")代碼是傳遞“拿鐵”,沒有使用默認值。coffee2 = make_coffee()這一行沒有傳遞參數,因此使用默認值。

StdOut:

製作一杯拿鐵咖啡
製作一杯卡布奇諾咖啡


​ **提示(新手可以不看):**Java語言中make_coffee()函數可以採用重載實現多個版本。Python不支持函數重載,而是使用參數默認值的方式提供類似的重載功能。


函數返回值

​ Python函數的返回值也是比較靈活的(Python的東西都比較靈活),主要有三種形式:無返回值、單一返回值和多返回值。

無返回值函數

​ 有的函數只是爲了處理某個過程,此時可以將函數設計爲無返回值的。所謂無返回值,事實上是返回NoneNone表示沒有實際意義的數據。

​ 實例代碼:打開

#-*- coding = utf-8 -*-

def show_info(sep = ':', **info):    #可變參數,下面講一下
    """定義**可變參數函數, dict"""
    print('-----info-----')
    for key, value in info.items():
        print('{0} {2} {1}'.format(key, value, sep))
        return                  #return None

result = show_info('->', name = 'Tony', age = 18, sex = True)
print(result)


def sum(*numbers, multiple = 1):
    """定義*可變參數函數, tuple"""
    if len(numbers) == 0:
        return
    total = 0.0
    for number in numbers:
        total += number
    return total * multiple

print(sum(30.0, 80.0))
print(sum(multiple = 2))

StdOut:

-----info-----
name -> Tony
None
110.0
None

  1. 上述代碼show_info()函數中有一個**info的參數,這是一個可變參數,下面詳細解釋一下。Python中函數的參數個數可以變化,這種參數稱爲可變參數。Python中的可變參數有兩種,即參數前加***形式,*可變參數被組裝成一個元組,**可變參數在函數中被組裝成一個字典。

    1. *可變參數

      下面看一個實例:(部分代碼)

      def sum(*numbers, multiple = 1):
          total = 0.0
          for number in numbers:
              total += number
          return total * multiple
      
      print(sum(100.0, 20.0, 30.0))
      print(sum(30.0, 80.0))
      print(sum(30.0, 80.0, multiple = 2))
      
      double_tuple = (50.0, 60.0, 0.0)
      print(sum(30.0, 80.0, *double_tuple))
      

      StdOut:

      150.0

      110.0

      220.0

      220.0

      不用說都懂了吧😏

    2. **可變參數

      下面看一個實例:(部分代碼)

      def show_info(sep = ':', **info):
          print('-----info-----')
          for key, value in info.items():
              print('{0} {2} {1}'.format(key, value, sep))
              
      show_info('->', name = 'Tony', age = 18, sex = True)
      show_info(student_name = 'Tony', sex = True, sep = '=')
      

      都不用說吧?挺簡單的

    3. 返回值爲空的時候可以用returnreturn None都可以。

多返回值函數

​ 有時候需要函數返回多個值,實現返回多個值的方式有很多,簡單的方式是使用元組返回多個值,因爲元組可以容納多個數據,另外元組是不可變的,使用起來比較安全。

實例:

#coding=utf-8

def position(dt, speed):
    posx = speed[0] * dt #speed[0] 是X軸上的速度
    posy = speed[1] * dt #speed[1] 是Y軸上的速度
    return (posx, posy)

move = position(60.0, (10, -5)) #move是一個元組,用來存儲多個返回值

print("物體位移:({0}, {1})".format(move[0], move[1]))

求贊

如果您認爲此篇文章從對您有用,請點贊,如果寫錯,請糾正評論

urn (posx, posy)

move = position(60.0, (10, -5)) #move是一個元組,用來存儲多個返回值

print(“物體位移:({0}, {1})”.format(move[0], move[1]))


#### 求贊

如果您認爲此篇文章從對您有用,請**點贊**,如果寫錯,請糾正**評論**

==**參考:《Python從小白到大牛》——關東昇著**==
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章