最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python學(xué)習(xí)筆記之函數(shù)的定義和作用域?qū)嵗斀?/h1>
 更新時(shí)間:2019年08月13日 11:17:01   作者:Johnny丶me  
這篇文章主要介紹了Python學(xué)習(xí)筆記之函數(shù)的定義和作用域,結(jié)合實(shí)例形式詳細(xì)分析了Python函數(shù)的定義、參數(shù)使用、變量作用域相關(guān)問題與解決方法,需要的朋友可以參考下

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

定義函數(shù)

默認(rèn)參數(shù): 可以向函數(shù)中添加默認(rèn)參數(shù),以便為在函數(shù)調(diào)用中未指定的參數(shù)提供默認(rèn)值

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

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

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

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

定義函數(shù)[相關(guān)練習(xí)]

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

解決方案:

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

寫一個(gè)叫做 readable_timedelta 的函數(shù),該函數(shù)有一個(gè)參數(shù):整數(shù) days,并返回一個(gè)表示由多少周多少天組成的字符串。例如 readable_timedelta(10) 應(yīng)返回“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).

函數(shù)中的變量作用域

  • 變量作用域是指可以在程序的哪個(gè)部分引用或使用某個(gè)變量。
  • 在函數(shù)中使用變量時(shí),務(wù)必要考慮作用域。如果變量是在函數(shù)內(nèi)創(chuàng)建的,則只能在該函數(shù)內(nèi)使用該變量。你無法從該函數(shù)外面訪問該變量。

錯(cuò)誤的示例:

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

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

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

在函數(shù)之外定義的變量依然可以在函數(shù)內(nèi)訪問。

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

Best Practise:建議將變量定義在所需的最小作用域內(nèi)。雖然函數(shù)可以引用在更大的作用域內(nèi)定義的變量,但是通常不建議這么做,因?yàn)槿绻绦蛴泻芏嘧兞?,你可能不知道你定義了什么變量。

注意:Python 不允許函數(shù)修改不在函數(shù)作用域內(nèi)的變量,執(zhí)行下列代碼,看發(fā)生了什么

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

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

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

旺苍县| 准格尔旗| 额济纳旗| 寿光市| 禹州市| 博湖县| 眉山市| 扎兰屯市| 县级市| 新建县| 南部县| 武川县| 连江县| 滕州市| 离岛区| 武义县| 三明市| 扬州市| 颍上县| 福安市| 松阳县| 乐清市| 左权县| 清水县| 永登县| 泸州市| 安溪县| 板桥市| 大足县| 安仁县| 阿克| 福贡县| 南丹县| 韶关市| 交城县| 洞口县| 莱阳市| 鹤庆县| 长岛县| 隆安县| 历史|