從這篇文章開始,將記錄我學習python的筆記,中間難免出錯,看到的時候請不要見怪,因為我還是一個小學生。
python中所有數據--布爾值,整型,浮點數,字符串,甚至大型數據結構,函數以及程序--都是以對象的形式存在的。
對象有不同的類型,類型決定了可以對它進行的操作。對象的類型還決定了它承載的數據是允許被修改的變量,還是不允許被修改的常量。
python是強類型語言,你永遠無法修改一個已有對象的類型,即使它包含的數值是可變的。
python中的變量只是一個名字,名字是對對象的引用而不是對象本身。
如果想知道一個對象的類型可以使用type(thing)語句獲得。
變量的組成包括:字母,數字,下劃線。不過不能以數字開頭。
python中的整數除法是:// ? ? ?栗子: 7//2 ? ? 3
python中的求冪運算是:** ? ? 栗子: 3**4 ? ?81
注意點:整數0不能最為前綴放在其他數字面前,否則會出現報錯
```
>>> 06??
File "", line 1
06
^
SyntaxError: invalid token
```
有關基數:再python中整數默認使用十進制,不過你還可以使用其他三種進制的數字
1:0b或0B代表二進制(以2為底)
2:0o或0O代表八進制(以8為底)
3:0x或0X代表十六進制(以16為底)
有關類型轉換:
可以使用int()將python的其他數據類型轉換為整型
可以將布爾值轉化為整型:int(True),int(False)
可以將浮點型轉化為整型:int(12.3)
可以將包含正負號和數字的字符串轉化為整型: int(‘+12’)
但是init函數不能接受包含小數點和指數的字符串:int('12.3')或int(1.0e4')
再python3.5中,long類型已經不再存在,而init類型變為可以存儲任意大小的整數,甚至超過64位。
可以使用float()函數將其他類型轉換位浮點型:
可以將整型轉化為浮點型:float(2)
可以將布爾型轉化為浮點型:float(True),float(False)
可以將包含有效浮點數(數字,正負號,小數點,指數及指數的前綴)的字符串轉換成真正的浮點型數字:float('98.6'),float('-1.5'),float('1.0e4')
Python的字符串是不可變的,你無法對原字符串進行修改,但可以將字符串的一部分復制到新的字符串。
將一系列字符用單引號或雙引號括起來就可以創建字符串。
可以使用三個單引號''',或三個雙引號"""來創建多行的字符串。
在三元引號包括的字符串中,每行的換行符以及行首或行末的空格都會保留。
可以使用str()函數將其他數據類型轉換成字符串:
栗子:str(98.6),str(1.0e4),str(True)
使用 \ 進行轉義:
換行符:\n
制表符:\t
單引號和雙引號表示:\' , \"。在字符串由相同類型的引號包括的時候經常使用
如果想輸出一個反斜線 \ ,連續輸入兩次 \\ 即可。
使用 + 進行字符串的拼接:
在python中可以使用 + 進行字符串的拼接: ”string"+"string"
當我們調用print()時候,python會在各個參數之間自動添加空格,并在結尾添加換行符
使用 * 進行字符串的復制:
使用符號 * 可以進行字符串的復制: start="na"*5+'\n'
使用 [ ] ?提取字符串:
在字符串的后面添加[ ],并在括號里指定偏移量可以提取該位置的單個字符。第一個字符的偏移量是0,字符的偏移量也可以用 -1表示,從右到左依次是-2,-3等等。
由于字符串是不可變的,因此無法直接插入字符或改變指定位置的字符,為了改變字符串,我們可以組合使用一些字符串函數,例如replace(),以及分片操作。
栗子:name='Henny' ? ?name.replace('H','P') ? ? 'P'+name[1:]
使用[start:end:step]分片:
分片用來獲取子字符串,我們用一對方括號[ ],起始偏移量start,終止偏移量end以及可選的步長step來定義一個分片。分片得到的字符串包括從start開始到end之前的全部字符。
[ : ] 提取從開始到結尾的整個字符
[start:] 從start提取到結尾
[ :end ] 從開頭提取到end-1
[ start : end ] 從start提取到end-1
[ start:end:step ] 從start提取到end-1,每step個字符提取一個
注意:偏移量從左至右從0開始,從右至左從-1開始。
使用len()獲取長度:
len()函數可以計算字符串中包含的字符數
使分割:用split()分割
調用字符串函數的格式: string.function(arguments)
函數split()可以基于分隔符將字符串分割成由若干個子串組成的列表。
如果不指定分隔符,那么split()將默認使用空白字符--換行符,空格,制表符。
栗子: todos='get,get mask,give cat vitamins' ? todos.split(',')
使用join()函數進行合并
join()函數將包含若干個子串的列表組成的一個完整的字符串。join()的調用順序:先指定連接符,再指定列表:string.join(list)
栗子:crp_to=['nihbh','fyrdhn','ytwabsch'] ? ?','.join(crp_to)
判斷某個字符串是否以all開頭:string.startwith('all')
判斷某個字符串是否以all結尾:string.endwith('all')
判斷某個字符串中all第一次出現的位置(偏移量):string.find('all')
判斷某個字符串中all最后一次出現的位置:string.rfind('all')
判斷某個字符串中all出現了多少次:string.count('all')
判斷某個字符串是否都是字母或數字:string.isalnum()
使用replace()函數進行替換:
函數replace()可以實現簡單的替換,需要傳入的參數有:需要被替換的子串,用于替換的新子串,以及需要替換多少處。最后一個參數省略,則只替換第一處。
樣式:string.replace('oldstring','newstring',number)
大小寫與對齊方式:
設置字符串:setup='a? duck? goes in a bar ...'
將字符串收尾的 . 都刪除掉:setup.strip('.')
將字符串的首字母大寫:setup.capitalize()
將字符串的所有單詞的開頭都變成大寫:setup.title()
將所有字母都變成大寫:setup.upper()
將所有字母都變成小寫:setup.lower()
將所有字母的大小寫轉換:setup.swapcase()
我們假設栗子中的字符串被編排在指定長度(這里是30個字符)的空間里:
在30個字符中居中:setup.center(30)
左對齊:setup.ljust(30)
右對齊:setup.rjust(30)
注意:由于字符串是不可變的,這些操作并沒有真正的改變字符串的值,他們只是獲得字符串的值,然后進行某些操作之后將結果賦予新的一個字符串。
注:本文內容來自《Python語言及其應用》歡迎購買原書閱讀