一.python 入門(mén)
初始python
python的歷史
python的優(yōu)缺點(diǎn)
python應(yīng)用
編程工具:IDLE,IPython负间,Sublime
常用快捷方式:
ctrl+-->添加單行注釋,ctrl+s-->保存绞惦,ctrl+b-->編譯執(zhí)行逻住,ctrl+n-->新建文件音同,ctrl+c-->復(fù)制厌秒,ctrl+v-->粘貼儒喊,ctrl+a-->全選供汛,ctrl+x-->剪切,ctrl+z-->撤銷(xiāo)胁勺,ctrl+y-->反撤銷(xiāo),ctrl+f-->彈出搜索框
print函數(shù)是Python內(nèi)置函數(shù)世澜,作用是在控制臺(tái)打印print后面()的任何內(nèi)容
在python2.x中,print‘hello world’不用加括號(hào)
在Python3.x中姻几,print后需要加括號(hào)
a宜狐。b。b 版本號(hào)蛇捌。a--》重大修改(不向下兼容)抚恒;b--》添加新功能;c--》修復(fù)bug
二.python基礎(chǔ)語(yǔ)法
1.注釋
注釋就是代碼源文件中络拌,用來(lái)進(jìn)行朱姐說(shuō)明的文字俭驮,不會(huì)對(duì)代碼的功能產(chǎn)生任何的影響
好的代碼和好的程序員,需要對(duì)代碼通過(guò)注釋進(jìn)行說(shuō)明
開(kāi)頭單行注釋
“““ 內(nèi)容”””或者‘‘‘ 內(nèi)容 ’’’ 多行注釋
編程語(yǔ)言中涉及的所有符號(hào)都是指英文輸入法狀態(tài)下的符號(hào)
2.標(biāo)識(shí)符
標(biāo)識(shí)符是用來(lái)程序中命名用的。(比如:變量名混萝,類(lèi)名遗遵,函數(shù)名)
a.標(biāo)識(shí)符是字母,數(shù)字和下劃線組成逸嘀,并且數(shù)字不能開(kāi)頭(硬性)python3.x標(biāo)志符中支持中文但不推薦使用
b.不能是關(guān)鍵字(保留字)(硬性)
c.大小寫(xiě)敏感(區(qū)分大小寫(xiě)车要,a和A不一樣)
d.要見(jiàn)名知義(規(guī)范)
e.不推薦使用python中的內(nèi)置函數(shù),類(lèi)名去做標(biāo)識(shí)符(規(guī)范)
3.關(guān)鍵字
系統(tǒng)保留的有特殊功能或者特殊意義的一些單詞崭倘。這些單詞不能用來(lái)給變量或者函數(shù)或者類(lèi)命名的
import keyword
print(keyword.kwlist)
4.行與縮進(jìn)
縮進(jìn):每一行代碼的位置翼岁,與行開(kāi)頭位置之間的空格
在python中縮進(jìn)的寫(xiě)法有嚴(yán)格的規(guī)范。同一級(jí)的代碼必須寫(xiě)在同一個(gè)縮進(jìn)下面司光。
如果在不該有空格產(chǎn)生的位置出現(xiàn)了多余的空格琅坡,程序會(huì)報(bào)錯(cuò)(IndentationError);如果需要縮進(jìn)的時(shí)候沒(méi)有縮進(jìn)也會(huì)報(bào)錯(cuò)
關(guān)于行的規(guī)范:
函數(shù)和類(lèi)的聲明的前后必須要有兩個(gè)換行。一般一個(gè)功能實(shí)現(xiàn)完残家,實(shí)現(xiàn)下一個(gè)功能的時(shí)候最好也換行榆俺。
5.多行語(yǔ)句
一條語(yǔ)句在多行顯示
a.在需要換行的地方加(\),然后在換行
b.字典,列表坞淮,集合和元組等容器類(lèi)型數(shù)據(jù)的字面量茴晋,在多行顯示的時(shí)候可以直接換行
python中,一條語(yǔ)句結(jié)束碾盐,可以不寫(xiě)分號(hào)晃跺;但是如果一行中要寫(xiě)多條語(yǔ)句揩局,那么每條語(yǔ)句必須用分號(hào)隔開(kāi)毫玖。
6.字面量
數(shù)據(jù)類(lèi)型對(duì)應(yīng)的具體的值
整數(shù)(10.100),小數(shù)(0.1)凌盯,字符串(‘a(chǎn)bc付枫,“!78u”)驰怎,布爾值(true阐滩,false),數(shù)字(12e2)县忌,復(fù)數(shù)(9+10j)掂榔,
列表【1,2,‘hu’症杏,】装获,字典{‘a(chǎn)’:1,‘b'厉颤;‘123’}
7.python中的基本數(shù)據(jù)類(lèi)型
數(shù)字(整形(int)穴豫,浮點(diǎn)型,布爾逼友,復(fù)數(shù))精肃,字符串(str)秤涩,列表(list),字典(dict)司抱,集合(set)筐眷,元組(tuple),none(代表沒(méi)有和空)
整型:int(在python2.x中有l(wèi)ong)--》值是所有的整數(shù)
浮點(diǎn)型:float--》包含所有的小數(shù)和科學(xué)計(jì)數(shù)
布爾:bool--》值只有True(1)和False(0)
復(fù)數(shù)习柠;complex--》值包含所有的復(fù)數(shù)
可以type函數(shù)查看數(shù)據(jù)類(lèi)型:type(數(shù)據(jù))
print(type(10e2))
三.變量
變量
在程序中可以通過(guò)變量來(lái)存儲(chǔ)數(shù)據(jù)
怎么聲明變量
嚴(yán)格來(lái)說(shuō)浊竟,python中變量是不需要聲明的,直接通過(guò)賦值符號(hào)(=)給變量賦值津畸,就是在聲明變量振定。
因?yàn)閜ython是動(dòng)態(tài)語(yǔ)言,在聲明變量的時(shí)候肉拓,不需要指定變量的類(lèi)型后频。并且同一個(gè)變量可以賦不同類(lèi)型的值
格式: 變量名=值
變量名:標(biāo)識(shí)符,PEP8的命名方式(所有的字母都小寫(xiě)暖途,多個(gè)單詞之間用下劃線隔開(kāi)列入:user_name)
駝峰式命名:第一個(gè)單詞首字母小寫(xiě)卑惜,后邊每個(gè)單詞的首字母都大寫(xiě)(例如:userName)
聲明了一個(gè)變量age,并賦值18
age=18
print(age)
使用變量的時(shí)候,就相當(dāng)于使用變量中存的值
student_age=20
print(type(student_age))
- 如果重新給一個(gè)變量賦值驻售,那么新賦值會(huì)覆蓋原來(lái)的值
- 同一個(gè)變量可以賦不同類(lèi)型的值
student_age=18.5
student_age='abc'
print(student_age,type(student_age))
補(bǔ)充:
一個(gè)數(shù)據(jù)有type(類(lèi)型),id(數(shù)據(jù)儲(chǔ)存在計(jì)算機(jī)中的地址)和value(值)三個(gè)屬性
變量存儲(chǔ)數(shù)據(jù)的時(shí)候露久,有兩種情況。第一種情況:存value--->數(shù)字類(lèi)型欺栗、字符串,第二種情況:存id--->列表毫痕,字典,集合迟几,元組消请,自定義類(lèi)的對(duì)象。
四.運(yùn)算符
數(shù)學(xué)運(yùn)算符类腮、比較運(yùn)算符臊泰、邏輯運(yùn)算符、賦值運(yùn)算符蚜枢、位運(yùn)算符(針對(duì)二進(jìn)制的每一位)
1.數(shù)學(xué)運(yùn)算符(+缸逃、-、厂抽、/需频、%、*修肠、//)
+:求和
注意:求和操作贺辰,+號(hào)兩邊必須是數(shù)字類(lèi)型
True--->1 False--->0
print(10+20.4,True+1)
number=100+11
print(number)
-:求差
print(100-12)
:求乘積
print(3.142)
number=39
print(number)
/:求商
print(4/2)
print(5/2)
%:求兩個(gè)數(shù)相處的余數(shù)
print(3%2)
print(101%10)
:冪運(yùn)算
xy:求x得y次方
浮點(diǎn)數(shù)在計(jì)算機(jī)儲(chǔ)存的時(shí)候,有的時(shí)候會(huì)有一點(diǎn)的誤差
number=(2*3)
print(number)
//:整除
求商,但是只取商的整數(shù)部分
print(5//2)
取一個(gè)二位整數(shù)的十位數(shù)(78)
print(78//10)
取2345中的4:
print(2345%100//10)
print(2345//10%10)
2.比較運(yùn)算符
'''>,<,==,>=,<=,!=
比較運(yùn)算符的結(jié)果全是布爾:True,False
1.>x>y:判斷x是否大于y,如果是結(jié)果是True,否則是False
resulut=10>20
print(resulut)
其余比較同理
在python中饲化,可以像數(shù)學(xué)中一樣莽鸭,連續(xù)判斷
numer=15
resulut=10<number<20 #判斷number是否在10到20之間
print(resulut)
3.邏輯運(yùn)算符
與(and),或(or),非(not)
運(yùn)算數(shù)據(jù)是布爾值,結(jié)果也是布爾值
布爾1 布爾2 進(jìn)行邏輯運(yùn)算
and:都為T(mén)ure 吃靠,結(jié)果才是Ture
需要兩個(gè)或者多個(gè)條件同時(shí)滿足硫眨,就使用邏輯與(and)
or:一個(gè)為T(mén)ure,結(jié)果為T(mén)ure
需要兩個(gè)或者多個(gè)條件其中一個(gè)滿足時(shí),就使用邏輯或(or)
not: not 布爾1巢块,如果布爾1是T礁阁,結(jié)果是F,反之亦然。
需要不滿足這個(gè)條件的時(shí)候族奢,在該條件前加not
成績(jī)不低于60分
score=70
print(score>=60)
print(not score<60) #都可以
寫(xiě)一個(gè)條件姥闭,判斷一個(gè)人的年紀(jì)是否滿足青年的條件(年紀(jì)大于18并小于28)
age=20
print(age>18 and age<28)
4.賦值運(yùn)算符
=,+=,-=,=,/=,%=,*=,//=
賦值運(yùn)算符的作用:將賦值符號(hào)右邊的表達(dá)式的值賦給左邊的變量
表達(dá)式:有結(jié)果的語(yǔ)句。例如:10越走,'abc'棚品,10+20,30>10.5等
賦值符號(hào)的左邊必須是變量
賦值符號(hào),是先算右邊的結(jié)果廊敌,然后再把結(jié)果賦給左邊的變量
number=100
number +=10 #相當(dāng)于:number=number+10
print(number)
number *=2
print(number)
其余運(yùn)算同理铜跑。
5.運(yùn)算符的優(yōu)先級(jí)
優(yōu)先級(jí)從低到高:賦值運(yùn)算符<邏輯運(yùn)算符<比較運(yùn)算符<算數(shù)運(yùn)算符
算術(shù)運(yùn)算符中:先冪運(yùn)算再乘除取余取整在加減
如果你不確定運(yùn)算順序,可以通過(guò)添加括號(hào)來(lái)改變運(yùn)算骡澈。有括號(hào)先算括號(hào)里面的锅纺。
resulut=10+20>15 and 7*8<30+60
resulut=30>15 and 56<90
resulut=True and Ture
result=True
print(resulut)
五.進(jìn)制轉(zhuǎn)換
數(shù)據(jù)在計(jì)算機(jī)里面的儲(chǔ)存,存的都是二進(jìn)制數(shù)(0101010101...)
1. 認(rèn)識(shí)十進(jìn)制肋殴、二進(jìn)制囤锉、八進(jìn)制、十六進(jìn)制
1疼电,十進(jìn)制
基數(shù):0,1,2,3,4,5,6,7,8,9
特點(diǎn):縫10進(jìn)1
2嚼锄,二進(jìn)制
基數(shù)减拭;0,1
特點(diǎn):縫2進(jìn)1
101011=1(2^0)+1(21)+0*(22)+1(2^3)+0(24)+1*(25)
=1+2+0+8+0+32
=43
3.八進(jìn)制
基數(shù):0,1,2,3,4,5,6,7
特點(diǎn):縫8進(jìn)1
24=4(8^0)+2(8^1)=20
4.十六進(jìn)制
基數(shù):0-9蔽豺,a-f --a=10,b=11,c=12,d=13,e=14,f=15
特點(diǎn):縫16進(jìn)1
2f=32+15=47
十進(jìn)制轉(zhuǎn)換成二進(jìn)制:除2取余
123~1111011
其余同理:整除取余法(除到0)
八進(jìn)制轉(zhuǎn)二進(jìn)制:一位八進(jìn)制轉(zhuǎn)換成三位二進(jìn)制--->23=010 011
十六進(jìn)制轉(zhuǎn)換二進(jìn)制:一位十六進(jìn)制轉(zhuǎn)換成四位的2進(jìn)制--->2f = 0010 1111
2.python中的 二進(jìn)制,八進(jìn)制拧粪,和十六進(jìn)制
默認(rèn)的數(shù)字都是10進(jìn)制
基數(shù)是0,1修陡,并且數(shù)字前加前綴0b表示二進(jìn)制(例如 0b1011)
bin(整數(shù))-->將其他進(jìn)制的整數(shù)轉(zhuǎn)換成二進(jìn)制
print(bin(10))#--->0b1010
基數(shù)是0-7,并且數(shù)字前加前綴0o表示八進(jìn)制(例如 0o176)
oct(整數(shù))-->將其他進(jìn)制的整數(shù)轉(zhuǎn)換成八進(jìn)制
print(oct(10))#--->0o12
基數(shù)是0-9可霎,a-f魄鸦,并且數(shù)字前加前綴0x表示十六進(jìn)制(例如 0x1a)
print(0xff)#--->255
hex(整數(shù))-->將其他進(jìn)制的整數(shù)轉(zhuǎn)換成十六進(jìn)制
print(hex(10))#---> 0xa