1、int型別
int型別的資料是沒有長度限制的,它的最大長度只與計算機的記憶體有關。
1 bin(i) 返回二進位制表示結果, 2 hex(i) 十六進位制, 3 int(i) 整數(如果x是浮點數就會返回其整數部分, 4 oct(i) 八進位制, 5 int(s,base)將字串轉換為整數.冪可以用**實現(10**5,2**4).內建的float與str型別都支援到整數的轉換。 6 chr() 將數字轉換成字元, 7 ord() 將字元轉換成ASCII碼; 8 round() 函式對值進行四捨五入。整數和浮點數相加結果是浮點型。
2、簡單比較兩個float是否相等
def equal_float(a,b): return abs(a-b)<=sys.float_info.epsilon
3、複數
複數的表示需在虛部後加一個j,如z=3.5+2j,其中實部和虛部可分別用z.real,z.imag取得。專用函式z.conjugate()可以反轉虛部的符號。
4、Decimal,
特點:精度高,但計算速度比float慢,使用前需引進模組。
a=decimal.Decimal(5555)或a=decimal.Decimal("555.555")
5、字串
對字串內使用的單引號或者雙引號,如果與最外層的相同則需要進行轉義,如果不同則可以直接使用。
字串轉義:
\newline 忽略換行,
\\ 反斜槓,
\' 單引號,
\" 雙引號,
\a 蜂鳴,
\b 退格,
\f 走紙,
\n 換行,
\r 回車,
\t 製表符。
6、負索引
即從-1開始從末尾倒數。
7、字串的分片操作(seq[start:end];seq[start:end:step]
seq[start:end],表示兩個位置之間的字元(區間為左閉右開,即[start,end)),無start則預設為0,無end則預設為len(seq),
seq[:]表示整個字串。
字串的追加可用+=,但並不是特別高效,連線大量字串可用seq.join()。
"xx".join(seq)則可以將xx依次插入每兩個seq元素之間,形成一個str。
seq[star:end:step]與前一種類似,但是step不能為空,且必須大於0,即步長。
8、reversed()反轉一個集合內元素的排列順序。
9、字元查詢(index(),find())
find()找到目標時返回該字元在字串中的索引位置,沒找到則返回-1;index()找到時也返回索引位置,沒找到則產生一個ValueError異常。函式前邊加r的(rfind(),rindex())表示逆序開始查詢。
find()、index都可接受至多兩個可選引數(起點、終點):
str.find("m",6)=str[6:].find("m")
str.find("m",2,5)=str[2:5].find("m")
類似的函式還有:str.count(),str.endswith(),str.startswith()。
10、字串分割partition(),rpartition(),split(),strip()
patition()將字串分割為三段:關鍵字前,關鍵字,關鍵字後.
split()將字串以關鍵字為分割點進行分割(結果不包含關鍵字)
strip()將字串的首尾空格去掉,如果給了引數,就去掉首尾的引數,但引數必須是位於字串的首尾,不然去不掉.分支函式lstrip(),rstrip()為去掉左邊或者右邊的末端空格或字元.
11、字串的格式化 str.format()
1>"a{0}cd{1}".format("one","two")。被替換字元用{}包圍,用數字格式表示時0,1依次表示format內給定引數的索引位置。如要想在替換後的字串中出現花括號,則需在原字串中進行復寫或三寫({{0}},{{{1}}})。對於3.1以上的python,{}內可以為空,不寫索引值,系統會預設次數下去為空的{}索引值為0,1,2,3...
這種替換方法還可用來解決字串與數字連線會產生TypeError異常的問題。
2>"a{who} was {0}".format(12,who="she") 欄位名替代索引方法如左,但如果同時存在欄位名和索引時,索引位置須放置在索引之前,如樣例中不能將0改成1而把對應的引數12放在第二位。
3>對於一個集合(如:stock=["a","b","c"])可用:"{0[1]}{0[2]}".format(stock)
對於一個字典(如d=dic(a1="xx",a2="xxx")可用:"{0[a1]}{0[a2]}".format(d) 或者:"{a1}{a2}".format(**d) **在此處為對映拆分操作符,對於已經賦值的變數也可結合內建的locals()函式以相似的方法達成替換,c="xx";d=34;"{c}ad{d}".format(**locals())。
4>格式轉換(r,s,a)用法:{0!r}
s-強制使用字串格式,r-強制使用表象形式,a-強制使用表象形式(只限於ASCII字元)
5>字串格式規約(樣:"{0:*>10.25}"):以冒號開始,接著為充填字元(*),然後為對齊字元(>右對齊,<左對齊,^居中對齊),10為最小寬度,25為最大寬度,最大寬度前用"."引導。所有引數都是可選的,但如果指定了充填符就必須同時指定一個對齊符(對齊符可單獨出現,結果以空格充填)
>整數格式規約(樣:"{0:0^+#15X):與字元的大致相同,+為可選,位於對齊與最小寬度之間(表示必須輸出正負號,還有-表示只用輸出負號,空格表示正數輸出空格負數輸出負號),#位於最小寬度之前,用於輸入當前資料型別,#也可以用0替換(表示用0進行充填,此充填法可不指定對齊方式);X表示輸出資料轉換型別(b二進位制,o八進位制,x小寫十六進位制,X大寫十六進位制,d十進位制,c輸出整數對應的Unicode字元,n表示場所敏感輸出方式: import locale
locale.setlocale(locale.LC_ALL,"C") #C為場所,也可用en_US.UTF-8替換
c="{0:n}".format(55)
)。整數規約沒有最大寬度!
>小數格式規約:與整數一樣,但可以在最小寬度後加個以"."引導的整數來限定小數的位數。資料型別轉換處可用:e,E指數形式,f標準浮點形式,g通常格式,%百分數形式。
tips:輸出平方的上標 N\{SUPERSCRIPT TWO},右箭頭:\N{RIGHTWARDS ARROW}
12、字串操作函式
1 s.strip(chars)見上; 2 s.find(x,start,end)見上; 3 s.index(x.start,end)見上; 4 s.format()見上; 5 s.partition(x)見上; 6 s.replace(x,y,n) 用y替換x,可選n表示最多替換n次; 7 s.split(x,n) 最多分割n次,s.rsplit()從右邊開始分割; 8 s.splitlines(f) 返回在行終結符處進行分割產生的列表,並剝離行終結符(除非f為True); 9 s.count(x,start,end) 計數; 10 s.join(seq) 返回seq的每個項都以s連線起來的結果,s可以為空; 11 s.capitalize() 將字串首字母大寫; 12 s.lower() 將s中的字元變為小寫; 13 s.upper() 返回大寫化版本; 14 s.title() 將每個單詞的首字母大寫; 15 s.swapcase() 將大寫變小寫,小寫變大寫; 16 s.islower() 如果s至少有一個可小寫的字元且所有可小寫的字元都是小寫則返回True; 17 s.isupper() 如果s至少有一個可大寫的字元且所有可大寫的字元都是大寫則返回True; 18 s.istitle() 如果s是一個非空的首字母大寫字串,則返回True; 19 s.zfill(w) 返回s的副本,如果比w短,從開始處用0補充,使長度和w一樣; 20 s.center(width,char) 返回一個以s為中心長度為width的字串,如果有空餘則用可選引數char或空格進行填充,如width<len(s),則返回整個s; 21 s.ljust(width,char) 同上,左對齊; 22 s.rjust(width,char) 同上,右對齊; 23 s.encode(endoding,err) 返回一個bytes物件,該物件使用預設的編碼格式或指定的編碼格式來表示該字串,並根據可選的err引數處理錯誤; 24 s.endswith(x,start,end)如果以x結尾則返回True,否則返回False; 25 s.startswith(x,start,end)如果以x開始則返回True; 26 s.expandtabbs(size) 返回s的一個副本,其中的製表符使用8個或指定數量的空格替換; 27 s.isalnum() 判斷是否全是字母數字且非空; 28 s.isalpha() 判斷是否全是字母且非空; 29 s.isdecimal() 判斷是否每個字元都是Unicode的基數為10的數字; 30 s.isdigit() 判斷是否每個字元都是ASCII數字; 31 s.isidentifier() 判斷是否不為空 32 s.isnumeric() 判斷是否每個字元都是數值型的Unicode字元且非空; 33 s.isprintable() 判斷是否每個字元都是可列印的且非空; 34 s.isspace() 判斷是否每個字元都是空白字元; 35 s.maketrans() 36 s.translate()