python學習2

python學習二

一些常用函數

1.cmp()
內建函數 cmp()用于比較兩個對象 obj1 和 obj2, 如果 obj1 小于 obj2, 則返回一個負整
數,如果 obj1 大于 obj2 則返回一個正整數, 如果 obj1 等于 obj2, 則返回 0。它的行為非常
類似于 C 語言的 strcmp()函數。比較是在對象之間進行的,不管是標準類型對象還是用戶自定
義對象。如果是用戶自定義對象, cmp()會調用該類的特殊方法__cmp__()。在第 13 章會詳細
介紹類的這些特殊方法。下面是幾個使用 cmp()內建函數的對數值和字符串對象進行比較的例
子。
>>> a, b = -4, 12
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b = -4
>>> cmp(a,b)
0
>>>
>>> a, b = 'abc', 'xyz'
>>> cmp(a,b)
-23
>>> cmp(b,a)
23
>>> b = 'abc'
>>> cmp(a,b)
0

2.str()和 repr() (及 `` 運算符)
內建函數 str() 和 repr() 或反引號運算符(``) 可以方便的以字符串的方式獲取對象的
內容、類型、數值屬性等信息。str()函數得到的字符串可讀性好, 而 repr()函數得到的字符
串通常可以用來重新獲得該對象, 通常情況下 obj == eval(repr(obj)) 這個等式是成立的。
這兩個函數接受一個對象做為其參數, 返回適當的字符串。在下面的例子里, 我們會隨機取
一些 Python 對象來查看他們的字符串表示。
>>> str(4.53-2j)
'(4.53-2j)'
>>>
>>> str(1)
'1'
>>>
>>> str(2e10)
'20000000000.0'
>>>
>>> str([0, 5, 9, 9])
'[0, 5, 9, 9]'
>>>
>>> repr([0, 5, 9, 9])
'[0, 5, 9, 9]'
>>>
>>> `[0, 5, 9, 9]`
'[0, 5, 9, 9]'


3.type() 和 isinstance()
type()返回對象的類型
isinstance()  

4.abs()
    abs() 返回絕對值
    
5.pow() 和**
    指數運算
    
6.enumerate()
    enumerate() 將一個iter 變成一個 帶index 的 iter
    
7.len()
    返回長度
    
8.zip()
    >>> s, t = 'foa', 'obr'
    >>> zip(s, t)
    [('f', 'o'), ('o', 'b'), ('a', 'r')]
    
9.sorted() and reversed()
>>> s = ['They', 'stamp', 'them', 'when', "they're", 'small']
>>> for t in reversed(s):
... print t,
...
small they're when them stamp They
>>> sorted(s)
['They', 'small', 'stamp', 'them', "they're", 'when']
初學者使用字符串, 應該注意是如何把單引號和雙引號的使用矛盾和諧掉.同時還要注意字
符串排序使用的是字典序,而不是字母序(字母'T'的 ASCII 碼值要比字母'a'的還要靠前)

10.sum()
>>> a = [6, 4, 5]
>>> reduce(operator.add, a)
15
>>> sum(a)
15
>>> sum(a, 5)
20
>>> a = [6., 4., 5.]
>>> sum(a)
15.0


11.
List Method Operation
list.append(obj) 向列表中添加一個對象 obj
list.count(obj) 返回一個對象 obj 在列表中出現的次數
list.extend(seq)a 把序列 seq 的內容添加到列表中
list.index(obj, i=0,
j=len(list)) 返回 list[k] == obj 的 k 值,并且 k 的范圍在 i<=k<j;否則
引發 ValueError 異常.
list.insert(index, obj) 在索引量為 index 的位置插入對象 obj.
list.pop(index=-1)a 刪除并返回指定位置的對象,默認是最后一個對象
list.remove(obj) 從列表中刪除對象 obj
list.reverse() 原地翻轉列表
list.sort(func=None,key=None,reverse=False)b 以指定的方式排序列表中的成員,如果 func 和 key 參數指定,
則按照指定的方式比較各個元素,如果 reverse 標志被置為
True,則列表以反序排列.
>>> music_media = [45]
>>> music_media
[45]
>>>
>>> music_media.insert(0, 'compact disc')
>>> music_media
['compact disc', 45]
>>>
>>> music_media.append('long playing record')
>>> music_media
['compact disc', 45, 'long playing record']
>>>
>>> music_media.insert(2, '8-track tape')
>>> music_media
['compact disc', 45, '8-track tape', 'long playing record']
在前面的例子中,我們用一個元素初始化了一個列表,然后當向列表插入元素,或在尾部追
加新的元素后,都會去檢查這個列表.現在確認一下一個值是否在我們的列表中,并看看如何找
出元素在列表中的索引值.我們用 in 操作符和 index()方法實現這兩個需求.
>>> 'cassette' in music_media
False
>>> 'compact disc' in music_media
True
>>> music_media.index(45)
1
>>> music_media.index('8-track tape')
2
>>> music_media.index('cassette') Traceback (innermost last):
File "<interactive input>", line 0, in ? ValueError: list.index(x): x not in list
噢!最后一個例子怎么出錯了?呃,看起來用 index()來檢查一個元素是否存在于一個 list
中并不是個好主意,因為我們出錯了.應該先用 in 成員關系操作符(或者是 not in)檢查一下,然
后在用 index()找到這個元素的位置。我們可以把最后幾個對 index()調用放到一個單獨的 for
循環里面,像這樣:
for eachMediaType in (45, '8-track tape', 'cassette'):
if eachMediaType in music_media:
print music_media.index(eachMediaType)
這個方案避免了我們上面犯的錯誤,因為在確認一個元素屬于該列表之前 index()方法是不
會被調用的.稍后我們將會發現該如何處理這種錯誤,而不是這樣的一出錯,程序就崩潰了。
接下來我們測試 sort()和 reverse()方法,它們會把列表中的元素排序,然后翻轉.
>>> music_media
['compact disc', 45, '8-track tape', 'long playing record']
>>> music_media.sort()
>>> music_media
[45, '8-track tape', 'compact disc', 'long playing record']
>>> music_media.reverse()
>>> music_media
['long playing record', 'compact disc', '8-track tape', 45]


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 上一篇本來想寫純Python的基礎,結果寫個安裝配置就寫了好多。這次新開一篇,記錄真·Python基礎知識。 1....
    ZzzsWszzZ閱讀 549評論 0 0
  • 在上一章中,我們構建了一個爬蟲,可以通過跟蹤鏈接的方式下載我們所需的網頁。雖然這個例子很有意思,卻不夠實用,因為爬...
    海人為記閱讀 827評論 0 0
  • Author: 杜七 一、基礎類型變量的賦值等等 1,數組賦值和操作 2,更快的數組賦值 上面都是先創建一個pyt...
    杜七閱讀 316評論 0 2
  • 本系列內容來源于 廖雪峰的Python教程 點擊查看原文 迭代 列表生成式 生成器 列表生成器 生成器函數 高級函...
    旋哥閱讀 761評論 0 1
  • 昨夜星辰昨夜風, 吹落相思凝成殤, 但使此時復彼時, 何須揮豪訴愁腸?
    天堂有鬼閱讀 184評論 0 0