桐花万里python路-基础篇-01-历史及进制
生活随笔
收集整理的這篇文章主要介紹了
桐花万里python路-基础篇-01-历史及进制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- 歷史及版本
- 作者:吉多·范羅蘇姆(龜叔)
- 時(shí)間:1989年
- 重要版本:
- 2.4? 2004年?同年Django誕生
- 2.6? 2008
- 3.0? 2008
- 2.7? 2010
- 3.6? 2016.12?當(dāng)前使用版本
- py2和py3
- 區(qū)別:統(tǒng)一、標(biāo)準(zhǔn)、去除重復(fù)代碼
- 類庫更改 Python2.x | Python3.x _winreg | winreg
ConfigParser | configparser
copy_reg | copyreg
Queue | queue SocketServer | socketserver
markupbase | _markupbase
repr | reprlib
test.test_support | test.support - In summary : Python 2.x is legacy, Python 3.x is the present and future of the language
- Python解釋器
- 種類
- CPython?官方
- IPython? ?交互增強(qiáng)的CPython
- Pypy? ? ? ?JIT,非解釋的動(dòng)態(tài)編譯
- JPython? Java字節(jié)碼
- IronPython .Net字節(jié)碼
- 編譯型和解釋型
- 編譯型:編譯型語言在程序執(zhí)行之前,先會(huì)通過編譯器對程序執(zhí)行一個(gè)編譯的過程,把程序轉(zhuǎn)變成機(jī)器語言。運(yùn)行時(shí)就不需要翻譯,而直接執(zhí)行就可以了。C,C++,Go,Object-C,Swift,...
- 解釋型:沒有編譯過程,而是在程序運(yùn)行的時(shí)候,通過解釋器對程序逐行作出解釋,然后直接運(yùn)行。Ruby,PHP,Javascript,...
- 基于虛擬機(jī)的語言:通過編譯器編譯成字節(jié)碼文件,然后在運(yùn)行時(shí)通過解釋器給解釋成機(jī)器文件。JAVA,C#,其實(shí)Python是基于虛擬機(jī)的混合型語言
- 特點(diǎn):一般來說,解釋型的語言開發(fā)效果高,易于維護(hù)、跨平臺(tái),編譯型的語言運(yùn)行效率較高
- 種類
- 執(zhí)行腳本
- 交互器
- 指定解釋器? #!/usr/bin/env pythonprint("hello world!")
- 其他說明
- 編碼 :py2默認(rèn)編碼為ASCII?,py3為UTF_8 # -*- coding: utf-8 -*-
- 注釋: # 單行注釋''' 多行注釋 多行注釋 多行注釋 ... '''#或""" 多行注釋 多行注釋 多行注釋 ... """?
- 空行
- 函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開始。 空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護(hù)或重構(gòu)。
- 分號
- 一般不用分號,如果單行需要寫多個(gè)語句則需要。
- 縮進(jìn)
- python非常注重縮進(jìn),2個(gè)空格或4個(gè)空格或1個(gè)Tab鍵。
- 多行語句
- 末尾使用斜杠 ( \ ) ,將一行分為多行 a = 5 b = 6 c = 7d = a + \b + \c
- 進(jìn)制
- 是一種計(jì)數(shù)的方式,數(shù)值的表示形式
- 常用進(jìn)制
- 二進(jìn)制?b
- 八進(jìn)制 o
- 十進(jìn)制?
- 十六進(jìn)制 hex
- 機(jī)器數(shù)
- 一個(gè)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式, 叫做這個(gè)數(shù)的機(jī)器數(shù)。
- 機(jī)器數(shù)是帶符號的,用一個(gè)數(shù)的最高位存放符號, 正數(shù)為0, 負(fù)數(shù)為1
- 真值
- 將帶符號位的機(jī)器數(shù)對應(yīng)的真正數(shù)值稱為機(jī)器數(shù)的真值
- 因?yàn)榈谝晃皇欠栁?所以機(jī)器數(shù)的形式值就不等于真正的數(shù)值
- 原反補(bǔ)
- 數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以補(bǔ)碼的形式儲(chǔ)存的
- 數(shù)據(jù)分為有符號數(shù)和無符號數(shù),無符號數(shù)都為正數(shù),由十進(jìn)制直接轉(zhuǎn)換到二進(jìn)制直接存儲(chǔ)(其實(shí)也是該十進(jìn)制的補(bǔ)碼)即可
- 正數(shù)的最高位是符號位0,其原碼是由十進(jìn)制數(shù)轉(zhuǎn)換到的二進(jìn)制數(shù)字;負(fù)數(shù)的最高位是 符號位1,其原碼后面的位也為10進(jìn)制數(shù)轉(zhuǎn)換過去的二進(jìn)制數(shù)字,都是用補(bǔ)碼方式表示 有符號數(shù)的
- 原碼:原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其余位表示值
- 反碼:正數(shù)的反碼是其本身,負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上, 符號位不變,其余各個(gè)位取反
- 補(bǔ)碼:正數(shù)的補(bǔ)碼是其本身,負(fù)數(shù)的補(bǔ)碼是在其原碼的基礎(chǔ)上, 符號位不變, 其余各位取反, 最后+1. (即在反碼的基礎(chǔ)上+1)
- 正數(shù):三碼合一
- 負(fù)數(shù):反碼 = 源碼取反,補(bǔ)碼 = 反碼+1, 或者 補(bǔ)碼 = 源碼取反 + 1 1+(-1) = 000000000 00000000 00000000 00000001 1 源碼 00000000 00000000 00000000 00000001 1 反碼 00000000 00000000 00000000 00000001 1 補(bǔ)碼10000000 00000000000000000000000001 -1源碼 11111111 11111111 11111111 11111110 -1反碼 11111111 11111111 11111111 11111111 - 1補(bǔ)碼00000000 00000000 00000000 00000001 1的補(bǔ)碼 11111111 11111111 11111111 11111111 + -1的補(bǔ)碼 ---------------------------------------------------------------------------- 00000000 00000000 00000000 00000000 01(源碼) + (-1)(源碼) = -21(反碼) + (-1)(反碼) = -01(補(bǔ)碼) + (-1)(補(bǔ)碼) = 0
- 位運(yùn)算
- & 按位與?
- 同1為1,有0為0
- 只有對應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0
- 任何一個(gè)數(shù)和1進(jìn)行&(按位與)得到任何一個(gè)數(shù)的二進(jìn)制的最后一位
- | 按位或
- 有1則1
- 只要對應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1,否則為0
- ^ 按位異或
- 同0非1
- 當(dāng)對應(yīng)的二進(jìn)位相異(不相同)時(shí),結(jié)果為1,否則為0
- ~ 取反
- 各二進(jìn)位進(jìn)行取反(0變1,1變0)
- 左移 <<
- 各二進(jìn)位全部左移n位,高位丟棄,低位補(bǔ)0
- 左移可能會(huì)改變一個(gè)數(shù)的正負(fù)性
- 左移1位相當(dāng)于乘以2的n次方
- 8<<3 等同于8*(2**3)
- 右移 >>
- 各二進(jìn)位全部右移n位,保持符號位不變
- 所有二進(jìn)制位向右移動(dòng)n位,移出的位刪掉,移進(jìn)的位補(bǔ)符號位
- 右移不會(huì)改變一個(gè)數(shù)的符號
- 右移 n 位就相當(dāng)于除以2的n次方
- 8>>3 等同于8/(2**3)
- & 按位與?
- 是一種計(jì)數(shù)的方式,數(shù)值的表示形式
轉(zhuǎn)載于:https://www.cnblogs.com/zhujingxiu/p/8182403.html
總結(jié)
以上是生活随笔為你收集整理的桐花万里python路-基础篇-01-历史及进制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot: 计划任务@ E
- 下一篇: hystrix源码小贴士之Yammer