天天看點

第八節:python函數

python個人筆記,友善查詢,與侵權無關。

<code>函數的定義:</code>

<code>def</code> <code>test():</code>

<code>    </code><code>print</code> <code>"hello world!"</code>

<code>test()     </code><code>#調用上面的test函數</code>

<code> </code> 

<code>定義一個參數為name的函數:</code>

<code>def</code> <code>mingzi(name):</code>

<code>    </code><code>print</code> <code>"hello %s,how old are you?"</code><code>%</code><code>name</code>

<code>mingzi(</code><code>'darren'</code><code>)         </code><code>#調用定義的函數</code>

<code>定義兩個參數的函數:</code>

<code>def</code> <code>info(name,age):</code>

<code>    </code><code>print</code> <code>"%s,%s"</code><code>%</code><code>(name,age)</code>

<code>info(</code><code>'darren'</code><code>,</code><code>'23'</code><code>)         </code><code>#調用兩個參數的函數</code>

<code>給函數添加一個幫助文檔:</code>

<code>    </code><code>'this is a help doc!'</code>

<code>n</code><code>=</code><code>"darren"</code>

<code>mingzi(n)     </code><code>#也可以先指派再調用函數</code>

<code>&gt;&gt;&gt;</code><code>import</code> <code>tab</code>

<code>&gt;&gt;&gt;</code><code>import</code> <code>three</code>

<code>&gt;&gt;&gt;</code><code>help</code><code>(three.mingzi)     </code><code>#檢視自己編寫的幫助文檔 </code>

<code>局部變量和全局變量:</code>

<code>局部變量:函數執行結束以後會失去作用。</code>

<code>def</code> <code>info (name):</code>

<code>    </code><code>age</code><code>=</code><code>22</code>

<code>    </code><code>print</code> <code>'your name is %s,you old is %s'</code><code>%</code><code>(name,age)</code>

<code>info(</code><code>'darren'</code><code>) </code>

<code>全局變量:在函數之外,全局生效。</code>

<code>age</code><code>=</code><code>26</code>

<code>聲明把全局變量變為局部變量(不建議使用):</code>

<code>    </code><code>global</code> <code>age           </code><code>#聲明</code>

<code>info(</code><code>'darren'</code><code>)  </code>

<code>print</code> <code>'age:'</code><code>,age         </code><code>#此處第一個age:是顯示age:并不是變量,後面的才是變量,這是讓一個print生成兩段内容的用法。</code>

<code>函數的預設參數: </code>

<code>def</code> <code>users(username,group</code><code>=</code><code>'iphone'</code><code>):          </code><code>#group='iphone'這裡也是一個指派變量,隻不過如果不指派,預設是iphone。</code>

<code>    </code><code>list</code><code>=</code><code>{}        </code><code>#定義一個字典</code>

<code>    </code><code>list</code><code>[username]</code><code>=</code><code>group        </code><code>#定義username為key,group為value,意思就是修改key的值為變量group</code>

<code>    </code><code>return</code> <code>list</code>

<code>print</code> <code>users(</code><code>'wang'</code><code>)</code>

<code>print</code> <code>users(</code><code>'wangjia'</code><code>,</code><code>"dongge"</code><code>)</code>

<code> </code><code>多預設值變量:</code>

<code>def</code> <code>info (name,age,internation</code><code>=</code><code>'zhongguo'</code><code>,provice</code><code>=</code><code>'shandong'</code><code>):</code>

<code>    </code><code>print</code> <code>internation,provice</code>

<code>info(</code><code>'darren'</code><code>,</code><code>'age'</code><code>,provice</code><code>=</code><code>'beijing'</code><code>,internation</code><code>=</code><code>'meiguo'</code><code>)    </code><code>#預設指派的變量可以沒有順序,但是無預設值的變量必須在有預設值得變量的前面。</code>

<code>函數的關鍵參數:</code>

<code>def</code> <code>fun(a,b</code><code>=</code><code>5</code><code>,c</code><code>=</code><code>10</code><code>):</code>

<code>    </code><code>print</code> <code>a,b,c</code>

<code>fun(</code><code>3</code><code>,</code><code>7</code><code>)</code>

<code>fun(</code><code>25</code><code>,c</code><code>=</code><code>24</code><code>)</code>

<code>fun(c</code><code>=</code><code>50</code><code>,a</code><code>=</code><code>100</code><code>)  </code>

<code>#重點:函數增加一個特殊參數,可以任意賦多個值。</code>

<code>def</code> <code>test(</code><code>*</code><code>.args):</code>

<code>    </code><code>print</code> <code>args</code>

<code>test(</code><code>'darren'</code><code>,</code><code>'wang'</code><code>,</code><code>'29'</code><code>)</code>

<code>#把一個字典指派給函數,字典key對應的值就是變量。</code>

<code>def</code> <code>testa (</code><code>*</code><code>*</code><code>kargs):</code>

<code>    </code><code>print</code> <code>kargs</code>

<code>name_list</code><code>=</code><code>{</code>

<code>'name'</code><code>=</code><code>'wang'</code><code>,</code>

<code>'age'</code><code>=</code><code>'22'</code><code>,</code>

<code>'iphone'</code><code>=</code><code>'pingguo'</code>

<code>}</code>

<code>testa(name</code><code>=</code><code>'darren'</code><code>,age</code><code>=</code><code>'18'</code><code>,iphone</code><code>=</code><code>'sanxing'</code><code>)</code>

<code>#有時候我們希望能把函數執行的結果儲存下來,這時候就需要return參數:</code>

<code>def</code> <code>users(username,group</code><code>=</code><code>'iphone'</code><code>):  </code>

<code>    </code><code>list</code><code>=</code><code>{}     </code>

<code>    </code><code>list</code><code>[username]</code><code>=</code><code>group    </code>

<code>yonghu</code><code>=</code><code>users(</code><code>'wang'</code><code>,</code><code>'group='</code><code>linux')</code>

<code>print</code> <code>yonghu </code>

<code>lambda</code><code>匿名函數:</code>

<code>&gt;&gt;&gt; a</code><code>=</code><code>lambda</code> <code>x:x</code><code>+</code><code>2</code>

<code>&gt;&gt;&gt; a(</code><code>2</code><code>)</code>

<code>4</code>

<code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code>

<code>a</code><code>=</code><code>range</code><code>(</code><code>10</code><code>)</code>

<code>map</code><code>(</code><code>lambda</code> <code>x:x</code><code>*</code><code>*</code><code>2</code><code>,a)</code>

<code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code>

<code>def</code> <code>f(x):</code>

<code>        </code><code>return</code> <code>x</code><code>*</code><code>*</code><code>2</code>

<code>print</code> <code>f(</code><code>4</code><code>)</code>

<code>普通函數和下面</code><code>lambda</code><code>函數相同</code>

<code>g</code><code>=</code><code>lambda</code> <code>x:x</code><code>*</code><code>*</code><code>2</code>

<code>print</code> <code>g(</code><code>4</code><code>) </code>

<code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code>

本文轉自 王家東哥 51CTO部落格,原文連結:http://blog.51cto.com/xiaodongge/1877781