Python初识与简介【开篇】
目錄
1、扯淡
2、Python歷史
3、Python簡(jiǎn)介
4、Python應(yīng)用
5、為什么是python而不是其他語(yǔ)言?
6、Python的種類(lèi)
7、Python的特點(diǎn)
8、Python設(shè)計(jì)哲學(xué)
9、Python版本
10、Python環(huán)境(安裝、解釋器、編碼、注釋、傳參、變量、流程控制、數(shù)據(jù)類(lèi)型、運(yùn)算、文本操作)
?
1、扯淡
接觸Python的一個(gè)契機(jī)是在做Nagios監(jiān)控的時(shí)候,發(fā)現(xiàn)了Python語(yǔ)言的強(qiáng)大,也可以實(shí)現(xiàn)高度的自動(dòng)化,所以才開(kāi)始慢慢的觸及它,最近看到學(xué)好Python還可以成為全棧工程師,全棧是什么,就是什么都能做,能寫(xiě)后端、前端、GUI、數(shù)值計(jì)算、科學(xué)運(yùn)算、網(wǎng)絡(luò)編程、大數(shù)據(jù)開(kāi)發(fā)、組件集成、網(wǎng)絡(luò)服務(wù)、圖像處理等等
小提示:
- 社區(qū):pypi(Python第三方庫(kù)),GitHub,StackOverFlow,開(kāi)源中國(guó)
2、Python歷史
Guido為了打發(fā)圣誕節(jié)的無(wú)趣,于1989年發(fā)明在荷蘭設(shè)計(jì)出來(lái),第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符作為語(yǔ)句縮進(jìn)。
歷史詳見(jiàn):維基百科、百度百科介紹
3、Python簡(jiǎn)介
說(shuō)了那么多,現(xiàn)在客觀的說(shuō)些重點(diǎn)簡(jiǎn)介:
Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語(yǔ)言經(jīng)常使用英文關(guān)鍵字,其他語(yǔ)言的一些標(biāo)點(diǎn)符號(hào),它具有比其他語(yǔ)言更有特色語(yǔ)法結(jié)構(gòu)。
-
Python 是一種解釋型語(yǔ)言: 這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié)。類(lèi)似于PHP和Perl語(yǔ)言。
-
Python 是交互式語(yǔ)言: 這意味著,您可以在一個(gè)Python提示符,直接互動(dòng)執(zhí)行寫(xiě)你的程序。
-
Python 是面向?qū)ο笳Z(yǔ)言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)。
-
Python 是初學(xué)者的語(yǔ)言:Python 對(duì)初級(jí)程序員而言,是一種偉大的語(yǔ)言,它支持廣泛的應(yīng)用程序開(kāi)發(fā),從簡(jiǎn)單的文字處理到 WWW 瀏覽器再到游戲。
4、Python應(yīng)用
應(yīng)用場(chǎng)景:
- Web編程
- 系統(tǒng)管理任務(wù)
- 數(shù)學(xué)處理(數(shù)據(jù)分析、機(jī)器學(xué)習(xí)
- 文本處理(爬蟲(chóng))
- 云計(jì)算
- 運(yùn)維開(kāi)發(fā)
- 自動(dòng)化測(cè)試
- 圖形處理、多媒體應(yīng)用
- 網(wǎng)絡(luò)編程
- 游戲開(kāi)發(fā)
- 黑客({}POC腳本、木馬)
- ...
由于Python有太多知名公司在用了,如下數(shù)據(jù)可做參考:
谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲(chóng)、廣告等項(xiàng)目都在大量使用Python開(kāi)發(fā)
CIA: 美國(guó)中情局網(wǎng)站就是用Python開(kāi)發(fā)的
NASA: 美國(guó)航天局(NASA)大量使用Python進(jìn)行數(shù)據(jù)分析和運(yùn)算
YouTube:世界上最大的視頻網(wǎng)站YouTube就是用Python開(kāi)發(fā)的
Dropbox:美國(guó)最大的在線(xiàn)云存儲(chǔ)網(wǎng)站,全部用Python實(shí)現(xiàn),每天網(wǎng)站處理10億個(gè)文件的上傳和下載
Instagram:美國(guó)最大的圖片分享社交網(wǎng)站,每天超過(guò)3千萬(wàn)張照片被分享,全部用python開(kāi)發(fā)
Facebook:大量的基礎(chǔ)庫(kù)均通過(guò)Python實(shí)現(xiàn)的
Redhat: 世界上最流行的Linux發(fā)行版本中的yum包管理工具就是用python開(kāi)發(fā)的
除上面之外,還有搜狐、金山、騰訊、盛大、網(wǎng)易、百度、阿里、淘寶 、土豆、新浪、果殼、豆瓣、知乎、春雨醫(yī)生等公司都在使用Python完成各種各樣的任務(wù)。
最新編程語(yǔ)言排名可見(jiàn)TIBOE編程語(yǔ)言社區(qū)
?由上圖可見(jiàn),整體反映出Python應(yīng)用越來(lái)越廣泛并且也逐漸得到業(yè)內(nèi)的認(rèn)可!!! 互聯(lián)網(wǎng)公司廣泛使用Python來(lái)做的事一般有:自動(dòng)化運(yùn)維、自動(dòng)化測(cè)試、大數(shù)據(jù)分析、爬蟲(chóng)、Web 等。5、為什么是Python而不是其他語(yǔ)言?
C 和 Python、Java、C#等
? ? C語(yǔ)言: 代碼編譯得到 機(jī)器碼 ,機(jī)器碼在處理器上直接執(zhí)行,每一條指令控制CPU工作
其他語(yǔ)言: 代碼編譯得到 字節(jié)碼 ,虛擬機(jī)執(zhí)行字節(jié)碼并轉(zhuǎn)換成機(jī)器碼再后在處理器上執(zhí)行
Python這門(mén)語(yǔ)言是由C開(kāi)發(fā)而來(lái),對(duì)于使用:
- Python的類(lèi)庫(kù)齊全并且使用簡(jiǎn)潔,如果要實(shí)現(xiàn)同樣的功能,Python 10行代碼可以解決,C可能就需要100行甚至更多.
- Linux原裝Python,其他語(yǔ)言沒(méi)有;以上幾門(mén)語(yǔ)言都有非常豐富的類(lèi)庫(kù)支持
所以,Python和其他語(yǔ)言沒(méi)有什么本質(zhì)區(qū)別,其他區(qū)別在于:擅長(zhǎng)某領(lǐng)域、人才豐富、先入為主。
6、Python的種類(lèi)
- Cpython??? 程序----(c解釋器)----(字節(jié)碼)----(機(jī)器碼)-----cpu
? ? Python的官方版本,使用C語(yǔ)言實(shí)現(xiàn),使用最為廣泛,CPython實(shí)現(xiàn)會(huì)將源文件(py文件)轉(zhuǎn)換成字節(jié)碼文件(pyc文件),然后運(yùn)行在Python虛擬機(jī)上。
- Jyhton??? 程序----(java解釋器)----(字節(jié)碼)----(機(jī)器碼)-----cpu
? ? Python的Java實(shí)現(xiàn),Jython會(huì)將Python代碼動(dòng)態(tài)編譯成Java字節(jié)碼,然后在JVM上運(yùn)行。
- IronPython??? 程序----(c#解釋器)----(字節(jié)碼)----(機(jī)器碼)-----cpu
? ? Python的C#實(shí)現(xiàn),IronPython將Python代碼編譯成C#字節(jié)碼,然后在CLR上運(yùn)行。(與Jython類(lèi)似)
- PyPy(特殊)??? 程序----(c#解釋器)----(字節(jié)碼)----(機(jī)器碼)-----cpu
? ? Python實(shí)現(xiàn)的Python,將Python的字節(jié)碼字節(jié)碼再編譯成機(jī)器碼。
- RubyPython、Brython ...
以上除PyPy之外,其他的Python的對(duì)應(yīng)關(guān)系和執(zhí)行流程如下:
?
PyPy,在Python的基礎(chǔ)上對(duì)Python的字節(jié)碼進(jìn)一步處理,從而提升執(zhí)行速度!
7、Python特點(diǎn)
-
1.易于學(xué)習(xí):Python有相對(duì)較少的關(guān)鍵字,結(jié)構(gòu)簡(jiǎn)單,和一個(gè)明確定義的語(yǔ)法,學(xué)習(xí)起來(lái)更加簡(jiǎn)單。
-
2.易于閱讀:Python代碼定義的更清晰。
-
3.易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
-
4.一個(gè)廣泛的標(biāo)準(zhǔn)庫(kù):Python的最大的優(yōu)勢(shì)之一是豐富的庫(kù),跨平臺(tái)的,在UNIX,Windows和Macintosh兼容很好。
-
5.互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語(yǔ)言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
-
6.可移植:基于其開(kāi)放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺(tái)。
-
7.可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫(xiě)一些不愿開(kāi)放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
-
8.數(shù)據(jù)庫(kù):Python提供所有主要的商業(yè)數(shù)據(jù)庫(kù)的接口。
-
9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
-
10.可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶(hù)獲得"腳本化"的能力。
8、Python設(shè)計(jì)哲學(xué)
Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅”、“明確”、“簡(jiǎn)單”。Python開(kāi)發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來(lái)做一件事”。9、Python版本
python 2 vs 3:?? ?1. 默認(rèn)支持中文
?? ?2. 不兼容2.x
?? ?3. 核心語(yǔ)法調(diào)整,更易學(xué)
?? ?4. 新特性默認(rèn)只在3.x上有
python 3.X不兼容 2.X版本,為什么要開(kāi)發(fā) 3.X版本呢?因?yàn)?python發(fā)展了20多年,里面有很多重復(fù)的功能和模塊,很多代碼也變得不那么簡(jiǎn)潔,所以Guido決定進(jìn)行一次徹底的升級(jí),原則是去繁從簡(jiǎn),從而有了后續(xù)的 Python 3.X版本。
2.7版本 print "yard" or print ("yard") 3.x版本 print ("yard")python 3.X?源碼文件默認(rèn)使用utf-8編碼
- 2.x = 默認(rèn)編碼 =ASSIC =不支持
- 3.x = 默認(rèn)編碼 =UNICODE =默認(rèn)支持中文
兩個(gè)版本模塊名區(qū)別:
注:twisted模塊還未完全支持python3.X
語(yǔ)法區(qū)別:
1)去除了<>,全部改用!=? 2)去除``,全部改用repr()? 3)關(guān)鍵詞加入as 和with,還有True,False,None? 4)整型除法返回浮點(diǎn)數(shù),要得到整型結(jié)果,請(qǐng)使用//? 5)加入nonlocal語(yǔ)句。使用noclocal x可以直接指派外圍(非全局)變量? 6)去除print語(yǔ)句,加入print()函數(shù)實(shí)現(xiàn)相同的功能。同樣的還有 exec語(yǔ)句,已經(jīng)改為exec()函數(shù) 7)改變了順序操作符的行為,例如x<y,當(dāng)x和y類(lèi)型不匹配時(shí)拋出TypeError而不是返回隨即的 bool值 ? 8)輸入函數(shù)改變了,刪除了raw_input,用input代替:? 9)去除元組參數(shù)解包。不能def(a, (b, c)):pass這樣定義函數(shù)了? 10) 新式的8進(jìn)制字變量,相應(yīng)地修改了oct()函數(shù)。? 11) class Foo:這種寫(xiě)法不能用了,改成class Foo(object) 總結(jié): python2.x 是遺產(chǎn), python3.x是現(xiàn)在和未來(lái)的語(yǔ)言10、Python環(huán)境?
安裝Python
windows:
| 1 2 3 4 5 6 7 | 1、下載安裝包 ????https://www.python.org/downloads/ 2、安裝 ????默認(rèn)安裝路徑:C:\python27 3、配置環(huán)境變量 ????【右鍵計(jì)算機(jī)】--》【屬性】--》【高級(jí)系統(tǒng)設(shè)置】--》【高級(jí)】--》【環(huán)境變量】--》【在第二個(gè)內(nèi)容框中找到 變量名為Path 的一行,雙擊】?--> 【Python安裝目錄追加到變值值中,用 ; 分割】 ????如:原來(lái)的值;C:\python27,切記前面有分號(hào) |
linux:
| 1 2 3 | 無(wú)需安裝,原裝Python環(huán)境 ps:如果自帶2.6,請(qǐng)更新至2.7 |
linux上安裝python3.6.5
1、準(zhǔn)備編譯環(huán)境(環(huán)境如果不對(duì)的話(huà),可能遇到各種問(wèn)題,比如wget無(wú)法下載https鏈接的文件) yum groupinstall 'Development Tools' yum install zlib-devel bzip2-devel openssl-devel ncurses-devel 2、下載 Python3.6.5代碼包 wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz在安裝包中有一個(gè)README的文件,里面有寫(xiě)如何安裝 3、解壓 tar Jxvf Python-3.6.5.tar.xz 4、編譯安裝 cd Python-3.6.5 ./configure --prefix=/usr/local/python3 make && make install 5、做軟鏈 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 6、升級(jí)pip到最新版本: pip install --upgrade pip 7、測(cè)試 python38、如何設(shè)置默認(rèn)Python3.6.5 如果我們需要設(shè)置默認(rèn)python直接運(yùn)行默認(rèn)的Python3.6.5版本,那需要簡(jiǎn)單調(diào)整軟鏈接。備份默認(rèn)文件 cd /usr/local/ mv python python.bak mv pip pip.bak 重新創(chuàng)建軟連接,其實(shí)這個(gè)時(shí)候我們就可以默認(rèn)看到Python就是3.6.5版本 ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
?
?
更新Python
windows:
| 1 | 卸載重裝即可 |
linux:
Linux的yum依賴(lài)自帶Python,為防止錯(cuò)誤,此處更新其實(shí)就是再安裝一個(gè)Python
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 查看默認(rèn)Python版本 python?-V 1、安裝gcc,用于編譯Python源碼 ????yum install gcc 2、下載源碼包,https://www.python.org/ftp/python/ 3、解壓并進(jìn)入源碼文件 4、編譯安裝 ????./configure ????make?all ????make install 5、查看版本 ????/usr/local/bin/python2.7?-V 6、修改默認(rèn)Python版本 ????mv?/usr/bin/python?/usr/bin/python2.6 ????ln?-s?/usr/local/bin/python2.7?/usr/bin/python 7、防止yum執(zhí)行異常,修改yum使用的Python版本 ????vi?/usr/bin/yum ????將頭部?#!/usr/bin/python 修改為 #!/usr/bin/python2.6 |
Python 入門(mén)
一、第一句Python代碼
在 /home/dev/ 目錄下創(chuàng)建 hello.py 文件,內(nèi)容如下:
| 1 | print?"hello,world" |
執(zhí)行 hello.py 文件,即:?python /home/dev/hello.py
python內(nèi)部執(zhí)行過(guò)程如下:
二、解釋器
上一步中執(zhí)行 python /home/dev/hello.py?時(shí),明確的指出 hello.py 腳本由 python 解釋器來(lái)執(zhí)行。
如果想要類(lèi)似于執(zhí)行shell腳本一樣執(zhí)行python腳本,例:?./hello.py?,那么就需要在 hello.py 文件的頭部指定解釋器,如下:
| 1 2 3 | #!/usr/bin/env python print?"hello,world" |
如此一來(lái),執(zhí)行:?./hello.py?即可。
ps:執(zhí)行前需給予 hello.py 執(zhí)行權(quán)限,chmod 755 hello.py
三、內(nèi)容編碼
python解釋器在加載 .py 文件中的代碼時(shí),會(huì)對(duì)內(nèi)容進(jìn)行編碼(默認(rèn)ascill)
ASCII(American Standard Code for Information Interchange,美國(guó)標(biāo)準(zhǔn)信息交換代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言,其最多只能用 8 位來(lái)表示(一個(gè)字節(jié)),即:2**8 = 256,所以,ASCII碼最多只能表示 256 個(gè)符號(hào)。
顯然ASCII碼無(wú)法將世界上的各種文字和符號(hào)全部表示,所以,就需要新出一種可以代表所有字符和符號(hào)的編碼,即:Unicode
Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼、單一碼)是一種在計(jì)算機(jī)上使用的字符編碼。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,規(guī)定雖有的字符和符號(hào)最少由 16 位來(lái)表示(2個(gè)字節(jié)),即:2 **16 =?65536,
注:此處說(shuō)的的是最少2個(gè)字節(jié),可能更多
UTF-8,是對(duì)Unicode編碼的壓縮和優(yōu)化,他不再使用最少使用2個(gè)字節(jié),而是將所有的字符和符號(hào)進(jìn)行分類(lèi):ascii碼中的內(nèi)容用1個(gè)字節(jié)保存、歐洲的字符用2個(gè)字節(jié)保存,東亞的字符用3個(gè)字節(jié)保存...
所以,python解釋器在加載 .py 文件中的代碼時(shí),會(huì)對(duì)內(nèi)容進(jìn)行編碼(默認(rèn)ascill),如果是如下代碼的話(huà):
報(bào)錯(cuò):ascii碼無(wú)法表示中文
| 1 2 3 | #!/usr/bin/env python print?"你好,世界"? |
改正:應(yīng)該顯示的告訴python解釋器,用什么編碼來(lái)執(zhí)行源代碼,即:
| 1 2 3 4 | #!/usr/bin/env python # -*- coding: utf-8 -*- print?"你好,世界" |
四、注釋
當(dāng)行注視:# 被注釋內(nèi)容
多行注釋:""" 被注釋內(nèi)容 """
五、執(zhí)行腳本傳入?yún)?shù)
Python有大量的模塊,從而使得開(kāi)發(fā)Python程序非常簡(jiǎn)潔。類(lèi)庫(kù)有包括三中:
- Python內(nèi)部提供的模塊
- 業(yè)內(nèi)開(kāi)源的模塊
- 程序員自己開(kāi)發(fā)的模塊
Python內(nèi)部提供一個(gè) sys 的模塊,其中的 sys.argv 用來(lái)捕獲執(zhí)行執(zhí)行python腳本時(shí)傳入的參數(shù)
| 1 2 3 4 5 6 | #!/usr/bin/env python # -*- coding: utf-8 -*- import?sys print?sys.argv? |
六、 pyc 文件
執(zhí)行Python代碼時(shí),如果導(dǎo)入了其他的 .py 文件,那么,執(zhí)行過(guò)程中會(huì)自動(dòng)生成一個(gè)與其同名的 .pyc 文件,該文件就是Python解釋器編譯之后產(chǎn)生的字節(jié)碼。
ps:代碼經(jīng)過(guò)編譯可以產(chǎn)生字節(jié)碼;字節(jié)碼通過(guò)反編譯也可以得到代碼。
七、變量
1、聲明變量
| 1 2 3 4 | #!/usr/bin/env python # -*- coding: utf-8 -*- name?=?"wupeiqi" |
上述代碼聲明了一個(gè)變量,變量名為: name,變量name的值為:"wupeiqi"
變量的作用:昵稱(chēng),其代指內(nèi)存里某個(gè)地址中保存的內(nèi)容
變量定義的規(guī)則:
- 變量名只能是 字母、數(shù)字或下劃線(xiàn)的任意組合
- 變量名的第一個(gè)字符不能是數(shù)字
- 以下關(guān)鍵字不能聲明為變量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2、變量的賦值
#!/usr/bin/env python # -*- coding: utf-8 -*-name1 = "wupeiqi" name2 = "alex"#!/usr/bin/env python # -*- coding: utf-8 -*-name1 = "wupeiqi" name2 = name1
八、輸入
| 1 2 3 4 5 6 7 8 | #!/usr/bin/env python # -*- coding: utf-8 -*- # 將用戶(hù)輸入的內(nèi)容賦值給 name 變量 name?=?raw_input("請(qǐng)輸入用戶(hù)名:") # 打印輸入的內(nèi)容 print?name |
輸入密碼時(shí),如果想要不可見(jiàn),需要利用getpass 模塊中的 getpass方法,即:
| 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python # -*- coding: utf-8 -*- import?getpass # 將用戶(hù)輸入的內(nèi)容賦值給 name 變量 pwd?=?getpass.getpass("請(qǐng)輸入密碼:") # 打印輸入的內(nèi)容 print?pwd |
九、流程控制和縮進(jìn)
需求一、用戶(hù)登陸驗(yàn)證
| 1 2 3 4 5 | # 提示輸入用戶(hù)名和密碼 # 驗(yàn)證用戶(hù)名和密碼 #???? 如果錯(cuò)誤,則輸出用戶(hù)名或密碼錯(cuò)誤 #???? 如果成功,則輸出 歡迎,XXX! |
需求二、根據(jù)用戶(hù)輸入內(nèi)容輸出其權(quán)限
| 1 2 3 4 5 6 | # 根據(jù)用戶(hù)輸入內(nèi)容打印其權(quán)限 # alex --> 超級(jí)管理員 # eric --> 普通管理員 # tony --> 業(yè)務(wù)主管 # 其他 --> 普通用戶(hù) |
2 是一個(gè)整數(shù)的例子。
長(zhǎng)整數(shù) 不過(guò)是大一些的整數(shù)。
3.23和52.3E-4是浮點(diǎn)數(shù)的例子。E標(biāo)記表示10的冪。在這里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是復(fù)數(shù)的例子。
int(整型)
在32位機(jī)器上,整數(shù)的位數(shù)為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647在64位系統(tǒng)上,整數(shù)的位數(shù)為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(長(zhǎng)整型)
跟C語(yǔ)言不同,Python的長(zhǎng)整數(shù)沒(méi)有指定位寬,即:Python沒(méi)有限制長(zhǎng)整數(shù)數(shù)值的大小,但實(shí)際上由于機(jī)器內(nèi)存有限,我們使用的長(zhǎng)整數(shù)數(shù)值不可能無(wú)限大。
注意,自從Python2.2起,如果整數(shù)發(fā)生溢出,Python會(huì)自動(dòng)將整數(shù)數(shù)據(jù)轉(zhuǎn)換為長(zhǎng)整數(shù),所以如今在長(zhǎng)整數(shù)數(shù)據(jù)后面不加字母L也不會(huì)導(dǎo)致嚴(yán)重后果了。
float(浮點(diǎn)型)
浮點(diǎn)數(shù)用來(lái)處理實(shí)數(shù),即帶有小數(shù)的數(shù)字。類(lèi)似于C語(yǔ)言中的double類(lèi)型,占8個(gè)字節(jié)(64位),其中52位表示底,11位表示指數(shù),剩下的一位表示符號(hào)。
complex(復(fù)數(shù))
復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分組成,一般形式為x+yj,其中的x是復(fù)數(shù)的實(shí)數(shù)部分,y是復(fù)數(shù)的虛數(shù)部分,這里的x和y都是實(shí)數(shù)。 注:Python中存在小數(shù)字池:-5 ~ 257 2、布爾值 真或假 1 或 0 3、字符串 "hello world" 萬(wàn)惡的字符串拼接: python中的字符串在C語(yǔ)言中體現(xiàn)為是一個(gè)字符數(shù)組,每次創(chuàng)建字符串時(shí)候需要在內(nèi)存中開(kāi)辟一塊連續(xù)的空,并且一旦需要修改字符串的話(huà),就需要再次開(kāi)辟空間,萬(wàn)惡的+號(hào)每出現(xiàn)一次就會(huì)在內(nèi)從中重新開(kāi)辟一塊空間。 字符串格式化
| 1 2 3 4 | name?=?"alex" print?"i am %s "?%?name #輸出: i am alex |
PS: 字符串是 %s;整數(shù) %d;浮點(diǎn)數(shù)%f
字符串常用功能:- 移除空白
- 分割
- 長(zhǎng)度
- 索引
- 切片
| 1 2 3 | name_list?=?['alex',?'seven',?'eric'] 或 name_list =?list(['alex',?'seven',?'eric']) |
基本操作:
- 索引
- 切片
- 追加
- 刪除
- 長(zhǎng)度
- 切片
- 循環(huán)
- 包含
| 1 2 3 | ages?=?(11,?22,?33,?44,?55) 或 ages?=?tuple((11,?22,?33,?44,?55)) |
- 索引
- 切片
- 循環(huán)
- 長(zhǎng)度
- 包含
| 1 2 3 | person?=?{"name":?"mr.wu",?'age':?18} 或 person?=?dict({"name":?"mr.wu",?'age':?18}) |
常用操作:
- 索引
- 新增
- 刪除
- 鍵、值、鍵值對(duì)
- 循環(huán)
- 長(zhǎng)度
比較運(yùn)算:
賦值運(yùn)算:
邏輯運(yùn)算:
成員運(yùn)算:
身份運(yùn)算:
位運(yùn)算:
+ View Code運(yùn)算符優(yōu)先級(jí):
更多內(nèi)容:猛擊這里
十二、初識(shí)文本的基本操作 打開(kāi)文件: file_obj = file("文件路徑","模式") 打開(kāi)文件的模式有:- r,以只讀方式打開(kāi)文件
- w,打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
- a,打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。
- w+,打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
讀取文件的內(nèi)容:
| 1 2 3 4 5 6 7 8 9 | # 一次性加載所有內(nèi)容到內(nèi)存 obj.read() # 一次性加載所有內(nèi)容到內(nèi)存,并根據(jù)行分割成字符串 obj.readlines() # 每次僅讀取一行數(shù)據(jù) for?line?in?obj: print?line |
寫(xiě)文件的內(nèi)容:
| 1 | obj.write('內(nèi)容') |
關(guān)閉文件句柄:
| 1 | obj.close() |
?詳細(xì)參考鏈接:http://www.cnblogs.com/wupeiqi/articles/4906230.html
轉(zhuǎn)載于:https://www.cnblogs.com/yard/p/5373191.html
總結(jié)
以上是生活随笔為你收集整理的Python初识与简介【开篇】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于storm0.10.0版本的一个小b
- 下一篇: python扫描内网banner信息