Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)
一、數(shù)據(jù)運(yùn)算
Python數(shù)據(jù)運(yùn)算感覺和C++,Java沒有太大的差異,百度一大堆,這里就不想寫了。比較有意思的是三元運(yùn)算,記得C++和Java都有這個(gè)。。。
1 a,b,c = 1,3,5 2 d = a if a<b else c 3 d可以看到:如果條件成立返回a,否則返回c。
二、bytes數(shù)據(jù)類型
原文:http://eli.thegreenplace.net/2012/01/30/the-bytesstr-dichotomy-in-python-3
Python 3 中最重要的新特性可能就是將文本(text)和二進(jìn)制數(shù)據(jù)做了更清晰的區(qū)分。文本總是用unicode進(jìn)行編碼,以str類型表示;而二進(jìn)制數(shù)據(jù)以bytes類型表示。
Python 3 中不能以任何隱式方式將str和bytes類型二者混合使用。不可以將str和bytes類型進(jìn)行拼接,不能在str中搜索bytes數(shù)據(jù)(反之亦然),也不能將str作為參數(shù)傳入需要bytes類型參數(shù)的函數(shù)(反之亦然)。
字符串和字節(jié)符之間劃分界線是必然的,圖解要牢記:
二級(jí)制數(shù)據(jù)除了用于保存視頻、音頻等文件外;在Python 3.x 網(wǎng)絡(luò)編程中有重要作用,網(wǎng)絡(luò)編程數(shù)據(jù)傳輸使用的正是二級(jí)制數(shù)據(jù)。
1 msg = "我愛你啊,祖國(guó)!".encode('utf-8') 2 msg 3 msg.decode('utf-8')三、.pyc文件是什么鬼,說好的解釋型語言呢?
初學(xué)Python時(shí),聽到的關(guān)于Python的第一句話就是,Python是一門解釋性語言,直到發(fā)現(xiàn)了*.pyc文件的存在。如果是解釋型語言,那么生成的*.pyc文件是什么呢?
其實(shí),隨著Java等基于虛擬機(jī)的語言的興起,解釋型和編譯型語言的界限變得越來越模糊。
用Java來舉例,Java首先是通過編譯器編譯成字節(jié)碼文件,然后在運(yùn)行時(shí)通過解釋器給解釋成機(jī)器文件。所以我們說Java是一種先編譯后解釋的語言。
例如Java執(zhí)行程序的命令:
javac hello.java
java hello
Python執(zhí)行的也是類似操作,只不過不需要用戶顯式調(diào)用!
Python的大致運(yùn)行過程如下:
? ? ? ?當(dāng)Python程序第一次運(yùn)行時(shí),編譯的結(jié)果則是保存在位于內(nèi)存中的PyCodeObject中,當(dāng)Python程序運(yùn)行結(jié)束時(shí),Python解釋器則將PyCodeObject寫回到.pyc文件中。
? ? ? ?當(dāng)Python程序第二次運(yùn)行時(shí),首先程序會(huì)在硬盤中尋找pyc文件,如果找到,則直接載入,否則就重復(fù)上面的過程。
? ? ? ?對(duì)于程序修改的問題,Python其實(shí)是檢查.py文件和.pyc文件的時(shí)間戳,已新的為準(zhǔn)!(自己沒查過源碼,道聽途說。)
? ? ? ?所以我們應(yīng)該這樣來定位PyCodeObject和.pyc文件,我們說.pyc文件其實(shí)是PyCodeObject的一種持久化保存方式。
?
posted on 2018-08-27 13:27 104cz 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/104cz/p/9541703.html
總結(jié)
以上是生活随笔為你收集整理的Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发美运新贵白金卡申请条件有哪些?这几点
- 下一篇: python 12306 车次数据获取