易語言與python
① 易語言好用還是python語言好用
當然是python好用了,不論是易還是python都不可以編寫手機軟體python對中文支持不好,這個不好辦,不過網上很多相關解決方法的。=====================================================本文原創,如需轉載,請註明出處。在本文中,以'哈'來解釋作示例解釋所有的問題,「哈」的各種編碼如下: 1. UNICODE (UTF8-16),C854; 2. UTF-8,E59388; 3. GBK,B9FE。一、python中的str和unicode
一直以來,python中的中文編碼就是一個極為頭大的問題,經常拋出編碼轉換的異常,python中的str和unicode到底是一個什麼東西呢?在python中提到unicode,一般指的是unicode對象,例如'哈哈'的unicode對象為u'\u54c8\u54c8'而str,是一個位元組數組,這個位元組數組表示的是對unicode對象編碼(可以是utf-8、gbk、cp936、GB2312)後的存儲的格式。這里它僅僅是一個位元組流,沒有其它的含義,如果你想使這個位元組流顯示的內容有意義,就必須用正確的編碼格式,解碼顯示。例如: 對於unicode對象哈哈進行編碼,編碼成一個utf-8編碼的str-s_utf8,s_utf8就是是一個位元組數組,存放的就是'\xe5\x93\x88\xe5\x93\x88',但是這僅僅是一個位元組數組,如果你想將它通過print語句輸出成哈哈,那你就失望了,為什麼呢?因為print語句它的實現是將要輸出的內容傳送了操作系統,操作系統會根據系統的編碼對輸入的位元組流進行編碼,這就解釋了為什麼utf-8格式的字元串「哈哈」,輸出的是「鍝堝搱」,因為'\xe5\x93\x88\xe5\x93\x88'用GB2312去解釋,其顯示的出來就是「鍝堝搱」。這里再強調一下,str記錄的是位元組數組,只是某種編碼的存儲格式,至於輸出到文件或是列印出來是什麼格式,完全取決於其解碼的編碼將它解碼成什麼樣子。這里再對print進行一點補充說明:當將一個unicode對象傳給print時,在內部會將該unicode對象進行一次轉換,轉換成本地的默認編碼(這僅是個人猜測)二、str和unicode對象的轉換
str和unicode對象的轉換,通過encode和decode實現,具體使用如下: 將GBK'哈哈'轉換成unicode,然後再轉換成UTF8三、Setdefaultencoding
如上圖的演示代碼所示:當把s(gbk字元串)直接編碼成utf-8的時候,將拋出異常,但是通過調用如下代碼:import sysreload(sys)sys.setdefaultencoding('gbk')後就可以轉換成功,為什麼呢?在python中str和unicode在編碼和解碼過程中,如果將一個str直接編碼成另一種編碼,會先把str解碼成unicode,採用的編碼為默認編碼,一般默認編碼是anscii,所以在上面示例代碼中第一次轉換的時候會出錯,當設定當前默認編碼為'gbk'後,就不會出錯了。至於reload(sys)是因為Python2.5 初始化後會刪除 sys.setdefaultencoding 這個方法,我們需要重新載入。四、操作不同文件的編碼格式的文件
建立一個文件test.txt,文件格式用ANSI,內容為:abc中文用python來讀取# coding=gbkprint open("Test.txt").read()結果:abc中文把文件格式改成UTF-8:結果:abc涓�枃顯然,這里需要解碼:# coding=gbkimport codecsprint open("Test.txt").read().decode("utf-8")結果:abc中文上面的test.txt我是用Editplus來編輯的,但當我用Windows自帶的記事本編輯並存成UTF-8格式時,運行時報錯:Traceback (most recent call last):File "ChineseTest.py", line 3, in print open("Test.txt").read().decode("utf-8")UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0: illegal multibyte sequence原來,某些軟體,如notepad,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字元(0xEF 0xBB 0xBF,即BOM)。因此我們在讀取時需要自己去掉這些字元,python中的codecs mole定義了這個常量:# coding=gbkimport codecsdata = open("Test.txt").read()if data[:3] == codecs.BOM_UTF8:data = data[3:]print data.decode("utf-8")結果:abc中文五、文件的編碼格式和編碼聲明的作用源文件的編碼格式對字元串的聲明有什麼作用呢?這個問題困擾一直困擾了我好久,現在終於有點眉目了,文件的編碼格式決定了在該源文件中聲明的字元串的編碼格式,例如:str = '哈哈'print repr(str)a.如果文件格式為utf-8,則str的值為:'\xe5\x93\x88\xe5\x93\x88'(哈哈的utf-8編碼)b.如果文件格式為gbk,則str的值為:'\xb9\xfe\xb9\xfe'(哈哈的gbk編碼)在第一節已經說過,python中的字元串,只是一個位元組數組,所以當把a情況的str輸出到gbk編碼的控制台時,就將顯示為亂碼:鍝堝搱;而當把b情況下的str輸出utf-8編碼的控制台時,也將顯示亂碼的問題,是什麼也沒有,也許'\xb9\xfe\xb9\xfe'用utf-8解碼顯示,就是空白吧。>_<說完文件格式,現在來談談編碼聲明的作用吧,每個文件在最上面的地方,都會用# coding=gbk 類似的語句聲明一下編碼,但是這個聲明到底有什麼用呢?到止前為止,我覺得它的作用也就是三個:
1.聲明源文件中將出現非ascii編碼,通常也就是中文;
2.在高級的IDE中,IDE會將你的文件格式保存成你指定編碼格式。
3.決定源碼中類似於u'哈'這類聲明的將『哈』解碼成unicode所用的編碼格式,也是一個比較容易讓人迷惑的地方,看示例:
#coding:gbk
ss = u'哈哈'print repr(ss)print 'ss:%s' % ss將這個些代碼保存成一個utf-8文本,運行,你認為會輸出什麼呢?大家第一感覺肯定輸出的肯定是:u'\u54c8\u54c8'ss:哈哈但是實際上輸出是:u'\u935d\u581d\u6431'ss:鍝堝搱為什麼會這樣,這時候,就是編碼聲明在作怪了,在運行ss = u'哈哈'的時候,整個過程可以分為以下幾步:1) 獲取'哈哈'的編碼:由文件編碼格式確定,為'\xe5\x93\x88\xe5\x93\x88'(哈哈的utf-8編碼形式)2) 轉成unicode編碼的時候,在這個轉換的過程中,對於'\xe5\x93\x88\xe5\x93\x88'的解碼,不是用utf-8解碼,而是用聲明編碼處指定的編碼GBK,將'\xe5\x93\x88\xe5\x93\x88'按GBK解碼,得到就是''鍝堝搱'',這三個字的unicode編碼就是u'\u935d\u581d\u6431',至止可以解釋為什麼print repr(ss)輸出的是u'\u935d\u581d\u6431'了。好了,這里有點繞,我們來分析下一個示例:#-*- coding:utf-8 -*-ss = u'哈哈'print repr(ss)print 'ss:%s' % ss將這個示例這次保存成GBK編碼形式,運行結果,竟然是:UnicodeDecodeError: 'utf8' codec can't decode byte 0xb9 in position 0: unexpected code byte這里為什麼會有utf8解碼錯誤呢?想想上個示例也明白了,轉換第一步,因為文件編碼是GBK,得到的是'哈哈'編碼是GBK的編碼'\xb9\xfe\xb9\xfe',當進行第二步,轉換成unicode的時候,會用UTF8對'\xb9\xfe\xb9\xfe'進行解碼,而大家查utf-8的編碼表會發現,utf8編碼表(關於UTF-8解釋可參見字元編碼筆記:ASCII、UTF-8、UNICODE)中根本不存在,所以會報上述錯誤。 本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/kiki113/archive/2009/04/10/4062063.aspx
② 你好大神就單純的易語言和python多線程的話哪個效率更快呢
個人理解是python效率更高。因為python是腳本語言。易語言一定是需要先編譯在執行,所以多一步效率相對低一些
③ 編程小白應該學python還是易語言還是其他
學習python,因為python語言的包容性很大,學習起來也比較容易,至少比C語言容易
④ 業余娛樂,是學python還是易語言
職坐標學易語言還是python,實戰教學,名企實訓,0基礎4個月速成Python開發工程師!職坐標學易語言還是python,簽約,畢業即就業,打造高薪Python工程師!
⑤ 可以用易語言設計gui,python寫代碼嗎
理論上是可以的,可以嵌入一個python的解釋器來被調用運行python的代碼。
但是直接用python 設計GUI現寫代碼不是更好么。
python有多個GUI庫的。
通常python自帶一個簡易的TKinter庫,做個簡單的窗口應用就夠了。
wxPython是Python語言的另一套優秀的GUI圖形庫
PyQt是一個創建GUI應用程序的工具包。它是Python編程語言和Qt庫的成功融合。Qt庫是目前最強大的庫之一。
⑥ 易語言與Python哪個搶購好
易語言。
python適合做框架程序,就是把其他編程語言的程序組合起來。不要用python做太多行的代碼,python不適合寫超長程序。
易語言(EPL)是一種使用中文作為其程序代碼的編程語言。它被稱為「簡易」,其創始人是吳濤。簡易語言的早期版本的名稱為E語言。其最早版本的發布可追溯到2000年9月11日。
⑦ python和易語言有什麼相似之處
說道相似之處,還是先來看看不同之處:
python是腳本語言,可以用任何編輯器編寫,即使是txt文檔也可以。但易語言是IDE,也就是集成開發環境,當然如果你了解易語言的結構也可以直接用txt編寫,但是必須放到易語言中運行。
python應用范圍比較廣,雖然易語言很容易就可以學會,但是因為性能等各種原因,就業前景不是很好,但是用來開發小工具很不錯,現在也有相應的易語言游戲引擎可以幫助您開發游戲,或者使用優化很好的模塊來優化易語言程序。
python是英文版的,易語言是中文的,易語言更容易學會,python學起來有一定的難度,但是功夫不負有心人,只要了解一定的語法結構,就能學會。
易語言其實就是IDE,之前看到有人說易語言就是一個VB翻譯器,其內核都是VB的,但是我只是看到別人說,並不代表我的觀點。而python就是一門純正的編程語言。
相同之處:
都是可以開發程序的編程語言
都是需要寫代碼
都可以使用dll,當然python的功能更強大
其實還有很多,如果樓主覺得還不夠,請追問。
如果樓主想要進入編程領域,我就說幾點個人的小建議:
如果樓主想要進入編程領域,並且是想要一份可以賺錢的工作,但是時間很充足,就可以研究一下python,現在網上有很多的相關教程網站,比如菜鳥教程,慕課網等,也有很多相關書籍。
如果想要一份賺錢的工作,但是時間並不是很充足,比如正在待業,或者即將就業等,那就需要多下點功夫去學習編程語言,但是並不一定要學習python,可以學習一下其他的更容易掌握的語言比如java等。
如果樓主只是想體驗軟體開發,玩玩這種感覺,就可以從易語言開始,易語言雖然當前就業並不是多好,但是卻可以很好的鍛煉樓主的編程思維,有了編程思維,基本上學習編程就不難了。
如果樓主已經掌握其他的編程語言,想要轉型或者想要學習更多的技術,當然要從python下手,然後再學習易語言。
如果樓主想要快速開發小工具,但是程序的質量並不需要多好,易語言是比較不錯的選擇。
⑧ 易語言和python比哪個更好更容易
雖然我很支持國產,但我不得不說,易語言一無是處,它甚至不能稱為一門語言,頂多算個IDE工具。python是一門腳本語言,功能還不錯,但目前還不能編寫手機軟體。編程中出現亂碼是非常正常的,基本所有的編程語言,都會有中文亂碼這個問題,這個問題大多出在出入口編碼不一致這個問題上。
若是想做C/S
也就是桌面應用程序,建議學C(C/C++/C#),如果想做B/S
也就是WEB應用程序,建議學Java或者PHP
⑨ python簡單還是易語言簡單
一個是英文的,另一個是中文的,你說呢?
比如Python寫個提示信息:
def showMsg(): #提示框
tkinter.messagebox.showinfo('提示', '信息內容')
tkinter.messagebox.showwarning('警告', '信息內容')
tkinter.messagebox.showerror('錯誤', '信息內容')
易語言寫個提示信息:
信息框(「中文簡單嗎?」,#信息圖標,「消息」,)
信息框(「中文簡單嗎?」,#警告圖標,「消息」,)
信息框(「中文簡單嗎?」,#錯誤圖標,「消息」,)
那個語言簡單些,你覺得呢?