基礎(chǔ)語(yǔ)法:
數(shù)據(jù)類型:
1口锭、整數(shù): 1,10,-100鹃操,0
2韭寸、浮點(diǎn)數(shù)是:1.1,2.1
3荆隘、字符串:'i am good man !'恩伺,"i ' m? a good man" '''i am good man '''
4、布爾值:True椰拒、False(布爾值可以用and晶渠、or和not運(yùn)算)
5、空值:用None表示燃观。None不能理解為0褒脯,因?yàn)?是有意義的,而None是一個(gè)特殊的空值缆毁。
6番川、變量:a=1 ,a='good'
7脊框、常量:10%3 ( 賦值 = 颁督、加 + 、減 - 浇雹、乘 * 沉御、除 /、取余數(shù) % 箫爷、除后取整數(shù) //)
字符串和編碼:(8個(gè)比特(bit)作為一個(gè)字節(jié)(byte))
1嚷节、字符編碼:ASCII聂儒、Unicode和UTF-8的關(guān)系
2虎锚、Python的字符串:str、ord()函數(shù)獲取字符的整數(shù)表示衩婚,chr()函數(shù)把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符
Python對(duì)bytes類型的數(shù)據(jù)用帶b前綴的單引號(hào)或雙引號(hào)表示:x = b'ABC'
類型轉(zhuǎn)換:decode()方法 -在工作中基本上是utf-8(*.decode('utf-8', errors='ignore'))
3窜护、獲取字符(列表)長(zhǎng)度:len()
4、在python3中的編碼-中文的顯示正常:
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
5非春、格式化:類似C語(yǔ)言的格式化
print('i am %s ,i age %d' %('cat',1))
幾種格式化的數(shù)據(jù)類型:
占位符
替換內(nèi)容
%d
整數(shù)
%f
浮點(diǎn)數(shù)
%s
字符串
%x
十六進(jìn)制整數(shù)
6柱徙、format():格式化的形式
print('i am {} ,i age {}'.format('cat',12))
使用list和tuple:
1、list列表: 格式list=['test', 'test2', 'test3']
可以通過(guò)append()函數(shù)在list追加元素
通過(guò)索引號(hào)來(lái)選取對(duì)應(yīng)的數(shù)值:注意list的下標(biāo)開(kāi)始為list[0] <第一個(gè)>奇昙,list[-1] <是最后一個(gè)>护侮。
list[0] ='tomcat' 修改對(duì)應(yīng)角標(biāo)的值
要?jiǎng)h除list末尾的元素,用pop()方法,同時(shí)pop(i)角標(biāo)直接刪除對(duì)應(yīng)的數(shù)據(jù)储耐。
2羊初、tuple元組:
tuple和list非常類似,但是tuple一旦初始化就不能修改。
如果要定義一個(gè)空的tuple长赞,可以寫(xiě)成()
只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào),晦攒,來(lái)消除歧義:
可變的tuple是嵌套list,可以修改list的可以讓其變得哆,其實(shí)tuple沒(méi)有改變
練習(xí):可變的tuple打印不同位置的值
條件判斷:
1脯颜、條件判斷:
if 判斷語(yǔ)句:? else來(lái)實(shí)現(xiàn)
多個(gè)判斷 if 判斷語(yǔ)句: elif 判斷語(yǔ)句: else多個(gè)嵌套
只要 判斷語(yǔ)句是非零數(shù)值、非空字符串贩据、非空l(shuí)ist等栋操,就判斷為T(mén)rue,否則為False饱亮。
循環(huán):
1讼庇、for
for x in ...循環(huán)就是把每個(gè)元素代入變量x,然后執(zhí)行縮進(jìn)塊的語(yǔ)句近尚。
2蠕啄、while
只要為true就繼續(xù)執(zhí)行循環(huán)。
break是結(jié)束整個(gè)大循環(huán)
continue 結(jié)束當(dāng)前循環(huán)戈锻,直接進(jìn)入下一個(gè)循環(huán)歼跟。
小結(jié):
break語(yǔ)句可以在循環(huán)過(guò)程中直接退出循環(huán),而continue語(yǔ)句可以提前結(jié)束本輪循環(huán)格遭,并直接開(kāi)始下一輪循環(huán)哈街。這兩個(gè)語(yǔ)句通常都必須配合if語(yǔ)句使用。
使用dict和set:
1拒迅、dict字典:主要是 (鍵-值(key-value)存儲(chǔ))骚秦,方便查詢。
一個(gè)key只能對(duì)應(yīng)一個(gè)value璧微,所以作箍,多次對(duì)一個(gè)key放入value,后面的值會(huì)把前面的值沖掉:
key不存在是會(huì)報(bào)錯(cuò)的:
要避免key不存在的錯(cuò)誤前硫,有兩種辦法胞得,一是通過(guò)in判斷key是否存在:
二是通過(guò)dict提供的get()方法,如果key不存在屹电,可以返回None阶剑,或者自己指定的value:
注意:返回None的時(shí)候Python的交互環(huán)境不顯示結(jié)果。
要?jiǎng)h除一個(gè)key危号,用pop(key)方法牧愁,對(duì)應(yīng)的value也會(huì)從dict中刪除:
請(qǐng)務(wù)必注意,dict內(nèi)部存放的順序和key放入的順序是沒(méi)有關(guān)系的外莲。
和list比較猪半,dict有以下幾個(gè)特點(diǎn):
查找和插入的速度極快,不會(huì)隨著key的增加而變慢;
需要占用大量的內(nèi)存办龄,內(nèi)存浪費(fèi)多烘绽。
而list相反:
查找和插入的時(shí)間隨著元素的增加而增加;
占用空間小俐填,浪費(fèi)內(nèi)存很少安接。
所以,dict是用空間來(lái)?yè)Q取時(shí)間的一種方法英融。
dict可以用在需要高速查找的很多地方盏檐,在Python代碼中幾乎無(wú)處不在,正確使用dict非常重要驶悟,需要牢記的第一條就是dict的key必須是不可變對(duì)象朽肥。
這是因?yàn)閐ict根據(jù)key來(lái)計(jì)算value的存儲(chǔ)位置树酪,如果每次計(jì)算相同的key得出的結(jié)果不同,那dict內(nèi)部就完全混亂了。這個(gè)通過(guò)key計(jì)算位置的算法稱為哈希算法(Hash)穗椅。
要保證hash的正確性使鹅,作為key的對(duì)象就不能變挫鸽。在Python中昧碉,字符串、整數(shù)等都是不可變的诗赌,因此汗茄,可以放心地作為key。而list是可變的铭若,就不能作為key
2洪碳、set:(沒(méi)有重復(fù)的key值)
set和dict類似,也是一組key的集合叼屠,但不存儲(chǔ)value瞳腌。由于key不能重復(fù),所以环鲤,在set中纯趋,沒(méi)有重復(fù)的key。
重復(fù)的元素會(huì)被set過(guò)濾掉:
通過(guò)add(key)方法可以添加元素到set中冷离,可以重復(fù)添加,但不會(huì)有效果:
通過(guò)remove(key)方法可以刪除元素:
set可以看成數(shù)學(xué)意義上的無(wú)序和無(wú)重復(fù)元素的集合纯命,因此西剥,兩個(gè)set可以做數(shù)學(xué)意義上的交集、并集等操作:
set和dict的唯一區(qū)別僅在于沒(méi)有存儲(chǔ)對(duì)應(yīng)的value亿汞,但是瞭空,set的原理和dict一樣,所以,同樣不可以放入可變對(duì)象咆畏,因?yàn)闊o(wú)法判斷兩個(gè)可變對(duì)象是否相等南捂,也就無(wú)法保證set內(nèi)部“不會(huì)有重復(fù)元素”。
總結(jié):
主要是一些基礎(chǔ)的語(yǔ)法的學(xué)習(xí)旧找,很多很Java的邏輯是差不多的溺健,主要是python的自己的一些規(guī)則需要區(qū)分。
最近在家也不能出門(mén)钮蛛,沒(méi)事看看python相關(guān)語(yǔ)法鞭缭。
參考文獻(xiàn):https://www.liaoxuefeng.com/wiki/1016959663602400/1017104324028448
個(gè)人知乎:https://www.zhihu.com/people/fu-wei-43-69/columns
個(gè)人簡(jiǎn)書(shū):http://www.reibang.com/u/bf0e38a8d400