一、基本知識(shí)
? ? 1.python屬于解釋型語(yǔ)言纫版;解釋型語(yǔ)言,是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語(yǔ)言客情,所以運(yùn)行速度相對(duì)于編譯型語(yǔ)言要慢其弊。當(dāng)耗時(shí)速度大的代碼可用c/c++寫。
? ? 2.兩種主流的編程范式為:函數(shù)編程裹匙、面向?qū)ο缶幊倘鸫铡ython都支持。
? ? 3.python優(yōu)缺點(diǎn)
? ? 優(yōu)點(diǎn):
? ? a.Python的定位是“優(yōu)雅”“明確”“簡(jiǎn)單”概页,所以Python程序看上去總是簡(jiǎn)單易懂籽御,初學(xué)者學(xué)Python,不但入門容易惰匙,而且將來(lái)深入下去技掏,可以編寫那些非常復(fù)雜的程序。
? ? b.開發(fā)效率非常高项鬼,Python有非常強(qiáng)大的第三方庫(kù)哑梳,基本上你想通過(guò)計(jì)算機(jī)實(shí)現(xiàn)任何功能,Python官方庫(kù)里都有相應(yīng)的模塊進(jìn)行支持绘盟,直接下載調(diào)用后鸠真,在基礎(chǔ)庫(kù)的基礎(chǔ)上在進(jìn)行二次開發(fā),大大降低開發(fā)周期龄毡,避免重復(fù)吠卷。
? ? c.高級(jí)語(yǔ)言,當(dāng)你用Python語(yǔ)言編寫程序的時(shí)候沦零,你無(wú)需考慮如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)祭隔。
? ? d.可移植性,由于它的開源本質(zhì)路操,Python已經(jīng)被移植在許多平臺(tái)疾渴。如果在編程中,小心地避免使用依賴于系統(tǒng)的特性屯仗,那么你的所有Python程序無(wú)需修改就幾乎可以在市場(chǎng)上所有的系統(tǒng)平臺(tái)上運(yùn)行搞坝。
? ? e.可擴(kuò)展性,如果你需要你的一段關(guān)鍵代碼運(yùn)行的更快或者希望某些算法不公開魁袜,你可以把你的部分程序用C或者C++編寫瞄沙,然后在你的Python程序中使用它們己沛。
? ? f.可嵌入性,你可以把Python嵌入你的C/C ++程序距境,從而向你的程序用戶提供腳本功能申尼。
缺點(diǎn):
? ? c/c++可隨意縮進(jìn),python不能隨意縮進(jìn)垫桂。對(duì)格式有嚴(yán)格要求师幕。
? ? 4.Python代碼后綴名為.py
二、認(rèn)識(shí)Python
??1.在控制臺(tái)中打印括號(hào)內(nèi)容
??print('')或print("")
??(PS:print后括號(hào)內(nèi)的內(nèi)容可以改變诬滩。)
??2.注釋用#霹粥,注釋的內(nèi)容不會(huì)出現(xiàn),也不會(huì)執(zhí)行疼鸟。
??3.sublime中顯示打印結(jié)果(顯示控制臺(tái))即Ctrl+B后控。
sublime常用快捷鍵(不止適用于python):
Ctrl+/ 添加注釋或取消注釋(多行注釋可先選中所要注釋內(nèi)容再按Ctrl+/)
Ctrl+s 保存
Ctrl+b 編譯
Ctrl+r 執(zhí)行(編譯+執(zhí)行)
Ctrl+c 拷貝
Ctrl+v 粘貼
Ctrl+x 剪切
Ctrl+z 撤銷
Ctrl+shift+z/Ctrl+y 反撤銷
Ctrl+f 查找(查找默認(rèn)查找第一個(gè),按住Ctrl查找下一個(gè))
Ctrl+a 全選
Ctrl+n 新建文件
Shift 部分選中 首先鼠標(biāo)選中最開始位置空镜,而后按住shift浩淘,再點(diǎn)擊要選內(nèi)容的最后位置。
Ctrl 同時(shí)操作 按住Ctrl吴攒,鼠標(biāo)點(diǎn)擊张抄,可以使得多個(gè)位置出現(xiàn)光標(biāo)
(ps:代碼中如果需要符號(hào)位置,符號(hào)必須是在英文輸入狀態(tài)下輸入)
1.python注釋
??寫在代碼中不參與編譯執(zhí)行的部分洼怔。作用是對(duì)代碼進(jìn)行注釋說(shuō)明署惯,方便程序更簡(jiǎn)易的被理解以及閱讀。(注意镣隶!要勤寫注釋极谊。)
注釋方法
單行注釋:在文本內(nèi)容的前面加#。例: #我是注釋
多行注釋:
a.每行前都加一個(gè)#安岂。
例:
我是注釋1
我是注釋2
b.將注釋內(nèi)容放在三個(gè)單引號(hào)/三個(gè)雙引號(hào)中(推薦使用三個(gè)雙引號(hào))怀酷。
例:
"""
我是注釋1
我是注釋2
"""
2.標(biāo)識(shí)符
標(biāo)識(shí)符是用來(lái)命名的(比如變量名、函數(shù)名嗜闻、類名)
要求(命名的要求):
a.由字母數(shù)字和下劃線組成,并且數(shù)字不能開頭桅锄。---Python2.X規(guī)范琉雳。(按Python2.X規(guī)范執(zhí)行)
b.在Unicode中,除了ASCII碼中的字母友瘤、數(shù)字下劃線以外的不能作為標(biāo)識(shí)符的一部分翠肘,其他的都可以。數(shù)字依舊不可以開頭--Python3.X規(guī)范(Unicode包含ASCII)(Unicode還包含中文辫秧、日文束倍、韓文、梵文等符號(hào))。即由字母數(shù)字下劃線和中文組成绪妹,數(shù)字不能開頭甥桂。--Python3.X規(guī)范
(ps:在實(shí)際開發(fā)中,還是推薦使用Python2.X規(guī)范)
3.語(yǔ)句
c/java語(yǔ)法邮旷,每條語(yǔ)句結(jié)束必須加分號(hào)黄选。
Python中一條語(yǔ)句結(jié)束可以加分號(hào)也可以不加;但如果一行要顯示多條語(yǔ)句婶肩,那么每條語(yǔ)句后必須加分號(hào)办陷。
例:
print('hello1!');print('hello1!');
print('hello!')
print('hello!')
4.行和縮進(jìn)
縮進(jìn):
??Python中對(duì)縮進(jìn)由嚴(yán)格規(guī)范,要求同級(jí)代碼對(duì)應(yīng)的縮進(jìn)必須一致律歼。對(duì)注釋也有縮進(jìn)要求民镜。
只有在代碼塊中需要加縮進(jìn)。
按tab鍵可一鍵生成4個(gè)空格险毁。
行:
要求函數(shù)的聲明和類的聲明前后需要有兩個(gè)空行制圈。(不會(huì)報(bào)錯(cuò))
5.多行顯示問(wèn)題
a.在需要換行的地方加反斜杠\(在要換行前即按回車之前先加\)(ps:使用反斜杠\時(shí),不要破壞數(shù)據(jù)辱揭,即不能隨意加)
sum = 18793879464 + 8794864723 + \492849837 + 349872 + \248739 + 879428
(ps:若要打印變量的值离唐,直接打印變量,不加單引號(hào)或雙引號(hào)问窃,即print(sum))
b.如果是列表亥鬓、字典、元祖和集合的值域庇,可以直接換行嵌戈。
name = [
12,
32949,
4297
]
6.常見(jiàn)的數(shù)據(jù)類型及其字面量
a.整形(int)、浮點(diǎn)型(float)听皿、布爾(bool)熟呛、字符串(str)、列表(list)尉姨、字典(dict)庵朝、元祖(tuple)、集合(set)等又厉。
整形:相當(dāng)于數(shù)學(xué)中的整數(shù)九府,例如: 100, -12覆致, +30侄旬, 0
浮點(diǎn)型:帶小數(shù)點(diǎn)的數(shù),例如:12.5煌妈, 3.14儡羔, 0.0宣羊, -12.34
布爾:只有兩個(gè)值,分別是True(真)和False(假)
字符串:用單引號(hào)或雙引號(hào)括起來(lái)的數(shù)據(jù)汰蜘,例:'asd'仇冯,'100','adg128=~'
7.關(guān)鍵字(保留字)
在python中有特殊功能和特殊意義的一些標(biāo)識(shí)符(單詞)(以下為全部的關(guān)鍵字鉴扫,int赞枕、float等不是關(guān)鍵字,是類型名)
(ps:所有關(guān)鍵字必須會(huì)讀坪创、會(huì)寫)
['False', 'None', 'True', 'and', 'as', 'assert', 'break','class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
03-數(shù)字類型
不同的類型炕婶,在內(nèi)存中存儲(chǔ)時(shí)所占的內(nèi)存不同。
1.python中的數(shù)字類型有四個(gè):整形(int)莱预、浮點(diǎn)型(float)柠掂、布爾(bool)、復(fù)數(shù)(complex)a.整形(int):包含python所有的整數(shù)依沮,python3.x整形只有int類型這一種涯贞,但是python2.x除了int還有l(wèi)ong。100123-89+898b.浮點(diǎn)型(float):包含python所有的小數(shù)(ps:python中的浮點(diǎn)型支持科學(xué)計(jì)數(shù)法)12.98-2389.9+297.9012e2 //1210^2 1200.012e-3 //1210^(-3) 0.012
(print(12e2)可以直接輸出12e2的值)
c.布爾(bool):布爾類型的值只有兩個(gè)危喉,分別為True和False宋渔。
(ps:布爾值的首字母的大寫的,且布爾值為關(guān)鍵字)
True對(duì)應(yīng)1辜限,F(xiàn)alse對(duì)應(yīng)0皇拣。
d.復(fù)數(shù)(complex)
由實(shí)部和虛部組成的數(shù)字,即10+10j薄嫡。
2.type(數(shù)值/變量):獲取括號(hào)中數(shù)值的類型print(type(10j))
print(type(100))
[圖片上傳失敗...(image-8feac2-1537960286164)]
(ps:直接使用type(數(shù)值/變量)不會(huì)在控制臺(tái)顯示數(shù)值類型氧急,如果要在控制臺(tái)顯示,要使用print打印)
3.類型名():將其他的類型的數(shù)據(jù)轉(zhuǎn)換成當(dāng)前類型毫深。
例:print(int(12.5))------12
print(bool(10))------True
print(float(100))------100.0
print(bool(100+100j)) //注意:復(fù)數(shù)不能轉(zhuǎn)換成整形/浮點(diǎn)型
04-變量
1.什么是變量
聲明變量吩坝,就是在內(nèi)存中開辟空間存儲(chǔ)數(shù)據(jù)。變量就是程序在內(nèi)存中存儲(chǔ)數(shù)據(jù)的容器哑蔫。
2.怎么聲明變量
C/Java聲明變量: 類型 變量名 = 初值钉寝;
Python聲明變量: 變量名 = 初值
格式:變量名 = 初值
說(shuō)明:a.變量名:自己命名,要求是標(biāo)識(shí)符闸迷,并且不能是關(guān)鍵字嵌纲;所有字母必須小寫,如果變量名是由多個(gè)單詞組成稿黍,多個(gè)單詞之間用下劃線隔開(最好不要用類型名來(lái)做變量名,因?yàn)轭愋兔勺约涸械囊饬x崩哩,即一個(gè)類型巡球,若是用其作為變量名言沐,會(huì)使得類型名改變其原有的意義)。
b. = :(程序里的=不是等于符號(hào)酣栈,而是賦值符號(hào)险胰,即將右邊的值賦給左邊的變量)
c.初值:有值的表達(dá)式。(具體的字面量矿筝、其他已經(jīng)聲明過(guò)的變量)
(文本用單引號(hào)包裹'',例如人名等)
asd = 100
student_name = '黎明'
3.聲明完一個(gè)變量可以給變量重新賦值起便,重新賦值后,新的變量會(huì)覆蓋變量中原來(lái)的值
在python中窖维,同一個(gè)變量可以存儲(chǔ)不同類型的值
student_name = '小紅'
student_name = 1000
4.同時(shí)聲明多個(gè)變量
a = b = c = 123print(a,b,c) //print同時(shí)打印多個(gè)信息用逗號(hào)榆综,隔開。
c/java:先開辟其類型大小的空間铸史,確定區(qū)域鼻疮,作為變量名所在的區(qū)域,a是內(nèi)存區(qū)域的名稱琳轿,10是在內(nèi)存中的內(nèi)容判沟。
int a = 10;
(4XA%J4GKD8.jpg)
python:先開辟空間,把初值存入崭篡,而后變量名再指向初值所在空間挪哄。如果改變初值,則會(huì)先開辟空間琉闪,在存入新的初值迹炼,變量名再指向新的空間,就得存儲(chǔ)空間會(huì)被銷毀塘偎。
a = 10;
[圖片上傳失敗...(image-ad3911-1537960286164)]
new_name = student_name
//可以將聲明過(guò)的變量賦值給新的變量
//變量只有在賦完值后才能使用(只有聲明后才能使用)
05-運(yùn)算符
python中運(yùn)算符:數(shù)學(xué)運(yùn)算符疗涉、比較運(yùn)算符、邏輯運(yùn)算符吟秩、賦值運(yùn)算符咱扣、位運(yùn)算
1.數(shù)學(xué)運(yùn)算符:+,-涵防,*闹伪,/,%壮池,//, * *
a.+:求和偏瓤,和數(shù)學(xué)中的+號(hào)功能一樣。
print(100+10)print(-100+10)print(21.39+10.88)
b.-:求差椰憋,和數(shù)學(xué)中的-號(hào)功能一樣厅克。result = 99 - 87print(result)
c.*:求乘積,和數(shù)學(xué)中的x號(hào)功能一樣橙依。print(21.39 * 10.88)print(21 * 10.88)print(21 * 10)d. /:求商证舟,和數(shù)學(xué)中的/號(hào)功能一樣硕旗。注意:和C語(yǔ)言中的/不一樣print(5/2) #2.5print(12.4/5) #2.48e.%:求余數(shù)print(5%2) #1print(6%2) #0print(5.5 % 0.3) #0.10000000000002(計(jì)算機(jī)的計(jì)算不能精確,一般不考慮浮點(diǎn)數(shù)的余數(shù))
f.//(整除):求商女责,結(jié)果只取商的整數(shù)部分print(5//2) #2print(6.4//2) #3.0
g.**(冪運(yùn)算):求次方(冪)
x ** y:求x的y次方 技巧:可以通過(guò)把Y的值設(shè)置成1/2(0.5)來(lái)求一個(gè)數(shù)的開平方print(23) #8print(6.42) #40.96000000000001(計(jì)算機(jī)的計(jì)算不精確)print(100-2) #0.0001print(1000.5) #10.0
2.比較運(yùn)算符:>, <, ==, !=, >=, <=
所有的比較運(yùn)算的結(jié)果是布爾值:True/False==:判斷左右兩邊的值是否相等漆枚。與=(賦值符號(hào))有區(qū)別。=(賦值符號(hào)):將右邊的值賦給左邊的變量抵知。
print(100<10) #Fprint(100>10) #Tprint(12.3 == 39) #Fnum = 10print(num == 100) #Fprint(num) #10print(num != 100) #T
3.邏輯運(yùn)算符:and(與)墙基、or(或)、not(非)
所有的邏輯運(yùn)算符的結(jié)果都是布爾值:True/False刷喜。(注意:運(yùn)算對(duì)象也必須是布爾值残制。)a. 格式為 :值1 and 值2:兩個(gè)的值都為True,結(jié)果才是True吱肌。否則都是False痘拆。print(True and True) #Tprint(False and False) #Fprint(True and False) #Fprint(False and False) #F
(可以使用多個(gè)and)
注意:使用條件:要求多個(gè)條件同時(shí)滿足的時(shí)候使用and連接
練習(xí):是否獲得獎(jiǎng)學(xué)金,獲得獎(jiǎng)學(xué)金的條件是grade大于90氮墨,score大于3.5纺蛆。grade = 88score = 3.6
a = grade > 90b = score > 3.5
print(a and b) #False
b. 值1 or 值2 :兩個(gè)的值都為False,結(jié)果才為False规揪。print(True or True) #Tprint(False or False) #Fprint(True or False) #Tprint(False or False) #T
(可以使用多個(gè)or)
練習(xí):是否穿毛衣出門:溫度低于20度桥氏,或者風(fēng)速高于5級(jí)tem = 18wind_speed = 4
condition1 = tem < 20condition2 = wind_speed > 5
print(condition1 or condition2) #True注意:使用條件:要求一個(gè)條件滿足的時(shí)候就可以使用or連接。
c.not 值: 值取反(True -> False; False -> True)print(not True )print(not False )
練習(xí):條件:年齡不大于18age = 18print(age <= 18)print(not age > 18)否定某個(gè)條件的時(shí)候使用not
4.python中and和or會(huì)有短路現(xiàn)象
and的短路現(xiàn)象:值1 and 值2 -->一旦確定值1的值為False猛铅,就不會(huì)再去執(zhí)行判斷值2or的短路現(xiàn)象:值1 or 值2 -->一旦確定值1的值為True字支,就不會(huì)再去執(zhí)行判斷值2
5.賦值運(yùn)算符:=,+=奸忽,-=堕伪,/=, %=, //=, **=
賦值運(yùn)算符的左邊必須是變量,賦值的時(shí)候是先算賦值符號(hào)右邊的結(jié)果栗菜,然后再將結(jié)果賦值給左邊的變量欠雌。result = 10 > 100print(result) #False ,先計(jì)算10>100的結(jié)果,再將結(jié)果賦值給result
a.=: 單純的將=右邊的值賦給左邊num0 = 100b.+=, -=, /=, %=, //=, **=要求左邊的變量本身必須是有值的變量1 += 值 --相當(dāng)于-->變量1 = 變量1 + 值num1 = 10num1 += 10print(num1)
num2 = 10num2 *= 10print(num2)
6.運(yùn)算符的優(yōu)先級(jí):
a.數(shù)學(xué)運(yùn)算符>比較運(yùn)算符>邏輯運(yùn)算符>賦值運(yùn)算符b.先計(jì)算優(yōu)先級(jí)高的疙筹,如果優(yōu)先級(jí)相等就從左往右依次運(yùn)算富俄。c.如果有括號(hào),先算括號(hào)里面的d.數(shù)學(xué)運(yùn)算中:** > *, /, %, // > +, -
print(100 > 200 - 50 * 3) #True,先算數(shù)學(xué)運(yùn)算符得50而咆,再算比較運(yùn)算符霍比,得Trueprint((100 > 200) - 50 * 3) #-150,即括號(hào)里為False,F(xiàn)alse=0,0-150=-150