天天看點

Python學習筆記(4)

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/3696962

Python學習筆記(4)

1)Python Objects

所有的Python對象都有下列三個特征:

  id:對象間互相差別的唯一辨別符。任何對象的id均可通過内建的id()函數獲得,其值為記憶體位址。

  類型:對象的類型訓示對象能保持的類型、能應用的操作。可使用内建的type()函數顯示對象的類型。

  值:對象表示的資料項。

确定的Python對象有熟悉、資料值或可執行代碼(如方法)等。

2)标準類型

· 數字(4種單獨的子類型)

  -Regular或純整數

  -長整數

  -浮點實數

  -複雜數

· 字元串String

· 清單List

· 元組Tuple

· 字典Dictionary

标準類型也作為原始資料類型。在Python中,标準資料類型不是類,是以建立整數和字元串時不涉及執行個體化。還意味着你不能子類化一個标準類型。

3)其它内建類型

· Type類型

· None空

· File檔案

· Function函數

· Module子產品

· Class類

· Class Instance類執行個體

· Method方法

Types和内建的type()函數

type()内建函數:得到對象并傳回其類型。

>>> type(4)

<type 'int'>

>>> type('Hello world!')

<type 'str'>

>>> type (type(4))

<type 'type'>

4)None

Python有一個特殊的None對象,它僅有一個值,None。None值等同于C語言的null。None沒有屬性,總等于布爾值的false。

5)内部類型

-Code

  Code對象是位元組編譯的Python源碼的可執行塊,通常通過調用内建函數compile()傳回值。

  此對象通過exec或内建函數eval()執行。

-Frame

  Frame對象包含Python解釋器在Runtime執行環境所需的所有資訊。

-Traceback

  Traceback對象是一資料項,存儲異常建立或出現時的堆棧跟蹤資訊。

-Slice

  當使用Python擴充slice文法時,将建立Slice對象。此擴充文法允許不同的索引類型。這些索引類型包括步距(stride)索引、多元(multi-dimensional)索引,以及使用省略(Ellipsis)類型的索引。

-Ellipsis

  當使用擴充slice符号時,使用Ellipsis對象。

-Xrange

  Xrange對象通過内建函數xrange()建立。

6)标準操作類型

f1和f2引用同一對象:f1 = f2 = 4

f1和f2引用不同對象:f1 = 4; f2 = 3+1

7)内建函數标準類型

cmp(obj1, obj2):比較obj1和obj2的值,傳回值為:-1,0,1。

repr(obj):obj轉換為字元串,且兩邊加上“'”符号。

str(obj):obj轉換為字元串。

type(obj):檢視類型。

import string

alphas = string.letters+'_'

nums = string.digits

print alphas

print nums

print 'Welcome to the Identifier Checker v1.0'

print 'Testees must be at least 2 chars long.'

inp = raw_input('Identifier to test?')

if len(inp)>1:

  if inp[0] not in alphas:

  print '''invalid: first symbol must be alphabetic'''

  else:

  for otherChar in inp[1:]:

  if otherChar not in alphas + nums:

  print '''invalid: remaining symbols must be alphanumeric'''

  break

  else:

  print "okey as an identifier"

8)String的内建方法

string.capitalize() 大寫字元串的第一個字母

string.center(width) 字元串以給定寬度顯示,如長度不足,兩邊補充空格

string.count(str,beg=0,end=len(string)) 計算str在字元串中出現的次數

string.encode(encoding='UTF-8', errors='strict') 字元串轉換編碼,error還有ignore或replace

string.endswith(str,beg=0,end=len(string)) 檢視字元串是否以str結尾

string.expandtabs(tabsize=8) 傳回字元串,其所有/t用空格代替

string.find(str, beg=0,end=len(string)) 檢視子字元串,如子串未發現則傳回-1

string.index(str, beg=0,end=len(string)) 同find(),但子串未發現則傳回ValueError

string.isalpha() 字元串所有字母均為字元則傳回真

string.isdigit() 字元串至少有1個字元,且所有字元均為數字,則傳回真

string.islower() 判斷字元串所有字元是否小寫

string.isspace() 判斷字元串是否為空格

string.istitle()  

string.issupper()

string.lower() 轉換所有大寫字母為小寫

string.replace(str1,str2,num=string.count(str1)) 在字元串中用str2替換str1

string.split(str="",num=string.count(str))  

string.upper() 轉換所有小寫字母為大寫

例子:

>>> quest = 'what is your favorite color?'

>>> quest.capitalize()

'What is your favorite color?'

>>> quest.count('or')

2

>>> quest.endswith('blue')

False

>>> quest.endswith('color')

>>> quest

'what is your favorite color?'

>>> quest.endswith('color?')

True

>>> quest.find('or',30)

-1

>>> quest.find('or',22)

25

>>> quest.index('or',10)

16

>>> ':'.join(quest.split())

'what:is:your:favorite:color?'

>>> quest.upper()

'WHAT IS YOUR FAVORITE COLOR?'