第一章:Python的概述
1.1:什么是Python?
Python它是一種直譯式,面向?qū)ο?,解釋式的腳本語言。它和Java,C/C++,Go語言一樣都是高級(jí)語言,但由于它是解釋式語言,所以運(yùn)行速度會(huì)比Java,C/C++等語言慢(雖說隔壁Go也是解釋式語言,但比它快很多)。不過任何事物有利也有弊,Python因?yàn)樽陨頂y帶了許多庫(kù)(如:OS、TCP、Urllib、Trutle),語法簡(jiǎn)單,第三庫(kù)也有很多(如飛機(jī)大戰(zhàn)所需的pygame),所以被稱為膠水語言,同時(shí)也深受開發(fā)者青瞇。
1.2:Python之父與簡(jiǎn)介
Python之父:Guido van Rossum,荷蘭人。他也是一個(gè)比較傳奇的人物,1982年 在阿姆斯特丹大學(xué)獲得計(jì)算機(jī)和數(shù)學(xué)科學(xué)碩士學(xué)位 ,1989年制作Python,1995年Guido van Rossum從荷蘭移民到美國(guó),2005年在Google工作,并用Python發(fā)明了面向網(wǎng)頁的代碼瀏覽工具M(jìn)ondrian,之后又開發(fā)了Rietveld。現(xiàn)在在Dropbox工作。
1.3:Python應(yīng)用范圍
基本全能,例如:系統(tǒng)運(yùn)維、圖形處理、數(shù)學(xué)處理、文本處理、數(shù)據(jù)庫(kù)編程、網(wǎng)絡(luò)編程、web編程、多媒體應(yīng)用、pymo引擎、黑客編程、爬蟲編寫、機(jī)器學(xué)習(xí)、人工智能等。
1.4:Python優(yōu)缺點(diǎn)
優(yōu)點(diǎn):免費(fèi)開源、無社區(qū)限制、可開發(fā)應(yīng)用面廣、可跨平臺(tái)、功能強(qiáng)大、自身攜帶模塊多、第三方模塊多、語法簡(jiǎn)單,代碼量少可實(shí)現(xiàn)多功能等。例如以下代碼實(shí)例
按照程序界傳統(tǒng),入門新人寫的第一個(gè)程序就是輸出Hello,world。要是我們用C實(shí)現(xiàn)
#include<stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
然而我們用Python
def print():
return print
print('Hello world')
或者更簡(jiǎn)單
print('Hello world')
我們可以看出制作同一個(gè)程序,運(yùn)用代碼量Python遠(yuǎn)比C要少,所以這就是它受廣大程序員青睞的原因之一。
缺點(diǎn):運(yùn)行速度遠(yuǎn)比C/C++等語言要慢等。
第二章:安裝與配置Python IDE
在古代戰(zhàn)場(chǎng)上,一把趁手的武器與士兵精湛的武術(shù)、將軍正確的指揮,相輔相成,相得益彰,這樣勝率往往會(huì)提高很多。在做某愛時(shí),即使女方精通某愛技藝,身材嫵媚妖嬈的妹子,但如果你的燒火棍很小,那么你將不能滿足她,然后就可能會(huì)造成伴侶之間某冷淡。但如果你的燒火棍猶如定海神針般,那么你將可以給予她*方面的滿足,同時(shí)也增進(jìn)了伴侶間的感情(開始正兒八經(jīng)的胡說八道)…這些道理放到配置Python解釋器方面也同樣適用。因此,我們應(yīng)該如何正確配置Python解釋器了?下面的方法將會(huì)對(duì)你正確指導(dǎo)。
Windows(Python 3.8.9)
IDLE:官網(wǎng):https://www.python.org/downloads/
點(diǎn)擊網(wǎng)址進(jìn)入官網(wǎng),搜索Python 3.8.9
然后找到它
看系統(tǒng)是多少位的就根據(jù)多少位選擇
下載后點(diǎn)擊Next,根據(jù)自己愛好來安裝(借3.4.4來當(dāng)教材,安裝原理一樣)
確認(rèn)后只需等待一會(huì)就可安裝完成。
如果不確定是否安裝完成,可以在Command(Cmd)中輸入Python。如果安裝成功輸出如下
如果失敗可以嘗試一下點(diǎn)擊Repair(別說九年教育了連這個(gè)詞都不懂),修復(fù)完后重試通常都能成功。
PyCharm(官網(wǎng):https://www.jetbrains.com/pycharm/)
進(jìn)入官網(wǎng)后找到Download PyCharm now,然后找到社區(qū)(community)版本下載(專業(yè)版需要付費(fèi),社區(qū)版是免費(fèi)的)。
然后(可以根據(jù)自己實(shí)際情況選磁盤)
根據(jù)自己的系統(tǒng)位數(shù)選擇勾選安裝,然后安裝(install)
下載完后,創(chuàng)建一個(gè)新Project,并選擇合適的解釋器
成功
Linux與Mac OS
Linux
IDEA:
Linux 系統(tǒng)是為編程而生的,因此絕大多數(shù)的 Linux 發(fā)行版(Ubuntu、CentOS 等)都默認(rèn)自帶了 Python。有的 Linux 發(fā)行版甚至還會(huì)自帶兩個(gè)版本的 Python,例如最新版的 Ubuntu 會(huì)自帶 Python 2.x 和 Python 3.x。
打開 Linux 發(fā)行版內(nèi)置的終端(Terminal),輸入python命令就可以檢測(cè)是否安裝了 Python,以及安裝了哪個(gè)版本,如下所示:
[c.biancheng.net@localhost ~]$ python
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
可以看到,python命令能夠正常運(yùn)行,并輸出了 Python 的版本信息,這表明當(dāng)前的 Linux 發(fā)行版已經(jīng)自帶了 Python 2.7.5。
大部分的 Linux 發(fā)行版會(huì)自帶 Python 2.x,但是不一定自帶 Python 3.x,要想檢測(cè)當(dāng)前 Linux 發(fā)行版是否安裝了 Python 3.x,可以在終端`
(Terminal)輸入python3命令,如下所示:
[c.biancheng.net@localhost ~]$ Python3
Python 3.6.4 (default , Nov 18 2018 , 13:02:36)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help","copyright","credits" or "license" for more information.
>>>
如果python3命令運(yùn)行成功,并出現(xiàn) Python 提示符>>>,則表明當(dāng)前 Linux 發(fā)行版已經(jīng)安裝了 Python 3 開發(fā)環(huán)境,只需執(zhí)行python3命令就可以啟動(dòng) Python 3 開發(fā)環(huán)境。
如果當(dāng)前 Linux 發(fā)行版沒有安裝 Python 3,或者你覺得現(xiàn)有的 Python 3 版本不夠新,那么就需要更新 Python 版本。本節(jié)我們以 Ubuntu 為例來進(jìn)行演示。
更新 Python 版本
在 Ubuntu 終端執(zhí)行以下兩條命令即可更新 Python 版本:
$sudo apt-get update
$sudo apt-get install python3.8
對(duì)命令的說明:
第一條命令用來指定更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 所列出的源地址,這樣能夠保證獲得最新的安裝包。
第二條命令用來指定安裝 Python 3.8,這是目前最新的 Python 版本。
等待以上兩條命令執(zhí)行完成,再次在終端輸入python3命令,就可以看到 Python 交互式編程環(huán)境已經(jīng)更新到 Python 3.8。
重新安裝 Python
以上更新方法僅在 Ubuntu 已經(jīng)安裝 Python 的情況下才有效,如果你的 Ubuntu 中沒有 Python 環(huán)境,或者你想重新安裝,那么就得到官網(wǎng)下載源代碼,然后自己編譯。
- 下載源代碼
Python 官方下載地址:https://www.python.org/downloads/
打開鏈接,可以看到各個(gè)版本的 Python:
Python 下載頁面截圖
圖 1 Python 下載頁面截圖
點(diǎn)擊上圖中的版本號(hào)或者“Download”按鈕進(jìn)入對(duì)應(yīng)版本的下載頁面,滾動(dòng)到最后即可看到各個(gè)平臺(tái)的 Python 安裝包。
找到源碼包地址
圖 2 找到源碼包地址
在“Gzipped source tarball”處單擊鼠標(biāo)右鍵,從彈出菜單中選擇“復(fù)制鏈接地址”,即可得到.tgz格式的源碼壓縮包地址。
然后執(zhí)行以下命令:
$ wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
解壓源碼包:
$ tar -zxvf Python-3.8.1.tgz
- 編譯
使用 make 工具進(jìn)行編譯:
$ ./configure --prefix=/usr/local
$ make&&sudo make install
這里的–prefix=/usr/local用于指定安裝目錄(建議指定)。如果不指定,就會(huì)使用默認(rèn)的安裝目錄。
經(jīng)過以上幾個(gè)命令,我們就安裝好了 Python,這時(shí)就可以進(jìn)入終端,輸入 Python 指令,驗(yàn)證是否已安裝成功。
小技巧
python命令默認(rèn)調(diào)用的是 Python 2.x 開發(fā)環(huán)境,如果你習(xí)慣使用 Python 3.x,感覺每次輸入python3命令有點(diǎn)麻煩,那么你可以修改配置,讓python命令轉(zhuǎn)而調(diào)用 Python 3.x 開發(fā)環(huán)境。具體命令如下:
$sudo unlink /usr/bin/python
$sudo ln -s /usr/bin/python3.8 /usr/bin/python
注意,第二條命令中 Python 3.x 的路徑和版本一定要正確。
上述命令執(zhí)行完成以后,再次在終端輸入python命令,進(jìn)入的就是 Python 3.8 的交互式開發(fā)環(huán)境了。
Mac OS
和 Linux 發(fā)行版類似,最新版的 Mac OS X 也會(huì)默認(rèn)自帶 Python 2.x。
我們可以在終端(Terminal)窗口中輸入python命令來檢測(cè)是否安裝了 Python 開發(fā)環(huán)境,以及安裝了哪個(gè)版本,如下所示:
c.biancheng.net:~ mozhiyan$ python
Python 2.7.10 (default, Jul 30 2016, 18:31:42)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type “help”, “copyright”, “credits” or “l(fā)icense” for more information.
可以看到,python命令能夠正常運(yùn)行,并輸出了 Python 的版本信息,這表明當(dāng)前的 Mac OS X 系統(tǒng)已經(jīng)自帶了 Python 2.7.10。
python命令默認(rèn)指向 Python 2.x 開發(fā)環(huán)境,如果想檢測(cè)當(dāng)前 Mac OS X 是否安裝了 Python 3.x,可以在終端(Terminal)窗口中輸入python3命令:
如果系統(tǒng)提示command not found,則說明沒有安裝 Python 3.x;
如果python3命令運(yùn)行成功,并顯示出版本信息,則說明已經(jīng)安裝了 Python 3.x。
對(duì)于沒有安裝 Python 3.x 的 Mac OS X,想要安裝也非常簡(jiǎn)單,用戶只需要下載安裝包,然后一直“下一步”即可,這和 Windows 安裝 Python 的過程是非常類似的。
Mac OS X 安裝 Python 3.x
Python 官方下載地址:https://www.python.org/downloads/
打開鏈接,可以看到各個(gè)版本的 Python:
圖 1 Python 下載頁面截圖
點(diǎn)擊上圖中的版本號(hào)或者“Download”按鈕進(jìn)入對(duì)應(yīng)版本的下載頁面,滾動(dòng)到最后即可看到各個(gè)平臺(tái)的 Python 安裝包。
圖 2 各個(gè)平臺(tái)的 Python 安裝包
macOS 64-bit installer即為 Mac OS X 系統(tǒng)的 Python 安裝包。點(diǎn)擊該鏈接,下載完成后得到一個(gè) python-3.8.1-macosx10.9.pkg 安裝包。
雙擊 python-3.8.1-macosx10.9.pkg 就進(jìn)入了 Python 安裝向?qū)?,然后按照向?qū)б徊揭徊较蛳掳惭b,一切保持默認(rèn)即可。
圖 1 Python安裝向?qū)?br>
安裝完成以后,你的 Mac OS X 上將同時(shí)存在 Python 3.x 和 Python 2.x 的運(yùn)行環(huán)境,在終端(Terminal)輸入python命令將進(jìn)入 Python 2.x 開發(fā)環(huán)境,在終端(Terminal)輸入python3命令將進(jìn)入 Python 3.x 開發(fā)環(huán)境。
c.biancheng.net:~ mozhiyan$ python3
Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53)
[Clang 6.0 (clang-600.0.57)] on darwin
Type “help”, “copyright”, “credits” or “l(fā)icense” for more information.
與 Windows 系統(tǒng)類似,Mac OS 下的 Python 3.x 也會(huì)自帶 IDLE 簡(jiǎn)易開發(fā)工具,你可以在程序列表中找到它。
圖 2 安裝完成以后的程序列表
第三章:Python基礎(chǔ)
3.1: Python的輸出(略講,第五章將會(huì)與輸入一同詳細(xì)講)
在Python中,如果想要輸出一些特定數(shù)據(jù),我們就必須用到print()函數(shù)
利用Print()函數(shù)輸出的方法有很多中,比如我喜歡了一個(gè)叫LWL的小女孩,我要去簡(jiǎn)單表白。如果我想要節(jié)省字節(jié)免得占磁盤的話,我可以
print('LWL我喜歡你,可不可以做我女朋友呀?')
如果覺得無所謂,也可以
Loveyou='LWL我喜歡你,可不可以做我女朋友呀?'
print(Loveyou)
你也可以把字串符結(jié)合再輸出
Love='LWL我喜歡你,'
you='可不可以做我女朋友呀?'
print(Love + you)
或者來點(diǎn)更高b格的
def Loveyou1314():
print('LWL我喜歡你,不知你可不可以做我女朋友')
Loveyou1314()
這個(gè)輸出是運(yùn)用到自定義函數(shù)輸出,關(guān)于Python的函數(shù)與內(nèi)置函數(shù)以后會(huì)講。
3.2:Python數(shù)據(jù)類型(數(shù)字)
在Python中,數(shù)字?jǐn)?shù)據(jù)類型有int、float、bool(布爾型)、complex(復(fù)數(shù))。在這里要提醒一下學(xué)過C語言的人,在Python中浮點(diǎn)類型只有單精度float,不要以為保留兩位小數(shù)的數(shù)就是雙精度類型(double),在Python中無論你是多少位小數(shù)它的數(shù)據(jù)類型都是float。
當(dāng)然,如果你想判斷該數(shù)字的數(shù)據(jù)類型,你可以嘗試用type()函數(shù)來判定,如以下代碼實(shí)例:
a6,a5,a3,a2,a1=4 + 7j,47.88 ,47 ,47.8 ,47.88888
a4=False
print(type(a1),type(a2),type(a3),type(a4),type(a5),type(a6))
輸出如下
當(dāng)然,也可以用isinstance()函數(shù)來判定,結(jié)果返回True代表你認(rèn)為的數(shù)據(jù)類型是正確的,F(xiàn)alse就代表錯(cuò)誤。
a6,a5,a3,a2,a1=4 + 7j,47.88 ,47 ,47.8 ,47.88888
a4=False
print("Type a1:",type(a1),isinstance(a1, type(a1)),)
print("Type a2:",type(a2),isinstance(a2, type(a2)),)
print("Type a1\3:",type(a3),isinstance(a3, type(a3)),)
print("Type a4:",type(a4),isinstance(a4, type(a4)),)
print("Type a5:",type(a5),isinstance(a5, type(a5)),)
print("Type a6:",type(a6),isinstance(a6, type(a6)),)
輸出
好了,既然學(xué)完了數(shù)字?jǐn)?shù)據(jù)類型,那么也學(xué)下算術(shù)運(yùn)算符吧。
3.2.1:算術(shù)運(yùn)算符
在Python中,運(yùn)算符有:+、-、*、/、%、**、//(加、減、乘、除、取模、次方、整除)
+:加法,兩個(gè)變量相加求和
-:減法,兩個(gè)變量相減求差
*:乘法,變量相乘求積
/:除法,變量相除求商
%:取模,得到除法結(jié)果第一位余數(shù)
**:次方,求變量(a)的n次冪->(a)?,可以用pow()函數(shù)代替
//:整除,取除法后的整數(shù)部分
學(xué)完算術(shù)運(yùn)算符后,我們可以與之前學(xué)過的數(shù)字?jǐn)?shù)據(jù)類型來結(jié)合使用。
a = 1314
b = 521
print(a+b,a-b,a*b,a/b,a%b,a**b,pow(a,b),a//b,)
輸出如下
3.3:Python數(shù)據(jù)類型(字串符:string)
在Python中,數(shù)據(jù)類型不僅僅有數(shù)字?jǐn)?shù)據(jù)類型,當(dāng)然也有其他的,string(字串符)數(shù)據(jù)類型也是其中一種。
如果你想換行轉(zhuǎn)義輸出,你可以在要轉(zhuǎn)義的字串符之間加個(gè)\n(PS:反斜杠\是特殊轉(zhuǎn)義字符),但在字串符前加個(gè)r將會(huì)是原字串符輸出。
a = 'Hello','LWL'
b = 'Hello''LWL'
#注意字串符a與b的區(qū)別,如果有逗號(hào),
#那么輸出時(shí)將會(huì)是兩個(gè)字串符一起輸出,如
#果沒有輸出將會(huì)兩個(gè)字串符相互結(jié)合輸出
c,d= 'Hello','LWL'
print(a)
print(b)
print(c,d)
print(c+d)
print(b[0:-2])
print(c[0:-3])
print(d[0:-1])
print(c*2,d*2)#各輸出兩次
print((c+d)*2)#結(jié)合輸出兩次
print('Hello,\nLWL')
print(r'Hello,LWL')#加了r后轉(zhuǎn)義字符失效
e='Love LWL 1314'
print(e[0],e[5])#輸出指定索引位置的字母
print(e[0],e[-2],e[3])#Python與C語言字串符不同的地方在于Python字串符是不可以被改變的,
#如果向一個(gè)指定索引賦值,那么將會(huì)錯(cuò)誤
輸出結(jié)果如下
3.3:Python數(shù)據(jù)類型(列表:List)
在Python中,復(fù)合數(shù)據(jù)類型分別有三種:Tuple(元組)、Set(集合)與List(列表)。然后今天教的復(fù)合數(shù)據(jù)類型就是這三類之中最easist的一類:List(列表)
在Python中,創(chuàng)建一個(gè)列表數(shù)據(jù)類型方法如下
變量名稱 = ['數(shù)值',數(shù)值]
在列表的數(shù)值內(nèi)容中,數(shù)值可以類型不同,但要記住的一點(diǎn)是:**除數(shù)字以外其他任何數(shù)值都必須要用單引號(hào)括起(無論是中文還是其他國(guó)家語言,都必須要),而數(shù)字?jǐn)?shù)值可以不用單引號(hào)括起)。**代碼實(shí)例如下
PS:具體內(nèi)容已在注釋
a = ['a','b','c',3] #創(chuàng)建兩個(gè)列表
b = [4,7,'love','to','lwl',',','never','change']
print(a,b)
print(a[0:1:3]) #輸出指定列表被切割后的指定數(shù)據(jù)
print(b[1:7])
print(a[3]) #輸出指定索引搜索的數(shù)據(jù)
print(b[7])
a[0:3]='A','B','C' #修改列表中指定數(shù)據(jù),即可以直接修改
print(a)
b.append(347) #append()函數(shù)用于在制定列表末尾添加新數(shù)值
print(b)
a[1]=[] #移除a列表中指定索引數(shù)據(jù)
print(a)
print('a列表數(shù)據(jù)個(gè)數(shù):',len(a),'b列表數(shù)據(jù)個(gè)數(shù):',len(b)) #len()函數(shù)用于統(tǒng)計(jì)列表數(shù)據(jù)個(gè)數(shù)
c=[0,1] #生成一個(gè)嵌入式列表
d=[2,3]
e=[c,d]
print(e)
3.4:Python數(shù)據(jù)類型(Tuple:元組)
在Python中,元組的語法與列表差不多,不同之處就是元組使用小括號(hào)(),且括號(hào)中元素不能被改變,創(chuàng)建元組可以不需要括號(hào);而列表是使用中括號(hào)[]。
因此想要把列表轉(zhuǎn)換為元組或元組轉(zhuǎn)換為列表,只需要改一下括號(hào)即可
變量名稱 = ('元素',元素)
變量名稱 = "元素","元素"
創(chuàng)建元組實(shí)例
a = ('C/c++','Python',2) #創(chuàng)建兩個(gè)元組
b = "Python菜中菜的菜鳥","Love to lxx for Li wenli","never change"
print(a,b)
創(chuàng)建一個(gè)空的元組
a = ()
因?yàn)樵M與列表語法相似,所以元組可以與其他元組結(jié)合為一個(gè)新元組并輸出
a = ('C/C++','Python',2) #創(chuàng)建兩個(gè)元組
b = "Python菜中菜的菜鳥","Love to lxx for Li wenli","never change"
c = a+b #相互結(jié)合
print(c)
輸出
如果想刪除元組,那么可以用del語句來實(shí)現(xiàn)
a = ('C/C++','Python',2) #創(chuàng)建兩個(gè)元組
b = "Python菜中菜的菜鳥","Love to lxx for Li wenli","never change"
c = a+b #相互結(jié)合
print(c)
del c
print(c)
因后元組被刪除所以會(huì)輸出異常
當(dāng)然,元組也和字串符一樣支持+和*運(yùn)算符(具體已在注釋表面)
a = ('C/C++','Python',2) #創(chuàng)建兩個(gè)元組
b = "Python菜中菜的菜鳥","Love to lxx for Li wenli","never change"
c = a+b #相互結(jié)合
print(len(c))#輸出c元組內(nèi)數(shù)據(jù)個(gè)數(shù)
print(c*2)#復(fù)制輸出
print(b in ("Python菜中菜的菜鳥","Love to lxx for Li wenli","never change"))
#判斷元素是否存在
for c in ("Python菜中菜的菜鳥","Love to lxx for Li wenli","never change",'C/C++','Python',2):
print(c,) #迭代輸出
輸出
元組的內(nèi)置函數(shù)(具體在注釋)
a = ['C/C++','Python',2,4] #創(chuàng)建列表
b = ["Python菜中菜的菜鳥","Love to lwl for Li wenli","never change"]
c = a+b #相互結(jié)合
c = tuple(c)#強(qiáng)制轉(zhuǎn)換為元組
print(len(c))#輸出列表內(nèi)數(shù)據(jù)個(gè)數(shù)
d = ('3','4','7')
print(max(d))#輸出d元組內(nèi)最大數(shù)值
print(min(d))#輸出d元組內(nèi)最小數(shù)值,max()是判斷最大值函數(shù),min()反之
輸出
3.5:Python數(shù)據(jù)類型(Set:集合)
Set(集合)數(shù)據(jù)類型它和Tuple、List一樣都屬于復(fù)合數(shù)據(jù)類型,而且集合數(shù)據(jù)類型是一種無序不重復(fù)元素的序列
在Python中,我們可以使用大括號(hào){}或內(nèi)置函數(shù)Set()來創(chuàng)建一個(gè)集合(創(chuàng)建一個(gè)空集合必須用Set()函數(shù),不可用{},因?yàn)椋龑?shí)質(zhì)是創(chuàng)建一個(gè)空的字典
格式實(shí)例
a = {'a','b','c','d','a'}#創(chuàng)建集合a
print(a)#因?yàn)榧鲜菬o序不重復(fù)元素序列,所以不會(huì)輸出多出的a
b = set('sdgsdggfdgdasrfdsf')#運(yùn)用Set()函數(shù)創(chuàng)建集合b
print(b)
輸出
判斷元素是否在集合內(nèi)
a = {'a','b','c','d','a'}#創(chuàng)建集合a
print('a' in a,'e' in a)
在這個(gè)代碼中代碼片段’a’ in a與’e’ in a主要判斷a與e元素是否在此集合內(nèi),如果在就輸出True,反之位False。
輸出結(jié)果
與List與Tuple一樣,Set也支持?jǐn)?shù)學(xué)運(yùn)算符運(yùn)算,不同運(yùn)算符使用范圍也不同
a = set('sdfygsyfysdgfsdtfsyhf')
b = set('hgdhsdfsghdvhgsfs')
print(a - b)
print(a | b)
print(a & b)
print(a ^ b)
在這里面,減號(hào)(-)的作用就是輸出a集合中b集合內(nèi)沒有的元素,豎線符號(hào)(|)主要輸出集合a或b中包含的元素,邏輯符號(hào)(&:and,和,拉丁美語為et)就是要輸出集合a和b中共同包含的元素,乘方(^)主要輸出不同時(shí)包含于a和b的元素。
輸出結(jié)果
在集合中,我們可以使用關(guān)鍵字add或update來添加新的元素
b = set('hgdhsdfsghdvhgsfs')
print(b)
b.add('fuck')
b.update('good')
print(b)
輸出結(jié)果,大家對(duì)照會(huì)發(fā)現(xiàn),每次輸出都會(huì)有不同的新元素輸出
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'h', 'g', 'f', 's', 'v', 'd'}
{'h', 'fuck', 'g', 'f', 's', 'v', 'o', 'd'}
當(dāng)然,如果想要?jiǎng)h除某些元素,可以使用關(guān)鍵字remove,discard或pop(pop會(huì)隨機(jī)刪除某些元素)
b = set('abcdefghijk,fuck,abats')
print(b)
b.remove('f')
print(b)
b.discard('h')
print(b)
b.pop()
print(b)
在這里remove與discard分別刪除f與h元素,而pop扶著隨機(jī)刪除集合內(nèi)任意一個(gè)元素
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'j', 't', 'h', 'k', 'b', 'd', 's', 'f', 'g', 'i', ',', 'a', 'c', 'e', 'u'}
{'j', 't', 'h', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'}
{'j', 't', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'}
{'t', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'}
>>>
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'e', 'd', 's', 'g', 'h', 'b', 'c', 'i', 'f', 'k', 'u', 'j', 'a', ',', 't'}
{'e', 'd', 's', 'g', 'h', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'}
{'e', 'd', 's', 'g', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'}
{'d', 's', 'g', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'}
>>>
大家仔細(xì)觀察一下,兩次輸出雖然因?yàn)闊o序輸出導(dǎo)致輸出不同,但最后刪除的元素都分別不同,第一次刪除元素為字母j,第二次為字母e。
當(dāng)然,如果覺得刪除一個(gè)不過癮,大家可以使用函數(shù)clear()來進(jìn)行全部刪除 ??
b = set('abcdefghijk,fuck,abats')
print(b)
b.clear()
print(b)
在這個(gè)代碼中第一次輸出因?yàn)闆]有使用clear()函數(shù)清除因此正常輸出,而第二次輸出使用了clear()函數(shù)刪庫(kù)跑路了,所以只能輸出一個(gè)空的集合。因此,輸出結(jié)果如下
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'t', 'a', 'k', 'c', 'i', 'j', 'b', 'f', 's', ',', 'd', 'u', 'g', 'e', 'h'}
set()
>>>
3.6:Python數(shù)據(jù)類型(字典:dictionary)
在Python中,字典是另外一種數(shù)據(jù)儲(chǔ)存的可變?nèi)萜?,而且可以存?chǔ)任何數(shù)據(jù)類型的數(shù)據(jù)值對(duì)象。
在上一節(jié)提及到,創(chuàng)建一個(gè)空字典需要用大括號(hào){},在字典中每一個(gè)值對(duì)用冒號(hào),且每個(gè)值需要逗號(hào)(,)分隔。
a = {key1:value1,key2:value2,key3:value3}
dictionary{key->1value1
key2->value2
key3->value3
下面將演示創(chuàng)建一個(gè)字典并輸出
```python
a = {'a':'Python','b':'347','c':'hjgjhfgy'}#創(chuàng)建一個(gè)字典
b = {'a':'HTML/Javascript','b':'Rust'}
print(b)
print(a['a'],a['c'])
在這個(gè)代碼中a['a']與a['c']是分別訪問并輸出字典內(nèi)對(duì)應(yīng)數(shù)據(jù)值,與索引方式差不多,而print(b)則負(fù)責(zé)輸出整個(gè)字典b內(nèi)數(shù)據(jù)。
輸出結(jié)果
```python
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'a': 'HTML/Javascript', 'b': 'Rust'}
Python hjgjhfgy
如果要輸出的值字典內(nèi)沒有,那么輸出將會(huì)顯示異常。
a = {'a':'Python','b':'347','c':'hjgjhfgy'}#創(chuàng)建一個(gè)字典
b = {'a':'HTML/Javascript','b':'Rust'}
print(b)
print(a['a'],a['d'])
輸出
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建文件夾\4.py", line 4, in <module>
print(a['a'],a['d'])
KeyError: 'd'
想要修改字典內(nèi)的數(shù)據(jù)很簡(jiǎn)單,與前面的復(fù)合數(shù)據(jù)類型修改方式一樣,不過要注意字典修改數(shù)據(jù)時(shí)修改對(duì)象填的不是數(shù)字,而是對(duì)應(yīng)的名稱。
a = {'a':'Python','b':'347','c':'hjgjhfgy'}#創(chuàng)建一個(gè)字典
b = {'a':'HTML/Javascript','b':'Rust'}
print(b)
print(a['a'],a['c'])
a['c']='Perl'
print(a['a'],a['c'])
輸出
============== RESTART: C:\Users\Administrator\Desktop\新建文件夾\4.py ==============
{'a': 'HTML/Javascript', 'b': 'Rust'}
Python hjgjhfgy
Python Perl
清除字典數(shù)據(jù)也很簡(jiǎn)單,與集合一樣,使用clear()函數(shù),然而刪除的話就需要用到del語句
a = {'a':'Python','b':'347','c':'hjgjhfgy'}#創(chuàng)建一個(gè)字典
print(a)
a.clear()#清除字典所有數(shù)據(jù)
print(a)
del a#刪除字典
print(a)
因?yàn)閐el語句把字典刪除了,所以輸出異常
輸出如下
{'a': 'Python', 'b': '347', 'c': 'hjgjhfgy'}
{}
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建文件夾\4.py", line 6, in <module>
print(a)
NameError: name 'a' is not defined
第四章:代碼格式整潔與三種流行編程規(guī)則
4.1:格式整潔
在平時(shí)寫代碼時(shí),我想有一部分人他們平時(shí)可能不會(huì)注意代碼的整潔性,所以寫出來的代碼都是一坨坨的,導(dǎo)致自己或他人維護(hù)會(huì)顯得很不方便。例如以下C語言迷宮代碼
#include<stdio.h>#include<stdlib.h>#include<coin.h>
int map[10][10]={0,0,0,0,0,0,0,0,0,0,
0,1,2,1,0,0,0,0,0,0,
0,1,1,1,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,0,0,
0,0,0,0,1,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,
0,0,0,0,0,0,0,0,0,0,};void DrawMap();void playGame();int main(){while(1){DrawMap();playGame();system("cls");}}
void DrawMap(){int i,j;
for(i=0; i<10; i++){for(j=0; j<10; j++){if(map[i][j]==0){printf("□");}else if(map[i][j]==1){printf(" ");}else{printf("*");}}printf("\n");}}
void playGame(){char key=getch();int i,j;for(i=0;i<10;i++){for(j=0;j<10;j++){if(map[i][j]==2){break; }}if(map[i][j]==2){break;}}
因?yàn)樽謹(jǐn)?shù)限制導(dǎo)致無法顯示完全,但從這一部分代碼可以看出此代碼非常不美觀且難以維護(hù)。但如果我們加入縮進(jìn)與換行
#include<stdio.h>#include<stdlib.h>#include<coin.h>
int map[10][10]={0,0,0,0,0,0,0,0,0,0,
0,1,2,1,0,0,0,0,0,0,
0,1,1,1,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,0,0,
0,0,0,0,1,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,
0,0,0,0,0,0,0,0,0,0,};void DrawMap();void playGame();int main(){while(1){DrawMap();playGame();system("cls");}}
void DrawMap(){int i,j;
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
if(map[i][j]==0)
{
printf("□");
}
else if(map[i][j]==1)
{
printf(" ");
}
else
{
printf("*");
}
}
printf("\n");
}}
void playGame(){ char key=getch();
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(map[i][j]==2)
{
break;
}
}
if(map[i][j]==2)
{
break;
}
}
switch(key){
case'w':
if(map[i-1][j]==1)
{
map[i][j]=map[i][j]-1;
map[i-1][j]=map[i-1][j]+1;
break;
}
case's':
if(map[i+1][j]==1)
{
map[i][j]=map[i][j]-1;
map[i+1][j]=map[i+1][j]+1;
break;
}
case'a':
if(map[i][j-1]==1)
{
map[i][j]=map[i][j]-1;
map[i][j-1]=map[i][j-1]+1;
break;
}
case'd':
if(map[i][j+1]==1)
{
map[i][j]=map[i][j]-1;
map[i][j+1]=map[i][j+1]+1;
break;
}
}
system("PAUSE");
}
看起來是否覺得舒服很多?想維護(hù)的欲望是否增加許多?
當(dāng)然,在其他語言比如C/C++可能還有可以不遵守代碼整潔這首歌唱,但在Python這里這首歌可就Say goodbye了。因?yàn)槿绻悴蛔袷卮a格式整潔,報(bào)錯(cuò)將會(huì)可能把你給逼瘋。
如以下Python代碼
a = '要是時(shí)光可以倒流那該多好,要是可以那么就可以多陪汶勵(lì)一段時(shí)間了。'
print(a)
在此代碼中,因?yàn)樽兞縜前面有一個(gè)縮進(jìn),所以代碼在運(yùn)行時(shí)將會(huì)報(bào)錯(cuò),無法運(yùn)行
如果我們將縮進(jìn)去掉,那么將可以正常運(yùn)行代碼
輸出如下
要是時(shí)光可以倒流那該多好,要是可以那么就可以多陪汶勵(lì)一段時(shí)間了。
好了,廢話不多說,開始進(jìn)入寫法教程
4.2:編程規(guī)則
匈牙利命名法
匈牙利命名法是由Microsoft 程序員查爾斯- 西蒙尼(Charles Simonyi)提出,匈牙利命名法通過在變量名前面加上相應(yīng)的小寫字母的符號(hào)標(biāo)識(shí)作為前綴,標(biāo)識(shí)出變量的作用域,類型等這些符號(hào)可以多個(gè)同時(shí)使用,順序是先m_(成員變量), 再指針,再簡(jiǎn)單數(shù)據(jù)類型,再其它 。如c_MessageBox
屬性+類型+描述
屬性一般是小寫字母+_:
g_:全局變量
m_:類成員變量
s_:靜態(tài)變量
c_:常量
類型就多了:
b:bool
sz:以零結(jié)束的字符串
p:指針
n:整整
dw:雙字
l:長(zhǎng)整型
無符號(hào):u
函數(shù):fn
駝峰命名法
駝峰命名法包含了小駝峰命名法與大駝峰命名法,顧名思義利用了駝峰命名法來命名變量該變量也會(huì)有些高低起伏。好了,廢話不多說,繼續(xù)進(jìn)入正題
**小駝峰命名法:**變量名稱開頭小寫,然后后面英文隔一部分后開始大寫一個(gè)英文字母,如conTent…
代碼實(shí)例如下
conTent = '我的目標(biāo)就是在這個(gè)月突破100粉!'
print(conTent)
輸出如下
我的目標(biāo)就是在這個(gè)月突破100粉!
**大駝峰命名法:**變量開頭大寫,后面每隔一部分英文后就大寫一個(gè)英文字母,如ConTent,FirstName,MessageBox…
代碼示例如下
MessageBox = "我對(duì)汶勵(lì)的愛永世不變"
print(MessageBox)
輸出如下
我對(duì)汶勵(lì)的愛永世不變
帕斯卡命名法
與大駝峰命名法一樣,都是開頭大寫,后面每隔一部分英文后就大寫一個(gè)英文字母
MessageBox = "我對(duì)汶勵(lì)的愛永世不變"
print(MessageBox)
輸出如下
我對(duì)汶勵(lì)的愛永世不變
好了,了解完基本數(shù)據(jù)類型和代碼整潔與流行規(guī)范后,現(xiàn)在就開始正式入門吧!
廢話不多說,正式開講!
第五章:正式入門Python
在前文,我們配置好了Python的開發(fā)環(huán)境,了解了Python的基本數(shù)據(jù)類型和代碼格式與流行規(guī)則后,相信大家對(duì)Python的基礎(chǔ)知識(shí)有了一些了解。好了,廢話不多說,讓我們現(xiàn)在就開始正式入門Python吧!
5.1:print()函數(shù)講解
在所有編程語言中,想要輸出一組數(shù)據(jù)值,就必須定義常量與變量。常量嘛,大家就理解為是一個(gè)定義名稱,且是定死的就行;變量這個(gè)東西,它可以是一組數(shù)據(jù),一組數(shù)字,一組字串符,或者其他的等等。如以下代碼示例
a = 347
b = 'abcd'
在這個(gè)代碼中,347與字串符abcd就是變量,它們分別通過等于號(hào)(=)賦值給a與b。不過別以為寫到這里運(yùn)行時(shí)就會(huì)有結(jié)果輸出,想要有結(jié)果輸出,我們還需要用到一個(gè)函數(shù):print()。
a = 347
b = 'abcd'
print(a,b)
在這個(gè)代碼中,我們調(diào)用了print()函數(shù)。在數(shù)據(jù)值賦值給a與b后,然后將a和b傳輸?shù)絧rint()函數(shù)中,之后就可以輸出結(jié)果了。
輸出如下
347 abcd
當(dāng)然,你也可以偷懶,把數(shù)據(jù)值直接賦值到print()函數(shù)中并輸出。按照程序界悠久的歷史傳統(tǒng),我們編寫的第一個(gè)程序就是輸出Hello world!。因此,我們想要輸出Hello world!,我們也可以直接賦值到print()函數(shù)中
print('Hello world')
在剛剛的代碼中,我們將Hello world!直接賦值入print函數(shù)中,并讓它輸出
輸出結(jié)果如下
Hello world!
5.2:利用單引號(hào)(‘’)或雙引號(hào)(“”)包裝并輸出
在Python中,如果你想賦值一個(gè)字串符變量時(shí)(數(shù)字也可以,不過有些多此一舉),你必須要用單引號(hào)(‘’)或雙引號(hào)(“”)包裝你要輸出的字串符數(shù)據(jù)值,否則直接賦值的話該寫法是不符合語法的(除數(shù)字?jǐn)?shù)據(jù)類型以外其他數(shù)據(jù)類型都一樣)。因此,這一章我將會(huì)教大家單引號(hào)(‘’)或雙引號(hào)(“”)再用print()函數(shù)輸出
a = '我的目標(biāo)是上高中后努力學(xué)習(xí),考一所好的大學(xué),拿到一個(gè)大廠的office,給汶勵(lì)一個(gè)好的生活。'
print(a)
a = "我的目標(biāo)是上高中后努力學(xué)習(xí),考一所好的大學(xué),拿到一個(gè)大廠的office,給汶勵(lì)一個(gè)好的生活。"
print(a)
輸出結(jié)果如下圖
我的目標(biāo)是上高中后努力學(xué)習(xí),考一所好的大學(xué),拿到一個(gè)大廠的office,給汶勵(lì)一個(gè)好的生活。
在這里的例子,我們用到了’'或""對(duì)字串符進(jìn)行包裝,然后賦值給a,最后通過print()函數(shù)進(jìn)行輸出結(jié)果。雖然這種方法是比上一章講到的直接輸出復(fù)雜了些 ,但這種方法可比直接傳遞輸出高級(jí)多了。
PS:不積跬步,無以至千里;不積小流,無以成江海。做人,不可做井底之蛙,不可做孤陋寡聞之人,因此我們不能因?yàn)樾路椒ǖ膹?fù)雜而不去學(xué)。只有去學(xué)習(xí),去汲取新知識(shí),這樣才會(huì)慢慢進(jìn)步 ,成為一個(gè)才高八斗、出類拔萃的人。
5.3:輸出結(jié)合
在Python中,如果我們想要輸出一段很長(zhǎng)的文本,我們可以選擇直接賦值在一個(gè)常量中并且輸出,當(dāng)然也可以選擇賦值在多個(gè)常量中在最后結(jié)合輸出。然而我們想要實(shí)現(xiàn)這種效果,在這里我們就必須要用到一個(gè)算術(shù)運(yùn)算符:+。如下面代碼例子
a = "我的目標(biāo)是上高中后努力學(xué)習(xí),"
b = "考一所好的大學(xué),"
c = "拿到一個(gè)大廠的office,給汶勵(lì)一個(gè)好的生活。"
print(a+b+c)
輸出結(jié)果如下
我的目標(biāo)是上高中后努力學(xué)習(xí),考一所好的大學(xué),拿到一個(gè)大廠的office,給汶勵(lì)一個(gè)好的生活。
5.4:輸入與輸出
前文我已教大家如何賦值并且輸出,現(xiàn)在我將教大家如何輸入賦值至常量并輸出。
在平時(shí)許多軟件或其他東西中,想要得到一個(gè)想要的結(jié)果,就必須輸入一些數(shù)據(jù)值使?jié)M足運(yùn)行條件,如生活中的計(jì)算器、或者我們的瀏覽器等。然而我們?cè)赑ython中如何實(shí)現(xiàn)這種效果了?這時(shí)我們就要用到一個(gè)函數(shù)–input()。具體例子如下:
a = input()
print(a)
如果我這時(shí)輸入一組字串符:算了,還是做回我的前端開發(fā)這個(gè)老本行吧。輸出結(jié)果如下:
算了,還是做回我的前端開發(fā)這個(gè)老本行吧。
在這個(gè)代碼中,實(shí)現(xiàn)原理就是通過input()函數(shù)獲取我輸入的數(shù)據(jù)值,然后把這組數(shù)據(jù)賦值給常量a,然后常量a把數(shù)據(jù)傳遞給print()函數(shù),最終輸出。
當(dāng)然,我們也可以結(jié)合前面我們所學(xué)過的算術(shù)運(yùn)算符與float數(shù)據(jù)類型做一個(gè)超簡(jiǎn)易計(jì)算器(由于是最基礎(chǔ)的,所以使用較麻煩)
a = input()
b = input("請(qǐng)輸入運(yùn)算符號(hào)")
c = input()
if (b == '+'):
print(float(a)+float(c))
elif (b == '-'):
print(float(a)-float(c))
elif (b == '*'):
print(float(a)*float(c))
elif (b == '/'):
print(float(a)/float(c))
elif (b == '%'):
print(float(a)%float(c))
elif (b == '**'):
print(float(a)**float(c))
elif (b == '//'):
print(float(a)//float(c))
當(dāng)我輸入22/7時(shí),輸出如下
3.142857142857143
當(dāng)然,input()函數(shù)作為一個(gè)萬能的輸入函數(shù),他也可以和其他數(shù)據(jù)類型相結(jié)合,如集合,列表,元組等藕合數(shù)據(jù)類型,也可以與字典,字串符等數(shù)據(jù)類型結(jié)合使用。如下面例子
a = (str(input()))
b = (list(input())) #創(chuàng)建一個(gè)空列表
c = (tuple(input())) #創(chuàng)建一個(gè)空元組
d = (set(input())) #創(chuàng)建一個(gè)空集合
e = {} #創(chuàng)建一個(gè)空字典
e_ElementName = input("請(qǐng)輸入名稱:")
e_ValueContent = input("請(qǐng)輸入內(nèi)容:")
e[e_ElementName] = e_ValueContent
print("您輸入的字串符:",a)
print("列表結(jié)果:",b)
print("元組結(jié)果:",c)
print("集合結(jié)果:",d)
print("字典結(jié)果:",e)
代碼原理:通過運(yùn)用input()函數(shù)對(duì)創(chuàng)建的各個(gè)數(shù)據(jù)類型與其對(duì)應(yīng)的常量賦值,并傳遞給相對(duì)應(yīng)的print()函數(shù),最后輸出結(jié)果。
第六章:判斷語句
在所有編程語言中與我們平時(shí)寫的很多程序中,我們幾乎都要運(yùn)用到判斷語句,通過判斷語句來幫助我們寫的這個(gè)程序判斷是否達(dá)到某個(gè)代碼塊運(yùn)行的條件。因此我們想實(shí)現(xiàn)判斷條件是否符合某個(gè)代碼塊運(yùn)行的條件,那么我們就需要運(yùn)用到判斷語句。在Python中,判斷語句有if、if…else、if…elif…else。關(guān)鍵詞有or與and。
那么現(xiàn)在我們先從最基礎(chǔ)的if語句先開始吧。
6.1:if的用法
具體例子代碼如下:
me =int(input())
wl = int(input())
if me < wl :
print("Lwl贏了")
if me > wl :
print("我贏了")
代碼原理:假如我和WL各輸入一個(gè)數(shù)字,如果WL輸入的數(shù)字大于我條件為真,輸出wl贏了;如果我輸入的數(shù)字大于WL,條件為雖然也為真,但輸出的是與之相對(duì)應(yīng)的結(jié)果語句。
6.2: if…else的用法
具體代碼例子如下:
me = int(input())
wl = int(input())
if me < wl :
print("WL贏了")
else :
print("我贏了")
代碼原理:假如我和XX各輸入一個(gè)數(shù)字,如果XX輸入的數(shù)字比我大,條件為真,輸出XX贏了。反之,條件為假,輸出我贏了。
6.3:if…elif…else用法
me = int(input())
wl = int(input())
if me < wl :
print("WL贏了")
elif me == WL :
print("打平手了")
else :
print("我贏了")
代碼原理:假如我和XX各輸入一個(gè)數(shù)字,如果XX的比我大,條件為真,輸出XX贏了。如果相同,條件為方案2,輸出打平手了。反之,輸出我贏了。
好了,學(xué)完if…elif…else語句,我們可以嘗試做一個(gè)猜數(shù)小游戲了,具體例子如下
import random
a = True
while a:
b = int(random.random())
c = int(input("猜數(shù)小游戲:請(qǐng)輸入一個(gè)數(shù)字,看一下你猜不猜的中"))
if c == b :
print("恭喜你猜中了")
elif c > b :
print("輸入的數(shù)字太大了,再來一次")
elif c < b :
print("輸入的太小了,再輸入大一點(diǎn)的數(shù)字,再來一次")
代碼原理:通過運(yùn)用random模塊(以后會(huì)在模塊章節(jié)詳講)來調(diào)用random函數(shù),從而生成隨機(jī)數(shù)字并賦值給判斷語句來判斷。如果玩家輸入的數(shù)字剛好時(shí)隨機(jī)數(shù),條件為真,輸出恭喜你猜中了。反之,如果大于隨機(jī)數(shù)。輸出輸入的數(shù)字太大了,再來一次;小于,輸出輸入的太小了,再輸入大一點(diǎn)的數(shù)字,再來一次。
6.4:and的用法
原理:我們輸入兩個(gè)變量條件,如果兩個(gè)條件均符合,條件為真,輸出方案1或方案2;如果不符合,條件為假,輸出方案3.具體例子如下:
me = int(input())
wl = int(input())
if me == 520 and wl == 520 :
print("就知道你愛我。")
else :
print("這不是你的真心話。")
me = int(input())
wl = int(input())
if me == 520 and wl == 520 :
print("就知道你愛我。")
elif me == 1314 and wl == 1314 :
print("我會(huì)一生一世愛你,不僅與你白頭到老,而且never change。")
else :
print("這不是你的真心話。")
:6.5:or的用法
原理:我和LXX各輸入一個(gè)變量條件,如果有一個(gè)條件符合已定的條件,為真,輸出方案1或2;為假,輸出方案3.具體例子如下:
me = int(input())
wl = int(input())
if me == 520 or wl == 520 :
print("就知道你愛我。")
else :
print("這不是你的真心話。")
me = int(input())
wl = int(input())
if me == 520 or wl == 520 :
print("就知道你愛我。")
elif me == 99 or wl == 99 :
print("不錯(cuò)")
else :
print("這不是你的真心話。")
6.6:操作運(yùn)算符(補(bǔ)充點(diǎn))
< :小于,用于判斷變量是否小于常量
> : 大于,用于判斷變量是否大于常量
>= :大于或等于,用于判斷變量是否大于或等于常量
<= :小于或等于,用于判斷變量是否小于或等于常量
== :等于,用于判斷兩個(gè)常量是否相等
!= :不等于,用于判斷兩個(gè)常量是否不等于
代碼原理:我和LXX各輸入一個(gè)變量條件,如果變量條件為我為520,XX不為520,則輸出方案一;如果變量條件為6(5< me and xx <7)時(shí),輸出方案二;
如果變量條件為64<=me and XX <=103時(shí),輸出方案三;如果均為1314,則輸出方案四。代碼示例如下
while True:
me = int(input())
wl = int(input())
if me ==520 and wl != 520:
print('這不是你的真心話')
elif me > 5 and wl < 7:
print('我跟你的相遇就像是酸遇上了堿,我們彼此中和,釋放出了熱與激情。')
print('我對(duì)你的感情就像是鋇離子與硫酸根的完美結(jié)合,生成了美好的感情沉淀。')
print('我知道你的未來就像是Li Na K Ru Cr Ba Ca Sr 的焰色反應(yīng)一樣五彩繽紛,最后希望你能像王水一樣所向無敵,溶解掉所有的困難,走向成功。')
elif me >= 64 and wl <= 103:
print('我愛你,我會(huì)愛你愛到CuSO4 + Ba(OH)2=BaSO4↓+Cu(OH)2 ↓這兩個(gè)產(chǎn)物無法分離提純。')
elif me and wl == 1314:
print('我奪走了你的電子,請(qǐng)不要生氣,我是為了更穩(wěn)定的跟你結(jié)合在一起.')
效果圖如下:
第七章:循環(huán)語句
在所有編程語言中與我們平時(shí)寫的很多程序中,我們很多時(shí)候需要運(yùn)用到循環(huán)語句,通過循環(huán)語句可以幫助我們?cè)诔绦驁?zhí)行時(shí)循環(huán)某一個(gè)條件以保證程序正常運(yùn)行,或者循環(huán)輸出某一個(gè)常量,達(dá)到程序多輸出效果。因此我們想實(shí)現(xiàn)上述條件時(shí),我們就需要運(yùn)用到循環(huán)語句。在Python中,循環(huán)語句有for和while。PS:Python中沒有do …while循環(huán)語句!
7.1:for循環(huán)語句
在Python中, for 循環(huán)可以遍歷任何可迭代對(duì)象,如一個(gè)列表或者一個(gè)字符串。(就是按順序輸出常量元素啦?。ゝor循環(huán)語句具體格式如下
for 變量 in 順序:
聲明
例:
for i in range(list(8)):
print(i)
具體代碼例子如下:
字串符
a = '546dsf6d6sf74ds'
for i in range(len(a)):
print(i,':',a[i])
效果圖
代碼原理:先通過len()函數(shù)獲取字串符長(zhǎng)度,然后通過for循環(huán)與range()函數(shù)對(duì)其進(jìn)行遍歷與循環(huán)處理,最后輸出每個(gè)長(zhǎng)度位置對(duì)應(yīng)的字串符結(jié)果。
列表
list = ['a',5,65,654,6545,4,464,4,':',4,48789,]
for i in range(len(list)):
print(i,':',list[i])
效果圖如下
代碼原理:與字串符一樣。文章來源:http://www.zghlxwxcb.cn/news/detail-756848.html
如果是初學(xué)python爬蟲,覺得自學(xué)比較難的,那么我接下來分享的這全套 Python 學(xué)習(xí)資料一定不要錯(cuò)過,希望能給那些想學(xué)習(xí) Python 的小伙伴們帶來幫助!文章來源地址http://www.zghlxwxcb.cn/news/detail-756848.html
到了這里,關(guān)于零基礎(chǔ)學(xué)python:超詳細(xì)的入門教程!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!