python 語(yǔ)言概述
成都創(chuàng)新互聯(lián)公司于2013年成立,先為長(zhǎng)寧等服務(wù)建站,長(zhǎng)寧等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為長(zhǎng)寧企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
python 語(yǔ)言的發(fā)展
python 語(yǔ)言誕生于 1990 年, 由 Guide van Rossum 設(shè)計(jì)并領(lǐng)導(dǎo)開(kāi)發(fā).
python 語(yǔ)言是開(kāi)源項(xiàng)目的優(yōu)秀代表, 其解釋器的全部代碼都是開(kāi)源的.
編寫(xiě) Hello 程序
學(xué)習(xí)編程語(yǔ)言有一個(gè)慣例, 即運(yùn)行最簡(jiǎn)單的 Hello 程序, 該程序功能是在屏幕上打印輸出 "Hello World". 程序雖小, 但卻是初學(xué)者接觸編程語(yǔ)言的第一步. 使用 python 語(yǔ)言編寫(xiě) Hello 程序只有一行代碼, 如下;
print ("Hello World")
python 語(yǔ)言的特點(diǎn)
python 語(yǔ)言是一種被廣泛應(yīng)用的高級(jí)通用腳本編程語(yǔ)言.
1, 語(yǔ)法簡(jiǎn)潔: 實(shí)現(xiàn)相同功能, python 語(yǔ)言的代碼行數(shù)僅相當(dāng)于其他語(yǔ)言的 1/10-1/5.
2, 與平臺(tái)無(wú)關(guān): 作為腳本語(yǔ)言, python 程序可以在任何安裝解釋器的計(jì)算機(jī)環(huán)境中執(zhí)行, 因此, 用該語(yǔ)言編程的程序可以不經(jīng)修改的實(shí)現(xiàn)跨平臺(tái)運(yùn)行.
3, 粘性擴(kuò)展: python 語(yǔ)言具有優(yōu)異的擴(kuò)展性, 體現(xiàn)在它可以集成 C,C++,Java 等語(yǔ)言編寫(xiě)的代碼, 通過(guò)接口和函數(shù)庫(kù)等方式將他們 "粘起來(lái)". 此外, python 語(yǔ)言本身提供了良好的語(yǔ)法和執(zhí)行擴(kuò)展接口, 能夠整合各類程序代碼.
4, 開(kāi)源理念: 對(duì)于高級(jí)程序員, python 語(yǔ)言開(kāi)源的解釋器和函數(shù)庫(kù)具有強(qiáng)大的吸引力, 更重要的, python 語(yǔ)言倡導(dǎo)的開(kāi)源軟件理念為該語(yǔ)言發(fā)展奠定了堅(jiān)實(shí)的群眾基礎(chǔ).
5, 通用靈活: python 語(yǔ)言是一個(gè)通用編程語(yǔ)言, 可用于編寫(xiě)各領(lǐng)域的應(yīng)用程序, 這為該語(yǔ)法提供了廣闊的應(yīng)用空間. 幾乎各類應(yīng)用, 從科學(xué)計(jì)算, 數(shù)據(jù)處理到人工智能, 機(jī)器人, python 語(yǔ)言都能夠發(fā)揮重要作用.
6, 強(qiáng)制可讀: python 語(yǔ)言通過(guò)強(qiáng)制縮進(jìn) (類似文章段落的首行空格) 來(lái)體現(xiàn)語(yǔ)句間的邏輯關(guān)系, 顯著提高了程序的可讀性, 進(jìn)而增加了 python 程序的可維護(hù)性.
7, 支持中文: python3.0 解釋器采用 UTF-8 編碼表達(dá)所有字符信息, UTF-8 編碼可以表達(dá)英文, 中文, 韓文, 法文等各類語(yǔ)言, 因此, python 程序在處理中文時(shí)更加靈活且高效.
8, 模式多樣: 盡管 python3.0 解釋器內(nèi)部采用面向?qū)ο蠓绞綄?shí)現(xiàn), 但 python 語(yǔ)法層面卻同時(shí)支持過(guò)程和面向?qū)ο髢煞N編程方式, 這位使用者提供了靈活的編程模式.
9, 類庫(kù)豐富: python 解釋器提供了幾百個(gè)內(nèi)置類和函數(shù)庫(kù), 此外, 世界各地程序員通過(guò)開(kāi)源社區(qū)貢獻(xiàn)了十幾萬(wàn)個(gè)第三方函數(shù)庫(kù), 幾乎覆蓋了計(jì)算機(jī)技術(shù)的各個(gè)領(lǐng)域編寫(xiě) python 程序可以大量利用已有的內(nèi)置或第三方代碼, 具備良好的編程生態(tài).
random庫(kù)是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫(kù)
從概率論角度來(lái)說(shuō),隨機(jī)數(shù)是隨機(jī)產(chǎn)生的數(shù)據(jù)(比如拋硬幣),但時(shí)計(jì)算機(jī)是不可能產(chǎn)生隨機(jī)值,真正的隨機(jī)數(shù)也是在特定條件下產(chǎn)生的確定值,只不過(guò)這些條件我們沒(méi)有理解,或者超出了我們的理解范圍。計(jì)算機(jī)不能產(chǎn)生真正的隨機(jī)數(shù),那么偽隨機(jī)數(shù)也就被稱為隨機(jī)數(shù)
--偽隨機(jī)數(shù):計(jì)算機(jī)中通過(guò)采用梅森旋轉(zhuǎn)算法生成的(偽)隨機(jī)序列元素
python中用于生成偽隨機(jī)數(shù)的函數(shù)庫(kù)是random
因?yàn)槭菢?biāo)準(zhǔn)庫(kù),使用時(shí)候只需要import random
random庫(kù)包含兩類函數(shù),常用的共8個(gè)
? --基本隨機(jī)函數(shù): seed(), random()
? --擴(kuò)展隨機(jī)函數(shù):randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
《用Python處理Excel表格》下篇來(lái)啦!
身為工作黨或?qū)W生黨的你,平日里肯定少不了與Excel表格打交道的機(jī)會(huì)。當(dāng)你用Excel處理較多數(shù)據(jù)時(shí),還在使用最原始的人工操作嗎?現(xiàn)在教你如何用Python處理Excel,從此處理表格再也不加班,時(shí)間縮短數(shù)十倍!
上篇我們進(jìn)行了一些事前準(zhǔn)備,目的是用Python提取Excel表中的數(shù)據(jù)。而這一篇便是在獲取數(shù)據(jù)的基礎(chǔ)上,對(duì)Excel表格的實(shí)操處理。
第9行代碼用來(lái)指定創(chuàng)建的excel的活動(dòng)表的名字:
·不寫(xiě)第9行,默認(rèn)創(chuàng)建sheet
·寫(xiě)了第9行,創(chuàng)建指定名字的sheet表
第9行代碼,通過(guò)給單元格重新賦值,來(lái)修改單元格的值
第9行代碼的另一種寫(xiě)法sheet['B1'].value = 'age'
第10行代碼,保存時(shí)如果使用原來(lái)的(第7行)名字,就直接保存;如果使用了別的名字,就會(huì)另存為一個(gè)新文件
插入有效數(shù)據(jù)
使用append()方法,在原來(lái)數(shù)據(jù)的后面,按行插入數(shù)據(jù)
·insert_rows(idx=數(shù)字編號(hào), amount=要插入的行數(shù)),插入的行數(shù)是在idx行數(shù)的下方插入
·insert_cols(idx=數(shù)字編號(hào), amount=要插入的列數(shù)),插入的位置是在idx列數(shù)的左側(cè)插入
·delete_rows(idx=數(shù)字編號(hào), amount=要?jiǎng)h除的行數(shù))
·delete_cols(idx=數(shù)字編號(hào), amount=要?jiǎng)h除的列數(shù))
move_range(“數(shù)據(jù)區(qū)域”,rows=,cols=):正整數(shù)為向下或向右、負(fù)整數(shù)為向左或向上
舉個(gè)例子:
openpyxl.styles.Font(name=字體名稱,size=字體大小,bold=是否加粗,italic=是否斜體,color=字體顏色)
其中,字體顏色中的color是RGB的16進(jìn)制表示
再者,可以使用for循環(huán),修改多行多列的數(shù)據(jù),在這里介紹了獲取的方法
Alignment(horizontal=水平對(duì)齊模式,vertical=垂直對(duì)齊模式,text_rotation=旋轉(zhuǎn)角度,wrap_text=是否自動(dòng)換行)
水平對(duì)齊:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直對(duì)齊:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’
當(dāng)然,你仍舊可以調(diào)用for循環(huán)來(lái)實(shí)現(xiàn)對(duì)多行多列的操作
設(shè)置行列的寬高:
·row_dimensions[行編號(hào)].height = 行高
·column_dimensions[列編號(hào)].width = 列寬
合并單元格有下面兩種方法,需要注意的是,如果要合并的格子中有數(shù)據(jù),即便python沒(méi)有報(bào)錯(cuò),Excel打開(kāi)的時(shí)候也會(huì)報(bào)錯(cuò)。
merge_cells(待合并的格子編號(hào))
merge_cells(start_row=起始行號(hào),start_column=起始列號(hào),end_row=結(jié)束行號(hào),end_column=結(jié)束列號(hào))
拆分單元格的方法同上
unmerge_cells(待合并的格子編號(hào))
unmerge_cells(start_row=起始行號(hào),start_column=起始列號(hào),end_row=結(jié)束行號(hào),end_column=結(jié)束列號(hào))
create_sheet(“新的sheet名”):創(chuàng)建一個(gè)新的sheet表
第11行,使用title修改sheet表的名字
remove(“sheet名”):刪除某個(gè)sheet表
要?jiǎng)h除某sheet表,需要激活這個(gè)sheet表,即:將其作為活動(dòng)表(關(guān)于活動(dòng)表的定義請(qǐng)看前面文章開(kāi)頭寫(xiě)的有)下面8~11行代碼展示了原始活動(dòng)表與手動(dòng)更換活動(dòng)表,第13行代碼刪掉活動(dòng)表
背景知識(shí)
numpy與pandas
NumPy是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù);pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,我們需要利用Pandas進(jìn)行Excel的合并
1.下面的代碼生成了一個(gè)5行3列的包含15個(gè)字符的嵌套列表
(注意,第4行代碼:15是等于35的,如果是15對(duì)應(yīng)43,或者16對(duì)應(yīng)5*3都會(huì)報(bào)錯(cuò))
(注意,第5行代碼,雖然5行3列是15個(gè)數(shù)據(jù),但是可以指定數(shù)據(jù)從1開(kāi)頭,到16結(jié)束)
2.添加表頭
使用pandas庫(kù)的DataFrame來(lái)添加表頭。關(guān)于打印的結(jié)果,把最左側(cè)的一列去掉之后會(huì)發(fā)現(xiàn)結(jié)果很和諧,這是因?yàn)樽钭髠?cè)的一列代表行號(hào)。此時(shí)xx變量的類型是
xlsxwriter模塊一般是和xlrd模塊搭配使用的,
xlsxwriter:負(fù)責(zé)寫(xiě)入數(shù)據(jù),
xlrd:負(fù)責(zé)讀取數(shù)據(jù)。
1.創(chuàng)建一個(gè)工作簿
2.創(chuàng)建sheet表
3.寫(xiě)入數(shù)據(jù)
現(xiàn)在越來(lái)越多的人開(kāi)始學(xué)習(xí)python語(yǔ)言,好像不會(huì)點(diǎn)編程都不好意思說(shuō)是混互聯(lián)網(wǎng)的;那python到底是干嘛的呢?有哪些具體用途呢?下面我就為你簡(jiǎn)單羅列一下:
1.網(wǎng)站開(kāi)發(fā):
網(wǎng)站開(kāi)發(fā)即Web開(kāi)發(fā),Python是一種解釋型的腳本語(yǔ)言,無(wú)需編譯,開(kāi)發(fā)效率高,語(yǔ)法相對(duì)簡(jiǎn)單,非常適合做web開(kāi)發(fā)及入門(mén),常用的web開(kāi)發(fā)框架有Django、Flask、Tornado 等。
2.爬蟲(chóng)開(kāi)發(fā):
爬蟲(chóng)可以說(shuō)是python發(fā)展起來(lái)的基礎(chǔ),全球最大搜索引擎google最初就是用python爬取網(wǎng)站,豐富資源的。爬蟲(chóng)目前用得比較多的場(chǎng)景有比價(jià)網(wǎng)站、信息收集、數(shù)據(jù)統(tǒng)計(jì)等。
3.數(shù)據(jù)分析:
python在數(shù)據(jù)處理方面,有大量庫(kù)供你使用, 數(shù)據(jù)分析中涉及到的分布式計(jì)算引擎hadoop、spark、flink等、數(shù)據(jù)可視化;另外對(duì)數(shù)據(jù)庫(kù)mysql、Oracle、sqlService、clickhouse等,Python都有成熟的模塊可以選擇。
4.人工智能:
因?yàn)镻ython有很多庫(kù)很方便做人工智能,比如NumPy(Numerical Python) 是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù);Pandas可以對(duì)各種數(shù)據(jù)進(jìn)行運(yùn)算操作,比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征,scipy做數(shù)值計(jì)算的,sklearn、XGBoost、CatBoost做機(jī)器學(xué)習(xí)的,ChainerCV、pybrain、Hebel做神經(jīng)網(wǎng)絡(luò)的,matplotlib將數(shù)據(jù)可視化的。
在人工智能大范疇領(lǐng)域內(nèi)的 數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí) 等方面都是主流的編程語(yǔ)言,得到廣泛的支持和應(yīng)用。
5.圖形處理:
圖像處理中的基本操作(如裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)等)、圖像分割、分類和特征提取,圖像恢復(fù)和圖像識(shí)別等,有PIL、Pillow、Tkinter、scikit-image、scipy、OpenCV等圖形庫(kù)支持,能方便進(jìn)行圖形處理。
6.神經(jīng)科學(xué)與心理學(xué):
Python具有獲取和分析數(shù)據(jù)以及通過(guò)建模和仿真測(cè)試假設(shè)的能力,使其非常適合計(jì)算神經(jīng)科學(xué)和實(shí)驗(yàn)心理學(xué)研究。使用Pygame和Psychopy生成和控制復(fù)雜視覺(jué)刺激。開(kāi)源軟件包PsychoPy在全球范圍內(nèi)的實(shí)驗(yàn)室中用于認(rèn)知神經(jīng)科學(xué),實(shí)驗(yàn)心理學(xué)和心理物理學(xué)。
推薦5個(gè)常用的Python標(biāo)準(zhǔn)庫(kù):
1、os:提供了不少與操作系統(tǒng)相關(guān)聯(lián)的函數(shù)庫(kù)
os包是Python與操作系統(tǒng)的接口。我們可以用os包來(lái)實(shí)現(xiàn)操作系統(tǒng)的許多功能,比如管理系統(tǒng)進(jìn)程,改變當(dāng)前路徑,改變文件權(quán)限等。但要注意,os包是建立在操作系統(tǒng)的平臺(tái)上的,許多功能在Windows系統(tǒng)上是無(wú)法實(shí)現(xiàn)的。另外,在使用os包中,要注意其中的有些功能已經(jīng)被其他的包取代。
我們通過(guò)文件系統(tǒng)來(lái)管理磁盤(pán)上儲(chǔ)存的文件。查找、刪除、復(fù)制文件以及列出文件列表等都是常見(jiàn)的文件操作。這些功能通??梢栽诓僮飨到y(tǒng)中看到,但現(xiàn)在可以通過(guò)Python標(biāo)準(zhǔn)庫(kù)中的glob包、shutil包、os.path包以及os包的一些函數(shù)等,在Python內(nèi)部實(shí)現(xiàn)。
2、sys:通常用于命令行參數(shù)的庫(kù)
sys包被用于管理Python自身的運(yùn)行環(huán)境。Python是一個(gè)解釋器,也是一個(gè)運(yùn)行在操作系統(tǒng)上的程序。我們可以用sys包來(lái)控制這一程序運(yùn)行的許多參數(shù),比如說(shuō)Python運(yùn)行所能占據(jù)的內(nèi)存和CPU,Python所要掃描的路徑等。另一個(gè)重要功能是和Python自己的命令行互動(dòng),從命令行讀取命令和參數(shù)。
3、random:用于生成隨機(jī)數(shù)的庫(kù)
Python標(biāo)準(zhǔn)庫(kù)中的random函數(shù),可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)、字符串,甚至幫助你隨機(jī)選擇列表序列中的一個(gè)元素,打亂一組數(shù)據(jù)等。
4、math:提供了數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù)
標(biāo)準(zhǔn)庫(kù)中,Python定義了一些新的數(shù)字類型,以彌補(bǔ)之前的數(shù)字類型可能的不足。標(biāo)準(zhǔn)庫(kù)還包含了random包,用于處理隨機(jī)數(shù)相關(guān)的功能。math包補(bǔ)充了一些重要的數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù),比如pi、三角函數(shù)等等。
5、datetime:日期和時(shí)間的操作庫(kù)
日期和時(shí)間的管理并不復(fù)雜,但容易犯錯(cuò)。Python的標(biāo)準(zhǔn)庫(kù)中對(duì)日期和時(shí)間的管理頗為完善,你不僅可以進(jìn)行日期時(shí)間的查詢和變換,還可以對(duì)日期時(shí)間進(jìn)行運(yùn)算。通過(guò)這些標(biāo)準(zhǔn)庫(kù),還可以根據(jù)需要控制日期時(shí)間輸出的文本格式
第一步
e:/pip-1.3.1python setup.py install
第二步
e:/Python27/Scriptseasy_install pip
第三步
e:/Python27/Scriptspip install -U math