PyQt5是基于Digia公司強大的圖形程式框架Qt5的python接口,由一組python模塊構成。PyQt5本身擁有超過620個類和6000函數(shù)及方法。在可以運行于多個平臺。PyQt5擁有雙重協(xié)議,自由開發(fā)者可以選擇免費的GPL版本,僅當你準備將PyQt用于商業(yè)活動時,你必須為此交付commercial許可費用。以下是小編為你整理的怎么學好python編程 ?
QtCore模塊涵蓋了包的核心的非GUI功能,此模塊被用于處理程序中涉及到的 time、文件、目錄、數(shù)據(jù)類型、文本流、鏈接、mime、線程或進程等對象。 ?
QtGui模塊涵蓋多種基本圖形功能的類; 包括但不限于:窗口集、事件處理、2D圖形、基本的圖像和界面 和字體文本。 ?
QtWidgets模塊包含了一整套UI元素組件,用于建立符合系統(tǒng)風格的classic界面,非常方便,可以在安裝時選擇是否使用此功能。
?
QtMultimedia模塊包含了一套類庫,該類庫被用于處理多媒體事件,通過調(diào)用API接口訪問攝像頭、語音設備、收發(fā)消息(radio functionality)等。 ?
QtBluetooth模塊包含了處理藍牙活動的類庫,它的功能包括:掃描設備、連接、交互等行為。 ?
QtNetwork模塊包含用于網(wǎng)絡編程的類庫,這組類程序通過提供便捷的TCP/IP 及 UDP 的 c/s 程式碼集合,使得基于Qt的網(wǎng)絡編程更容易。 ?
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 !" ?
云基礎設施
這年頭,不支持云平臺,不支持海量數(shù)據(jù),不支持動態(tài)伸縮,根本不敢說自己是做大數(shù)據(jù)的,頂多也就敢跟人說是做商業(yè)智能(BI)。 ?
云平臺分為私有云和公有云。私有云平臺如日中天的 OpenStack,就是 Python 寫的。曾經(jīng)的追趕者 CloudStack,在剛推出時大肆強調(diào)自己是 Java 寫的,比 Python 有優(yōu)勢。結(jié)果,搬石砸腳,2015 年初,CloudStack 的發(fā)起人 Citrix 宣布加入 OpenStack 基金會,CloudStack 眼看著就要壽終正寢。
?
如果嫌麻煩不想自己搭建私有云,用公有云,不論是 AWS,GCE,Azure,還是阿里云,青云,在都提供了 Python SDK,其中 GCE 只提供 Python 和 JavaScript 的 SDK,而青云只提供 Python SDK??梢姼骷以破脚_對 Python 的重視。 ?
提到基礎設施搭建,不得不提 Hadoop,在今天,Hadoop 因為其 MapReduce 數(shù)據(jù)處理速度不夠快,已經(jīng)不再作為大數(shù)據(jù)處理的*,但是 HDFS 和 Yarn——Hadoop 的兩個組件——倒是越來越受歡迎。Hadoop 的開發(fā)語言是 Java,沒有官方提供 Python 支持,不過有很多第三方庫封裝了 Hadoop 的 API 接口(pydoop,hadoopy 等等)。 ?
Hadoop MapReduce 的替代者,是號稱快上 100 倍的 Spark,其開發(fā)語言是 Scala,但是提供了 Scala,Java,Python 的開發(fā)接口,想要討好那么多用 Python 開發(fā)的數(shù)據(jù)科學家,不支持 Python,真是說不過去。HDFS 的替代品,比如 GlusterFS,Ceph 等,都是直接提供 Python 支持。Yarn 的替代者,Mesos 是 C++ 實現(xiàn),除 C++ 外,提供了 Java 和 Python 的支持包。 ?
分割字符串
由于用戶輸入數(shù)字字符串的時候,可能隨意的用逗號、空格進行分隔,而且空格的數(shù)目可能隨意,數(shù)字的位數(shù)也可能是任意位數(shù),所以,粗暴的使用split分割字符串,可能是錯誤的。 ?
不論用戶使用的是什么符號進行分割,都把分隔符號替換為空格; ?
用空格分割字符串,可能出現(xiàn)多個空字符; ?
然后,去除空字符,并把字符串轉(zhuǎn)化為整數(shù)。 ?
由于d里面有重復元素,所以,為避免重復元素擾亂輸出,把列表的重復元素刪掉,并重新排序。 ?
這樣,就可以完成給定的題目。無論用戶是使用空格分割數(shù)字,還是使用逗號(包括中文逗號、英文逗號),都可以返回正確的結(jié)果。 ?
但是,一旦用戶輸入了違規(guī)的字符串,比如,除了數(shù)字、空格、逗號,還出現(xiàn)了字母,程序就會報錯。原因是'3a'不能夠轉(zhuǎn)化為整數(shù)。
如果用戶非得使用字母或者別的非數(shù)字字符來分割數(shù)字,怎么辦?那就用空格替換掉所有的非數(shù)字字符。