函數分類:
内置函數
系統自己定義的方法
自定義函數
開發者自己寫的能完成某一個功能的代碼塊
導入子產品(第三方子產品)
在系統和開發者之外别人完成的能實作某一功能的代碼塊
示例腳本:
<code>#vim Built-in function.py</code>
<code>#!/usr/bin/env python</code>
<code># -*- coding:utf-8 -*-</code>
<code>"""該腳本是Python内置函數的測試腳本"""</code>
<code>li </code><code>=</code> <code>[</code><code>13</code><code>,</code><code>22</code><code>,</code><code>6</code><code>,</code><code>99</code><code>,</code><code>11</code><code>]</code>
<code>name </code><code>=</code> <code>'alex'</code>
<code>print</code> <code>vars</code><code>()</code>
#vars()是代表目前子產品的所有變量,print vars()列印所有的變量
輸出結果:
<code>{</code><code>'name'</code><code>: </code><code>'alex'</code><code>, </code><code>'__builtins__'</code><code>: <module </code><code>'__builtin__'</code> <code>(built</code><code>-</code><code>in</code><code>)>, </code><code>'__file__'</code><code>: </code><code>'C:/Users/ryan/PycharmProjects/s11day3/Built-in function.py'</code><code>, </code><code>'__author__'</code><code>: </code><code>'ryan'</code><code>, </code><code>'li'</code><code>: [</code><code>13</code><code>, </code><code>22</code><code>, </code><code>6</code><code>, </code><code>99</code><code>, </code><code>11</code><code>], </code><code>'__name__'</code><code>: </code><code>'__main__'</code><code>, </code><code>'__package__'</code><code>: </code><code>None</code><code>, </code><code>'__doc__'</code><code>: </code><code>None</code><code>}</code>
從圖上可以看到輸出的是一個字典:
<code>name:alex</code>
<code>li: [</code><code>13</code><code>, </code><code>22</code><code>, </code><code>6</code><code>, </code><code>99</code><code>, </code><code>11</code><code>]</code>
是我們自己定義的兩個變量,下面的這些函數都是系統内置的函數,具體功能如下
<code>__builtins__:<module </code><code>'__builtin__'</code> <code>(built</code><code>-</code><code>in</code><code>)></code>
<code>__file__:C:</code><code>/</code><code>Users</code><code>/</code><code>ryan</code><code>/</code><code>PycharmProjects</code><code>/</code><code>s11day3</code><code>/</code><code>Built</code><code>-</code><code>in</code> <code>function.py</code>
<code>__author__:ryan</code>
<code>__name__:__main__</code>
<code>__package__:</code><code>None</code>
<code>__doc__: </code><code>None</code>
從字典的鍵值對可以發現,
内置函數__file__ 其實是列印運作的腳本本身,即Built-in function.py
内置函數__doc__ 是擷取函數或者檔案解釋的内容,比如我們在檔案開始寫上注釋内容
"""
該腳本是Python内置函數的測試腳本
此時列印__doc__,則可以通過__doc__函數列印出來
C:/Users/ryan/PycharmProjects/s11day3/Built-in function.py
内置函數:__name__ 執行腳本時。腳本中的__name__的值為"__main__",導入子產品到腳本中,子產品中的__name__的值是子產品本身
還是以上面的腳本為例:
<code>import</code> <code>coll</code>
<code>print</code> <code>coll.__name__</code>
<code>print</code> <code>"###############"</code>
<code>print</code> <code>__name__</code>
輸出結果為:
<code>coll</code>
<code>###############</code>
<code>__main__</code>
可以發現:coll中的__name__内置方法的值等于coll,Built-in function.py中的__name__
等于__main__
即導入子產品中的__name__方法值為子產品名字,被執行腳本中的__name__方法的值為__main__
在寫Python腳本時,一般在結尾會出現如下語句:
<code>if</code> <code>__name </code><code>=</code> <code>"__main__"</code><code>:</code>
<code> </code><code>函數function()</code>
意思是當直接執行腳本的時候,才會調用該函數,如果用其他方法執行(或者導入到其他檔案中)函數都不會執行函數function()
常用的函數(方法):
#基礎類型級别
<code>help</code><code>()</code>
<code>dir</code><code>()</code>
<code>vars</code><code>()</code>
<code>type</code><code>()</code>
<code>reload</code><code>()</code>
<code>id</code><code>()</code>
<code>is</code>
#計算類别的
<code>cmp</code><code>()</code>
<code>abs</code><code>()</code>
<code>bool</code><code>()</code>
<code>divmod</code><code>() </code><code>-</code><code>-</code><code>-</code><code>>設計頁面分頁用該函數,求出商和餘數,判斷是否加N</code>
<code>max</code><code>()</code>
<code>min</code><code>()</code>
<code>sum</code><code>()</code>
<code>pow</code><code>() </code><code>-</code><code>-</code><code>-</code><code>>幂運算</code>
##################
<code>len</code><code>() </code><code>-</code><code>-</code><code>-</code><code>>求序列長度</code>
<code>all</code><code>() </code><code>-</code><code>-</code><code>-</code><code>>接收一個序列,判斷,如果的值都是真的,那麼</code><code>all</code><code>()傳回真,否則傳回假,可用于判斷使用者輸入是否為空</code>
<code>any</code><code>() </code><code>-</code><code>-</code><code>-</code><code>>跟</code><code>all</code><code>()類似,差別是隻要接收的内容中有一個為真,則傳回真,否則傳回假</code>
#編碼轉換
<code>chr()----->接收一個字元,根據字元求出該字元在ascii碼中的數字表示</code>
<code>ord()----->接收一個數字,根據數字求出該數字在ascii碼中表示的字母</code>
#進制轉換
<code>hex</code><code>() </code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>>十六進制</code>
<code>oct</code><code>() </code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>>八進制</code>
<code>bin</code><code>() </code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>>二進制</code>
<code>>>> </code><code>hex</code><code>(</code><code>12</code><code>)</code>
<code>'0xc'</code>
<code>>>> </code><code>oct</code><code>(</code><code>12</code><code>)</code>
<code>'014'</code>
<code>>>> </code><code>bin</code><code>(</code><code>12</code><code>)</code>
<code>'0b1100'</code>
<code>>>></code>
enumerate()------->将傳入的清單可以組成字典
<code>>>> li </code><code>=</code> <code>[</code><code>11</code><code>,</code><code>22</code><code>,</code><code>33</code><code>,</code><code>44</code><code>,</code><code>55</code><code>,</code><code>66</code><code>]</code>
<code>>>> </code><code>for</code> <code>k,v </code><code>in</code> <code>enumerate</code><code>(li):</code>
<code>... </code><code>print</code> <code>k,v</code>
<code>...</code>
<code>0</code> <code>11</code>
<code>1</code> <code>22</code>
<code>2</code> <code>33</code>
<code>3</code> <code>44</code>
<code>4</code> <code>55</code>
<code>5</code> <code>66</code>
指定數字的起始值,不加1,預設從0開始
<code>>>> </code><code>for</code> <code>k,v </code><code>in</code> <code>enumerate</code><code>(li,</code><code>1</code><code>):</code>
<code>1</code> <code>11</code>
<code>2</code> <code>22</code>
<code>3</code> <code>33</code>
<code>4</code> <code>44</code>
<code>5</code> <code>55</code>
<code>6</code> <code>66</code>
常見的函數相關的方法:
<code>print</code> <code>apply</code><code>(Function,(</code><code>'aaaa'</code><code>)) </code>
<code>#執行函數</code>
<code>print</code> <code>map</code><code>(</code><code>lambda</code> <code>x:x</code><code>+</code><code>1</code><code>,[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,]) </code>
<code>#print filter(lambda x:x==1,[1,2,3,4])</code>
<code>#序列</code>
<code>print</code> <code>reduce</code><code>(</code><code>lambda</code> <code>x,y:x</code><code>+</code><code>y,[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>]) </code>
<code>#累加</code>
<code>print</code> <code>zip</code><code>(x,y,z)</code>
本文轉自027ryan 51CTO部落格,原文連結:http://blog.51cto.com/ucode/1717648,如需轉載請自行聯系原作者