標籤:int() 轉換函式 abc 必須 不可 不能 知識點 輸入 水平
一、基礎資料型別 (Elementary Data Type)
1、各進位數位表示和轉換
2進位、8進位、16進位的資料在數字之前需要分別增加0b、0o、0x來表示。
>>> 10 #10進位10>>> 0b111 #2進位7>>> 0o777 #8進位511>>> 0xfeda #16進位65242
各個進位的轉換,2進位、8進位、10進位、16進位的轉換方法分別為bin()、oct()、int()、hex()。
>>> bin(16) #10進位數轉換為2進位‘0b10000‘>>> bin(0o766)#8進位數轉換為2進位‘0b111110110‘>>> oct(0xfff)#16進位數轉換為8進位‘0o7777‘>>> oct(0b1101)#2進位數轉換為8進位‘0o15‘>>> int(0b1111)#2進位數轉換為10進位15>>> int(0o117)#8進位數轉換為10進位79>>> hex(0b11111111) #2進位數轉換為16進位‘0xff‘>>> hex(65535) #10進位數轉換為16進位‘0xffff‘
2、布爾值
Python中的數值0、空值對象以及‘None’的布爾值都為False,其他都為True。
>>> bool(1.1)True>>> bool(0x00) #16進位的數值0False>>> bool(‘‘) #Null 字元串False>>> bool([1,2])True>>> bool(())False>>> bool(None)False
3、字串
*多行字串可以通過三引號表示:‘‘‘ ‘‘‘或""" """。
>>> s=‘‘‘ab‘‘‘>>> s‘\na\nb‘
可以看到變數s在定義的時候使用了三引號,而在命令列格式中可以看到s的內容是‘\na\nb‘;其中的‘\n‘就表示了定義時候輸入的分行符號。這也可以通過s[0]看出:
>>> s[0]‘\n‘
這裡的‘\n‘也稱為逸出字元,逸出字元在使用print()輸出時是按格式顯示的,比如分行符號\n直接就輸出換行,\t輸出水平定位字元。
>>> print(s)ab
*逸出字元:一般為無法看見的特殊字元(如\n、\t等等)或者與語言本身文法有衝突的字元(如\‘表示‘,\\表示\)
#用print列印出‘hello \n world!‘#\n需要通過逸出字元表示s=‘hello \\n world‘print(s)print(‘hello \\n world‘)
*原始字串:在原始字串中所有字元都是所見即所得 (WYSIWYG)
>>> s=r‘\nabc\n‘ #這裡就是原始字串,其中的\n就是兩個字元>>> s[0] #訪問第一個字元,即‘\‘‘\\‘>>> #可以看出上面輸出了‘\\‘,這裡是一般字元串,其中以轉移字串表示了實際的‘\‘>>> s[1]‘n‘>>> print(s)\nabc\n>>> len(s)7
4、序列(str、list、tuple)
在Python中,str/list/tuple都是有序的資料群組合,對於有序的組合,都可以使用下標的方法訪問,也可以進行切片操作。
>>> ‘123‘[2]‘3‘>>> (1,2,5)[0]1>>> [1,2,3,‘a‘][-1]‘a‘>>> (1,2,3,4,5)[:5](1, 2, 3, 4, 5)>>> "12345"[-1:]‘5‘>>> [1,2,3,4,5,6,7,8,9,10][1:10][2, 3, 4, 5, 6, 7, 8, 9, 10]
5、str和list/tuple的相互轉換
(1)直接通過類型轉換函式:
>>> list(s) #字串轉換為列表[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘]>>> tuple(s) #字串轉換為元組(‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘)>>> tuple(list(s)) #列錶轉換為元組(‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘)>>> list(tuple(s)) #元群組轉換為列表[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘]>>> #可以看出str()方法並不能讓列錶轉換成我們想要的字串內容>>> #str()方法直接把參數內容當成字串內容了>>> str([1,2,3])‘[1, 2, 3]‘>>> str([1,2,3])[0]‘[‘
(2)列表和元群組轉換為字串必須依靠join函數
>>> ‘ ‘.join([‘1‘,‘2‘,‘3‘])‘1 2 3‘>>> ‘‘.join((‘a‘,‘b‘,‘s‘,‘123‘))‘abs123‘
需要注意,只有元素為字串類型的列表和元組才可以使用join()方法。
(3)字串轉為列表的特殊方法:split()
>>> s=‘12 34 56 78,90,100 ‘>>> s.split() #沒有參數時,預設按空格劃分原始字串形成列表各元素[‘12‘, ‘34‘, ‘56‘, ‘78,90,100‘]>>> s.split(‘,‘)[‘12 34 56 78‘, ‘90‘, ‘100 ‘]
(4)字串去除首尾空格、換行字元的方法:strip()
>>> s=‘\n \n 123 abc 999 \n ‘>>> s.strip()‘123 abc 999‘>>> s‘\n \n 123 abc 999 \n ‘>>> s.strip().split()[‘123‘, ‘abc‘, ‘999‘]
(5)列表排序方法:sort()/sorted()
>>> l=[16,87,35,100,96,62,8,3,19]>>> l.sort() #把l按預設的順序(這裡是由小到大)排序,l變成新列表>>> l1=[16,87,35,100,96,62,8,3,19]>>> sorted(l1) #返回一個排序後的新列表,l1本身不變化[3, 8, 16, 19, 35, 62, 87, 96, 100]>>> l1[16, 87, 35, 100, 96, 62, 8, 3, 19]>>> t=(16,87,35,100,96,62,8,3,19) #元組和字串也可以使用sorted()方法,返回一個排序後的新列表#但元組和字串不能使用sort()>>> sorted(t) [3, 8, 16, 19, 35, 62, 87, 96, 100]>>> t(16, 87, 35, 100, 96, 62, 8, 3, 19)>>> sorted(‘102814124128765‘)[‘0‘, ‘1‘, ‘1‘, ‘1‘, ‘1‘, ‘2‘, ‘2‘, ‘2‘, ‘4‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘8‘]
6、集合(set)、字典(dict)
(1)集合是無序的,所以不能通過下標訪問,也因為是無序的,所以對於重複的元素在集合中是無法區分的,因為沒有順序之說,所以集合中不能有重複元素。
>>> {1,2,3,4,5}-{1,3,5} #兩個set求差集{2, 4}>>> {1,2,3,4,5}|{6,7,8} #求合集{1, 2, 3, 4, 5, 6, 7, 8}>>> {1,2,3,4,5,6,7}&{1,3,5,7,9} #求交集{1, 3, 5, 7}
(2)字典是集合的一種特殊類型,其索引值必須為不可變類型。不可變類型包括int/float/bool/str/tuple。
Python知識點記錄一