<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          函數(shù)

          共 1387字,需瀏覽 3分鐘

           ·

          2020-09-02 03:58

          一、引入——代碼復(fù)用情境

          ? ? 有時(shí)候我們需要反復(fù)使用某些代碼,比如組合圖形出現(xiàn)多個(gè)五角星。如果到處拷貝這些代碼,會(huì)出現(xiàn)弊端,一是程序變得冗長(zhǎng),可讀性差;二是一旦需要修改或擴(kuò)充,要在各處同步改代碼,容易出錯(cuò);三是可維護(hù)性差。

          ? ? ? 那么我們可以用什么方法解決呢?


          二、函數(shù)(functions)

          ? ?? 我們把這些重復(fù)代碼單獨(dú)收集起來(lái),組成一個(gè)“函數(shù)”對(duì)象,并賦予一個(gè)名稱,在需要用到這些代碼的時(shí)候就通過(guò)名稱加括號(hào)來(lái)“呼叫”這些“函數(shù)” 。前者稱為函數(shù)定義(define),后者稱為函數(shù)調(diào)用(call)。

          三、定義函數(shù):def語(yǔ)句

          ? ?? ? 函數(shù)定義語(yǔ)句def:def <函數(shù)名稱>([<參數(shù)表>]):

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <語(yǔ)句塊>

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [return <返回值>]

          ?? ? 幾個(gè)要素:def關(guān)鍵字、函數(shù)名稱(后跟一對(duì)圓括號(hào))、(可選的)參數(shù)表、語(yǔ)句塊、(可選的)返回值。




          四、函數(shù)的參數(shù)

          ? ? 如果代碼塊里沒(méi)有可供調(diào)節(jié)的選項(xiàng),可以定義沒(méi)有參數(shù)的簡(jiǎn)單函數(shù)。一般函數(shù)會(huì)帶有可供調(diào)節(jié)的選項(xiàng)參數(shù),參數(shù)可以有多個(gè),如畫(huà)五角星的函數(shù),包含兩個(gè)參數(shù):大小size和顏色color。

          五、函數(shù)的返回值

          有時(shí)候函數(shù)會(huì)有返回值,如math模塊中求平方根的函數(shù)math.sqrt(n)返回n的平方根。return語(yǔ)句負(fù)責(zé)結(jié)束函數(shù)執(zhí)行,并返回。return語(yǔ)句可以根據(jù)需要,出現(xiàn)在語(yǔ)句塊中的任何位置。



          六、函數(shù)定義中的代碼塊

          由于函數(shù)定義def語(yǔ)句僅僅是把代碼塊“打包封裝” ,當(dāng)def語(yǔ)句執(zhí)行的時(shí)候,代碼塊并不會(huì)被執(zhí)行,所以,在執(zhí)行def語(yǔ)句的時(shí)候,除非語(yǔ)句塊中包含了明顯的語(yǔ)法錯(cuò)誤。Python解釋器是不會(huì)檢查語(yǔ)句塊中其它錯(cuò)誤的。



          七、調(diào)用函數(shù):call function

          def定義了函數(shù)之后,函數(shù)名稱僅代表這個(gè)“函數(shù)對(duì)象” ,如果需要執(zhí)行語(yǔ)句塊代碼,需要有如下的要素:函數(shù)名稱(后加括號(hào))、括號(hào)內(nèi)放置參數(shù)的具體值。沒(méi)有或者不需要返回值:func(a,b,c) #如調(diào)用star。獲取返回值:v = func(a,b,c)。



          八、拓展——隨機(jī)數(shù)模塊random

          ? 產(chǎn)生一定范圍內(nèi)的隨機(jī)數(shù)

          random.randint(min,max)

          ? 從列表中隨機(jī)選擇

          random.choice(list)



          練一練:畫(huà)組合圖形

          ? 定義一個(gè)多邊形函數(shù):

          def polygon(n,size,color):

          ? 繪制正n邊形,邊長(zhǎng)為size,填充顏色color

          ? 編寫(xiě)一個(gè)程序,繪制現(xiàn)代時(shí)尚幾何多邊形色塊抽象裝飾畫(huà)

          ? 隨機(jī)模塊random

          ? t.goto(x,y)


          成品圖樣式:

          上期參考答案



          推薦閱讀

          if語(yǔ)句與while語(yǔ)句

          迭代循環(huán):for語(yǔ)句


          《數(shù)據(jù)科學(xué)與人工智能》公眾號(hào)推薦朋友們學(xué)習(xí)和使用Python語(yǔ)言,需要加入Python語(yǔ)言群的,請(qǐng)掃碼加我個(gè)人微信,備注【姓名-Python群】,我誠(chéng)邀你入群,大家學(xué)習(xí)和分享。


          關(guān)于Python語(yǔ)言,有任何問(wèn)題或者想法,請(qǐng)留言或者加群討論。

          瀏覽 32
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美亚洲操逼图片 | 亚洲国产AV天堂 | 偷拍视频中文字幕资源 | 欧美大香蕉网站 | 黄片试看|