PyQt5是基于Digia公司強(qiáng)大的圖形程式框架Qt5的python接口,由一組python模塊構(gòu)成。PyQt5本身?yè)碛谐^(guò)620個(gè)類(lèi)和6000函數(shù)及方法。在可以運(yùn)行于多個(gè)平臺(tái)。PyQt5擁有雙重協(xié)議,自由開(kāi)發(fā)者可以選擇免費(fèi)的GPL版本,僅當(dāng)你準(zhǔn)備將PyQt用于商業(yè)活動(dòng)時(shí),你必須為此交付commercial許可費(fèi)用。以下是小編為你整理的python科學(xué)計(jì)算入門(mén)教程 ?
QtCore模塊涵蓋了包的核心的非GUI功能,此模塊被用于處理程序中涉及到的 time、文件、目錄、數(shù)據(jù)類(lèi)型、文本流、鏈接、mime、線程或進(jìn)程等對(duì)象。 ?
QtGui模塊涵蓋多種基本圖形功能的類(lèi); 包括但不限于:窗口集、事件處理、2D圖形、基本的圖像和界面 和字體文本。 ?
QtWidgets模塊包含了一整套UI元素組件,用于建立符合系統(tǒng)風(fēng)格的classic界面,非常方便,可以在安裝時(shí)選擇是否使用此功能。
?
QtMultimedia模塊包含了一套類(lèi)庫(kù),該類(lèi)庫(kù)被用于處理多媒體事件,通過(guò)調(diào)用API接口訪問(wèn)攝像頭、語(yǔ)音設(shè)備、收發(fā)消息(radio functionality)等。 ?
QtBluetooth模塊包含了處理藍(lán)牙活動(dòng)的類(lèi)庫(kù),它的功能包括:掃描設(shè)備、連接、交互等行為。 ?
QtNetwork模塊包含用于網(wǎng)絡(luò)編程的類(lèi)庫(kù),這組類(lèi)程序通過(guò)提供便捷的TCP/IP 及 UDP 的 c/s 程式碼集合,使得基于Qt的網(wǎng)絡(luò)編程更容易。 ?
import smtplibimport smtplib ?
from email.mime.text import MIMEText ?
to_list=["xxx@xxxxx"] ?
host="smtp.xxx" ?
username="xxx" ?
password="xxx" ?
postfix="xxx" ?
def send_plain_mail(send_list,title,content): ?
me="<"+username+"@"+postfix+">" ?
msg = MIMEText(content,_subtype='plain',_charset='gb2312') ?
msg['Subject'] = title ?
msg['From'] = me ?
msg['To'] = ";".join(to_list) ?
try: ?
server = smtplib.SMTP() ?
server.connect(host) ?
server.login(username,password) ?
server.sendmail(me, to_list, msg.as_string()) ?
server.close() ?
return True ?
except Exception, e: ?
print str(e) ?
return False ?
if __name__ == '__main__':
?
email_title = "title::" ?
email_content = "content::" ?
if send_plain_mail(to_list,email_title,email_content): ?
print "send success !" ?
else: ?
print "send failed !" ?
云基礎(chǔ)設(shè)施
這年頭,不支持云平臺(tái),不支持海量數(shù)據(jù),不支持動(dòng)態(tài)伸縮,根本不敢說(shuō)自己是做大數(shù)據(jù)的,頂多也就敢跟人說(shuō)是做商業(yè)智能(BI)。 ?
云平臺(tái)分為私有云和公有云。私有云平臺(tái)如日中天的 OpenStack,就是 Python 寫(xiě)的。曾經(jīng)的追趕者 CloudStack,在剛推出時(shí)大肆強(qiáng)調(diào)自己是 Java 寫(xiě)的,比 Python 有優(yōu)勢(shì)。結(jié)果,搬石砸腳,2015 年初,CloudStack 的發(fā)起人 Citrix 宣布加入 OpenStack 基金會(huì),CloudStack 眼看著就要壽終正寢。
?
如果嫌麻煩不想自己搭建私有云,用公有云,不論是 AWS,GCE,Azure,還是阿里云,青云,在都提供了 Python SDK,其中 GCE 只提供 Python 和 JavaScript 的 SDK,而青云只提供 Python SDK??梢?jiàn)各家云平臺(tái)對(duì) Python 的重視。 ?
提到基礎(chǔ)設(shè)施搭建,不得不提 Hadoop,在今天,Hadoop 因?yàn)槠?MapReduce 數(shù)據(jù)處理速度不夠快,已經(jīng)不再作為大數(shù)據(jù)處理的*,但是 HDFS 和 Yarn——Hadoop 的兩個(gè)組件——倒是越來(lái)越受歡迎。Hadoop 的開(kāi)發(fā)語(yǔ)言是 Java,沒(méi)有官方提供 Python 支持,不過(guò)有很多第三方庫(kù)封裝了 Hadoop 的 API 接口(pydoop,hadoopy 等等)。 ?
Hadoop MapReduce 的替代者,是號(hào)稱(chēng)快上 100 倍的 Spark,其開(kāi)發(fā)語(yǔ)言是 Scala,但是提供了 Scala,Java,Python 的開(kāi)發(fā)接口,想要討好那么多用 Python 開(kāi)發(fā)的數(shù)據(jù)科學(xué)家,不支持 Python,真是說(shuō)不過(guò)去。HDFS 的替代品,比如 GlusterFS,Ceph 等,都是直接提供 Python 支持。Yarn 的替代者,Mesos 是 C++ 實(shí)現(xiàn),除 C++ 外,提供了 Java 和 Python 的支持包。 ?
?
關(guān)于python的題外話
外部庫(kù)可以使用 import [libname] 關(guān)鍵字來(lái)導(dǎo)入。同時(shí),你還可以用 from [libname] import [funcname] 來(lái)導(dǎo)入所需要的函數(shù)。例如: ?
Python針對(duì)文件的處理有很多內(nèi)建的函數(shù)庫(kù)可以調(diào)用。例如,這里演示了如何序列化文件(使用pickle庫(kù)將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為字符串): ?
數(shù)值判斷可以鏈接使用,例如 1
可以使用 del 刪除變量或刪除數(shù)組中的元素。 ?
列表推導(dǎo)式(List Comprehension)提供了一個(gè)創(chuàng)建和操作列表的有力工具。列表推導(dǎo)式由一個(gè)表達(dá)式以及緊跟著這個(gè)表達(dá)式的for語(yǔ)句構(gòu)成,for語(yǔ)句還可以跟0個(gè)或多個(gè)if或for語(yǔ)句 ?
全局變量在函數(shù)之外聲明,并且可以不需要任何特殊的聲明即能讀取,但如果你想要修改全局變量的值,就必須在函數(shù)開(kāi)始之處用global關(guān)鍵字進(jìn)行聲明,否則Python會(huì)將此變量按照新的局部變量處理(請(qǐng)注意,如果不注意很容易被坑)。 ?
本教程并未涵蓋Python語(yǔ)言的全部?jī)?nèi)容(甚至連一小部分都稱(chēng)不上)。Python有非常多的庫(kù)以及很多的功能特點(diǎn)需要學(xué)習(xí),所以要想學(xué)好Python你必須在此教程之外通過(guò)其它方式,例如閱讀Dive into Python。