亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python學(xué)習(xí)筆記之函數(shù)的定義和作用域?qū)嵗斀?/h1>
系統(tǒng) 2302 0

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

定義函數(shù)

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

            
# 如果調(diào)用 cylinder_volume 函數(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í)]

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

解決方案:

            
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 的函數(shù),該函數(shù)有一個參數(shù):整數(shù) days,并返回一個表示由多少周多少天組成的字符串。例如 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ù)中的變量作用域

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

錯誤的示例:

            
# 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)定義的變量,但是通常不建議這么做,因為如果程序有很多變量,你可能不知道你定義了什么變量。

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

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


          

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

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

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 福利在线免费视频 | 成人网18免费网站在线 | 久久精品伊人波多野结 | 国产一区二区在线不卡 | 亚洲视频 在线观看 | 97在线成人免费视频观看 | 在线观看欧美视频 | 日日操天天操夜夜操 | 久久五月天综合网 | 国产欧美日韩免费一区二区 | 九九福利 | 真实的国产乱xxxx | 亚洲涩色| 久久国产香蕉视频 | 久青草视频免费观看青 | 四虎永久在线精品免费影视 | 国产成人综合亚洲一区 | 国内精品久久久久久久亚洲 | 亚洲视频免费在线观看 | 久久久久久久久66精品片 | 99热这里只有精品在线观看 | 久久久久国产午夜 | jiucao在线观看精品 | 最新四虎4hu影库地址在线 | 久久亚洲这里只有精品18 | 在线亚洲精品国产波多野结衣 | 国内视频自拍 | 国产91在线免费观看 | 在线免费观看a视频 | 国产一区二区在线视频观看 | 国产精品视频一区麻豆 | 亚洲欧美在线中文字幕不卡 | 啪啪毛片 | 亚洲国产精品久久久久久网站 | 中文字幕免费视频精品一 | 国产精品亚洲二区在线 | 亚洲色图插插插 | 99视频在线看观免费 | 国产a久久精品一区二区三区 | 国产区视频 | 精品国偷自产在线 |