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