91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python學習筆記之函數的定義和作用域實例詳解

發布時間:2020-09-15 14:07:05 來源:腳本之家 閱讀:320 作者:Johnny丶me 欄目:開發技術

本文實例講述了Python函數的定義和作用域。分享給大家供大家參考,具體如下:

定義函數

默認參數: 可以向函數中添加默認參數,以便為在函數調用中未指定的參數提供默認值

# 如果調用 cylinder_volume 函數時,不提供radius參數,那么radius的值為5
def cylinder_volume(height, radius=5):
  pi = 3.14159
  return height * pi * radius ** 2

向函數中的參數傳值的方法:按照位置和按照名稱

cylinder_volume(10, 7) # 1539.3791
cylinder_volume(height=10, radius=7) # 1539.3791
cylinder_volume(radius=7, height=10) # 1539.3791

注意:上述第一種是常用的按照位置傳值,第二種和第三種是按照名稱傳值

定義函數[相關練習]

寫一個名稱為 population_density 的函數,該函數有兩個參數 population 和 land_area,并根據這兩個值返回人口密度。

解決方案:

def population_density(population, land_area):
  return population / land_area
test1 = population_density(10, 1)
expected_result1 = 10
print("expected result: {}, actual result: {}".format(expected_result1, test1)) # expected result: 10, actual result: 10.0
test2 = population_density(864816, 121.4)
expected_result2 = 7123.6902801
print("expected result: {}, actual result: {}".format(expected_result2, test2)) # expected result: 7123.6902801, actual result: 7123.690280065897

寫一個叫做 readable_timedelta 的函數,該函數有一個參數:整數 days,并返回一個表示由多少周多少天組成的字符串。例如 readable_timedelta(10) 應返回“1 week(s) and 3 day(s).”。

解決方案:

def readable_timedelta(days):
  weeks = int(days / 7)
  day = days % 7
  return str(weeks) + ' week(s) and ' + str(day) + ' day(s).'
print(readable_timedelta(10)) # 1 week(s) and 3 day(s).

函數中的變量作用域

  • 變量作用域是指可以在程序的哪個部分引用或使用某個變量。
  • 在函數中使用變量時,務必要考慮作用域。如果變量是在函數內創建的,則只能在該函數內使用該變量。你無法從該函數外面訪問該變量。

錯誤的示例:

# This will result in an error
def some_function():
  word = "hello"
print(word)

這意味著你可以為在不同函數內使用的不同變量使用相同的名稱, 正確的示例如下:

def some_function():
  word = "hello"
def another_function():
  word = "goodbye"

在函數之外定義的變量依然可以在函數內訪問。

word = "hello"
def some_function():
  print(word)
print(word)

Best Practise:建議將變量定義在所需的最小作用域內。雖然函數可以引用在更大的作用域內定義的變量,但是通常不建議這么做,因為如果程序有很多變量,你可能不知道你定義了什么變量。

注意:Python 不允許函數修改不在函數作用域內的變量,執行下列代碼,看發生了什么

egg_count = 0
def buy_eggs():
  egg_count += 12 # purchase a dozen eggs
buy_eggs()

此時會發生錯誤, 導致 UnboundLocalError : 當我們嘗試將函數外的一個變量的值更改或重新賦值為另一個值時,我們將遇到這個錯誤, 但是這個原則僅適用于整數和字符串, 列表、字典、集合、類中可以在子程序中(子函數)通過修改局部變量達到修改全局變量的目的。

關于Python相關內容感興趣的讀者可查看本站專題:《Python函數使用技巧總結》、《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡| 绥中县| 资兴市| 廉江市| 府谷县| 安达市| 龙山县| 青州市| 饶阳县| 安宁市| 上杭县| 琼结县| 津南区| 西充县| 永年县| 鹤壁市| 苍梧县| 霍城县| 白山市| 丰都县| 北碚区| 简阳市| 扶绥县| 定西市| 琼结县| 吐鲁番市| 中卫市| 苏尼特右旗| 二连浩特市| 灵璧县| 青阳县| 通城县| 安溪县| 广灵县| 若羌县| 盈江县| 富锦市| 阜平县| 咸阳市| 阜宁县| 峨眉山市|