Python3學(xué)習(xí)筆記--基礎(chǔ)知識

Python3學(xué)習(xí)筆記--基礎(chǔ)知識

''' 
Python3 基本數(shù)據(jù)類型 
Numbers(數(shù)字) 
String(字符串) 
List(列表) 
Tuple(元組) 
Sets(集合) 
Dictionaries(字典) 
空值是Python里一個特殊的值,用None表示。None不能理解為0辙谜,因為0是有意義的遗菠,而None是一個特殊的空值并蝗。 
布爾值和布爾代數(shù)的表示完全一致仁热,一個布爾值只有True、False兩種值郎楼,要么是True辆雾,要么是False肪笋,在Python中,可以直接用True度迂、False表示布爾值(請注意大小寫) 
'''  
""" 
Numbers(數(shù)字) 
Python 3支持int藤乙、float、bool惭墓、complex(復(fù)數(shù))坛梁。 
數(shù)值類型的賦值和計算都是很直觀的,就像大多數(shù)語言一樣腊凶。內(nèi)置的type()函數(shù)可以用來查詢變量所指的對象類型划咐。 
>>> a, b, c, d = 20, 5.5, True, 4+3j 
>>> print(type(a), type(b), type(c), type(d)) 
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'> 
數(shù)值運算: 
>>> 5 + 4  # 加法 
9 
>>> 4.3 - 2 # 減法 
2.3 
>>> 3 * 7  # 乘法 
21 
>>> 2 / 4  # 除法,得到一個浮點數(shù) 
0.5 
>>> 2 // 4 # 除法钧萍,得到一個整數(shù) 
0 
>>> 17 % 3 # 取余 
2 
>>> 2 ** 5 # 乘方 
32 
注意: 
1褐缠、Python可以同時為多個變量賦值,如a, b = 1, 2风瘦。 
2队魏、一個變量可以通過賦值指向不同類型的對象。 
3万搔、數(shù)值的除法(/)總是返回一個浮點數(shù)胡桨,要獲取整數(shù)使用//操作符俐载。 
4、在混合計算時登失,Python會把整型轉(zhuǎn)換成為浮點數(shù)。 
 
String(字符串) 
Python中的字符串str用單引號(' ')或雙引號(" ")括起來挖炬,同時使用反斜杠(\)轉(zhuǎn)義特殊字符揽浙。 
>>> s = 'Yes,he doesn\'t' 
>>> print(s, type(s), len(s)) 
Yes,he doesn't <class 'str'> 14 
如果你不想讓反斜杠發(fā)生轉(zhuǎn)義,可以在字符串前面添加一個r意敛,表示原始字符串: 
>>> print('C:\some\name') 
C:\some 
ame 
>>> print(r'C:\some\name') 
C:\some\name 
另外馅巷,反斜杠可以作為續(xù)行符,表示下一行是上一行的延續(xù)草姻。還可以使用"""#"""或者'''...'''跨越多行钓猬。  
"""字符串可以使用 + 運算符串連接在一起,或者用 * 運算符重復(fù):  
>>> print('str'+'ing', 'my'*3)  
string mymymy  
Python中的字符串有兩種索引方式撩独,第一種是從左往右敞曹,從0開始依次增加;第二種是從右往左综膀,從-1開始依次減少澳迫。  
注意,沒有單獨的字符類型剧劝,一個字符就是長度為1的字符串橄登。  
>>> word = 'Python'  
>>> print(word[0], word[5])  
P n  
>>> print(word[-1], word[-6])  
n P  
還可以對字符串進行切片,獲取一段子串。用冒號分隔兩個索引,形式為變量[頭下標:尾下標]莉兰。  
截取的范圍是前閉后開的且警,并且兩個索引都可以省略:  
>>> word = 'ilovepython'  
>>> word[1:5]  
'love'  
>>> word[:]  
'ilovepython'  
>>> word[5:]  
'python'  
>>> word[-10:-6]  
'love'  
與C字符串不同的是,Python字符串不能被改變兢榨。向一個索引位置賦值,比如word[0] = 'm'會導(dǎo)致錯誤。  
注意:  
1展哭、反斜杠可以用來轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義闻蛀。  
2匪傍、字符串可以用+運算符連接在一起,用*運算符重復(fù)觉痛。  
3役衡、Python中的字符串有兩種索引方式,從左往右以0開始薪棒,從右往左以-1開始手蝎。  
4榕莺、Python中的字符串不能改變。  
  
List(列表)  
List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型棵介。  
列表是寫在方括號之間钉鸯、用逗號分隔開的元素列表。列表中元素的類型可以不相同:  
>>> a = ['him', 25, 100, 'her']  
>>> print(a)  
['him', 25, 100, 'her']  
和字符串一樣邮辽,列表同樣可以被索引和切片唠雕,列表被切片后返回一個包含所需元素的新列表。詳細的在這里就不贅述了吨述。  
列表還支持串聯(lián)操作岩睁,使用+操作符:  
>>> a = [1, 2, 3, 4, 5]  
>>> a + [6, 7, 8]  
[1, 2, 3, 4, 5, 6, 7, 8]  
與Python字符串不一樣的是,列表中的元素是可以改變的:  
>>> a = [1, 2, 3, 4, 5, 6]  
>>> a[0] = 9  
>>> a[2:5] = [13, 14, 15]  
>>> a  
[9, 2, 13, 14, 15, 6]  
>>> a[2:5] = []   # 刪除  
>>> a  
[9, 2, 6]  
List內(nèi)置了有很多方法揣云,例如append()捕儒、pop()等等。  
list.append(x)  把一個元素添加到列表的結(jié)尾邓夕,相當(dāng)于 a[len(a):] = [x]刘莹。  
list.extend(L)  通過添加指定列表的所有元素來擴充列表,相當(dāng)于 a[len(a):] = L翎迁。  
list.insert(i, x)   在指定位置插入一個元素栋猖。第一個參數(shù)是準備插入到其前面的那個元素的索引,例如 a.insert(0, x) 會插入到整個列表之前汪榔,而 a.insert(len(a), x) 相當(dāng)于 a.append(x) 蒲拉。  
list.remove(x)  刪除列表中值為 x 的第一個元素。如果沒有這樣的元素痴腌,就會返回一個錯誤雌团。  
list.pop([i])   從列表的指定位置刪除元素,并將其返回士聪。如果沒有指定索引锦援,a.pop()返回最后一個元素。元素隨即從列表中被刪除剥悟。(方法中 i 兩邊的方括號表示這個參數(shù)是可選的灵寺,而不是要求你輸入一對方括號,你會經(jīng)常在 Python 庫參考手冊中遇到這樣的標記区岗。)  
list.clear()    移除列表中的所有項略板,等于del a[:]。  
list.index(x)   返回列表中第一個值為 x 的元素的索引慈缔。如果沒有匹配的元素就會返回一個錯誤叮称。  
list.count(x)   返回 x 在列表中出現(xiàn)的次數(shù)。  
list.sort() 對列表中的元素進行排序。  
list.reverse()  倒排列表中的元素瓤檐。  
list.copy() 返回列表的淺復(fù)制赂韵,等于a[:]。  
注意:  
1挠蛉、List寫在方括號之間祭示,元素用逗號隔開。  
2谴古、和字符串一樣绍移,list可以被索引和切片。  
3讥电、List可以使用+操作符進行拼接。  
4轧抗、List中的元素是可以改變的恩敌。  
  
Tuple(元組)  
元組(tuple)與列表類似,不同之處在于元組的元素不能修改横媚。元組寫在小括號里纠炮,元素之間用逗號隔開。  
元組中的元素類型也可以不相同:  
>>> a = (1991, 2014, 'physics', 'math')  
>>> print(a, type(a), len(a))  
(1991, 2014, 'physics', 'math') <class 'tuple'> 4  
元組與字符串類似灯蝴,可以被索引且下標索引從0開始恢口,也可以進行截取/切片(看上面,這里不再贅述)穷躁。  
其實耕肩,可以把字符串看作一種特殊的元組。  
>>> tup = (1, 2, 3, 4, 5, 6)  
>>> print(tup[0], tup[1:5])  
1 (2, 3, 4, 5)  
>>> tup[0] = 11  # 修改元組元素的操作是非法的  
雖然tuple的元素不可改變问潭,但它可以包含可變的對象猿诸,比如list列表。  
構(gòu)造包含0個或1個元素的tuple是個特殊的問題狡忙,所以有一些額外的語法規(guī)則:  
tup1 = () # 空元組  
tup2 = (20,) # 一個元素梳虽,需要在元素后添加逗號  
另外,元組也支持用+操作符:  
>>> tup1, tup2 = (1, 2, 3), (4, 5, 6)  
>>> print(tup1+tup2)  
(1, 2, 3, 4, 5, 6)  
string灾茁、list和tuple都屬于sequence(序列)窜觉。  
注意:  
1、與字符串一樣北专,元組的元素不能修改禀挫。  
2、元組也可以被索引和切片逗余,方法一樣特咆。  
3、注意構(gòu)造包含0或1個元素的元組的特殊語法規(guī)則。  
4腻格、元組也可以使用+操作符進行拼接画拾。  
  
Sets(集合)  
集合(set)是一個無序不重復(fù)元素的集。  
基本功能是進行成員關(guān)系測試和消除重復(fù)元素菜职。  
可以使用大括號 或者 set()函數(shù)創(chuàng)建set集合青抛,注意:創(chuàng)建一個空集合必須用 set() 而不是 { },因為{ }是用來創(chuàng)建一個空字典酬核。  
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}  
>>> print(student)   # 重復(fù)的元素被自動去掉  
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}  
>>> 'Rose' in student  # membership testing(成員測試)  
True  
>>> # set可以進行集合運算  
...  
>>> a = set('abracadabra')  
>>> b = set('alacazam')  
>>> a  
{'a', 'b', 'c', 'd', 'r'}  
>>> a - b     # a和b的差集  
{'b', 'd', 'r'}  
>>> a | b     # a和b的并集  
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}  
>>> a & b     # a和b的交集  
{'a', 'c'}  
>>> a ^ b     # a和b中不同時存在的元素  
{'l', 'm', 'b', 'd', 'z', 'r'}  
  
Dictionaries(字典)  
字典(dictionary)是Python中另一個非常有用的內(nèi)置數(shù)據(jù)類型蜜另。  
字典是一種映射類型(mapping type),它是一個無序的鍵 : 值對集合嫡意。  
關(guān)鍵字必須使用不可變類型举瑰,也就是說list和包含可變類型的tuple不能做關(guān)鍵字。  
在同一個字典中蔬螟,關(guān)鍵字還必須互不相同此迅。  
>>> dic = {}  # 創(chuàng)建空字典  
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}  
>>> tel  
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}  
>>> tel['Jack']   # 主要的操作:通過key查詢  
1557  
>>> del tel['Rose']  # 刪除一個鍵值對  
>>> tel['Mary'] = 4127  # 添加一個鍵值對  
>>> tel  
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}  
>>> list(tel.keys())  # 返回所有key組成的list  
['Tom', 'Jack', 'Mary']  
>>> sorted(tel.keys()) # 按key排序  
['Jack', 'Mary', 'Tom']  
>>> 'Tom' in tel       # 成員測試  
True  
>>> 'Mary' not in tel  # 成員測試  
False  
構(gòu)造函數(shù) dict() 直接從鍵值對sequence中構(gòu)建字典,當(dāng)然也可以進行推導(dǎo)旧巾,如下:  
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])  
{'jack': 4098, 'sape': 4139, 'guido': 4127}  
  
>>> {x: x**2 for x in (2, 4, 6)}  
{2: 4, 4: 16, 6: 36}  
  
>>> dict(sape=4139, guido=4127, jack=4098)  
{'jack': 4098, 'sape': 4139, 'guido': 4127}  
另外耸序,字典類型也有一些內(nèi)置的函數(shù),例如clear()鲁猩、keys()坎怪、values()等。  
注意:  
1廓握、字典是一種映射類型搅窿,它的元素是鍵值對。  
2隙券、字典的關(guān)鍵字必須為不可變類型戈钢,且不能重復(fù)。  
3是尔、創(chuàng)建空字典使用{ }殉了。  
"""  
  
#輸出  
print('hello, world')  
  
#輸入  
name = input()  
  
# 獲取用戶輸入的數(shù)字  
num = int(input("請輸入一個數(shù)字: "))  
a = float(input('請輸入一個數(shù)字:'))  
  
#條件判斷if..else  
a = 1  
if a >= 0:  
    if a == 0:  
        print('a=0')  
    else:  
        print('a是正數(shù)')  
else:  
    print('a是負數(shù)')  
#if..elif..else  
if a == 0:  
    print('a=0')  
elif a > 0:  
    print('a是正數(shù)')  
else:  
    print('a是負數(shù)')  
  
#循環(huán)  
#for...in循環(huán)  
nums = [1, 2, 3]  
for num in nums:  
    print(num)  
#while循環(huán)  
i = 0  
while i < len(nums):  
    print(nums[i])  
    i += 1  
  
#pass語句什么都不做。它只在語法上需要一條語句但程序不需要任何操作時使用
#break語句可以跳出for和while的循環(huán)體拟枚。如果你從for或while循環(huán)中終止薪铜,任何對應(yīng)的循環(huán)else塊將不執(zhí)行
#continue語句被用來告訴Python跳過當(dāng)前循環(huán)塊中的剩余語句,然后繼續(xù)進行下一輪循環(huán)
  
#交換變量  
x = input('輸入 x 值: ')  
y = input('輸入 y 值: ')  
# 不使用臨時變量  
x,y = y,x  
  
#文件的讀寫  
#由于文件讀寫時都有可能產(chǎn)生IOError恩溅,一旦出錯隔箍,后面的f.close()就不會調(diào)用。所以脚乡,為了保證無論是否出錯都能正確地關(guān)閉文件蜒滩,我們可以使用try ... finally來實現(xiàn):  
'''''r滨达、w、a為打開文件的基本模式俯艰,對應(yīng)著只讀捡遍、只寫、追加模式竹握; 
b画株、t、+啦辐、U這四個字符谓传,與以上的文件打開模式組合使用,二進制模式芹关,文本模式续挟,讀寫模式、通用換行符侥衬,根據(jù)實際情況組合使用'''  
try:  
    f = open('test.txt', 'r')  
    print(f.read())  
finally:  
    if f:  
        f.close()  
#Python引入了with語句來自動幫我們調(diào)用close()方法  
# 寫文件  
with open("test.txt", "wt") as out_file:  
    out_file.write("寫入到文件中\(zhòng)n換行了")  
  
# 讀文件  
with open("test.txt", "rt") as in_file:  
    text = in_file.read()  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庸推,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浇冰,更是在濱河造成了極大的恐慌,老刑警劉巖聋亡,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肘习,死亡現(xiàn)場離奇詭異,居然都是意外死亡坡倔,警方通過查閱死者的電腦和手機漂佩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罪塔,“玉大人投蝉,你說我怎么就攤上這事≌骺埃” “怎么了瘩缆?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長佃蚜。 經(jīng)常有香客問我庸娱,道長,這世上最難降的妖魔是什么谐算? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任熟尉,我火速辦了婚禮,結(jié)果婚禮上洲脂,老公的妹妹穿的比我還像新娘斤儿。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布往果。 她就那樣靜靜地躺著疆液,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棚放。 梳的紋絲不亂的頭發(fā)上枚粘,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音飘蚯,去河邊找鬼馍迄。 笑死,一個胖子當(dāng)著我的面吹牛局骤,可吹牛的內(nèi)容都是我干的攀圈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼峦甩,長吁一口氣:“原來是場噩夢啊……” “哼赘来!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凯傲,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤犬辰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冰单,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幌缝,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年诫欠,在試婚紗的時候發(fā)現(xiàn)自己被綠了涵卵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒叼,死狀恐怖轿偎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情被廓,我是刑警寧澤坏晦,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站嫁乘,受9級特大地震影響英遭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亦渗,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一挖诸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧法精,春花似錦多律、人聲如沸痴突。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辽装。三九已至,卻和暖如春相味,著一層夾襖步出監(jiān)牢的瞬間拾积,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工丰涉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拓巧,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓一死,卻偏偏與公主長得像肛度,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子投慈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容