----------- Mac Python 環境安裝----------
打開Mac命令行軟件
執行如下安裝命令
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # 安裝brew命令,若已安裝,請忽略該步驟 $ brew install python $ brew install pip $ python -V # 查看python版本號 $ pip -V # 查看pip版本號
pip配置(可使pip安裝其他插件時,速度加快)
$ cd ~ $ mkdir .pip $ vim .pip/pip.conf [global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
pip安裝Jupiter
$ pip install jupyter # pip在安裝jupyter的同時會安裝ipython
jupyter 打開方式
$ jupyter notebook # 會使用默認瀏覽器打開jupyter頁面
----------- 馮諾伊曼體系架構 ----------
流控圖
計算機五大部件
運算器
- 完成各種算數運算、邏輯運算、數據傳輸等數據加工處理
控制器
- 控制程序執行
存儲器
- 用于記憶程序和數據,例:內存等
輸入設備
- 將數據或者程序輸入到計算機中,例:鍵盤、鼠標等
輸出設備
- 將數據及程序的處理結果展示給用戶,例:顯示器、打印機等
------------------- Python基礎 ------------------
類型
- python是強類型、動態語言
- 強類型:不同類型之間的操作,必須先強制類型轉換
- 動態:不需要事先聲明類型,隨時可賦值為其他類型(缺點:編程時,難以推斷類型)
Python解釋器
- 官方CPython:C語言開發,即python
- IPython:交互式、功能增強的CPython
- PyPy:使用Python寫的解釋器,JIT技術,動態編譯Python代碼
- JPython:將Python的源代碼編譯成Java的字節碼,運行在JVM上
- IronPython:與JPython類似,Python代碼被編譯成.Net字節碼,運行在.Net平臺上的解釋器
Python常用數據類型
空值(None):空值不能用0表示
字符串(
str(x) 返回字符串
):使用' "單雙引號引用的字符序列(包括:數字、字母、標點符號等),單雙引號內部若想使用單雙引號本身,可以使用\進行轉義,如:
>>> print('I\'m "ok"!') I'm "ok"! >>> print("I'm \"ok2\"") I'm "ok2" # 轉義符可以轉義很多字符,如: \n 換行符 \t 制表符(Tab鍵) \\ 表示字符\ 在行尾輸入\表示續行,如果使用各種括號,默認括號內是一個整體,內部跨行不使用\
''' """單三引號,可跨行、及在其中自由使用單雙引號
r前綴:在字符串前面加上r或R前綴,表示該字符串不做特殊處理
f前綴:3.6版本新增,格式化字符串
- 數字:
- 整數(
int(x) 返回整數x
):- 進制:
- 十六進制:0x10,hex()
- 八進制:0o10,oct()
- 二進制:0b10,bin()
- 進制:
- 浮點數(
float(x) 返回浮點數
):由整數和小數部分組成 - 復數(
complex(x) 返回復數
):由實數和虛數部分組成,實數和虛數部分都是浮點數3+4.2j - 布爾值(
bool(x) 返回布爾值
,注意大小寫)可以和整數直接運算:- True
1,為真
- False
0,為假
等價False的對象如下:- 空容器(空字典dict、空列表list、空元組tuple、空集合set)
- 空字符串
- None對象
- 0
- True
- 整數(
數字的處理函數
# round()四舍五入取偶 >>>: round(5.5), round(4.5), round(1.5) (6, 4, 2) # floor()向下取整,ceil()向上取整 >>> import math >>> math.floor(5.6), math.floor(4.3), math.floor(1.8) (5, 4, 1) >>> math.ceil(5.6), math.ceil(4.3), math.ceil(1.8) (6, 5, 2) # int()取整數部分 >>> int(1.2), int(3.5), int(9.9) (1, 3, 9) # //整除且向下取整 >>> 3 // 2, 9 // 4, 10 // 3 (1, 2, 3) >>> min(4,9) #取最小值 4 >>> max(4,9) # 取最大值 9 >>> pow(2,8) # 冪次方 256 >>> math.sqrt(4), math.sqrt(9) # 開方,即x ** 0.5 2.0, 3.0 >>> math.pi # π值 3.141592653589793 >>> math.e # 自如常數 2.718281828459045 # math模塊中還有對等函數、三角函數等
類型判斷
# type(obj),返回類型,而不是字符串 >>> type('abc'), type(11111), type('1111') (str, int, str) >>> type(1 + True) int >>> type(1 + True + 2.0) float # isinstance(obj,type),返回布爾值 >>> isinstance(6, str), isinstance(6, int) (False, True)
Python基礎語法
- 常量、字面常量、變量區別
- 常量:一旦賦值就不能改變,python中無常量定義(約定標識符使用大寫字母表示)
- 字面常量:一個單獨的量,如:11、"abc"、"2.323"等
- 變量:變量就是用來在程序運行期間存儲各種需要臨時保存可以不斷改變的數據的標識符,也就是說,變量的值是可以被改變的
- 標識符(變量名)命名規則
- 只能由由字母、下劃線和數字組成
- 只能以字母或下劃線開頭
- 不能與python關鍵字、系統函數和類名相同
- 約定:不允許使用中文、歧義單詞(如:class_)、不要隨便使用下劃線開頭
- 縮進:Python使用縮進的方式表示層次關系,約定使用4個空格進行縮進
Python運算符
算數運算符(a = 2, b = 8)
運算符 描述 示例 + 加法運算 a + b = 10 - 減法運算 b - a = 6 * 乘法運算 a * b = 16 / 除法運算 5 / 2 = 2.5 // 取整除 5 // 2 = 2 % 取模(取余):只返回余數 5 % 2 = 1 ** 冪:x的y次冪 2 ** 8 = 256 位運算符
運算符 描述 & 按位與 | 按位或 ^ 異或:相異出1 << 、 >> 左移、右移 ~ 按位取反,包括符號位 比較運算符
運算符 描述 示例 == 判斷倆對象是否相等 (2 == 2)返回True (2==3) 返回False != 判斷倆對象是否不相等 (2 != 3)返回True >、>= 大于、大于等于 (2 >= 3)返回False <、<= 小于、小于等于 (2 <= 3)返回True 邏輯運算符
- 與或非 and or not
賦值運算符
運算符 描述 示例 = 賦值,將=右邊的值賦值給左邊的變量名(標識符) a = 123,即將123賦值給a += 自加賦值,將+=左邊的值與+=右邊的值相加,并將結果重新賦值給左邊的變量名(標識符) a += b 就相當于a = a + b -= 自減賦值,將-=左邊的值減去-=右邊的值,并將計算結果重新賦值給左邊的變量名(標識符) a -= b 就相當于 a = a - b *=、//= 、%=、**= 原理同自加賦值及自減賦值一樣,將符號左邊的值與右邊的值進行運算后重新賦值給左邊的變量名 成員運算符:in、not in
身份運算符: is、is not
運算符優先級
- 算數運算符 > 位運算符 > 身份運算符 > 成員運算符 > 邏輯運算符
- 單目 > 雙目
各種進制算法
轉十進制
0b1110 # 二進制 (1 * 2 ** 3) + ( 1 * 2 ** 2) + (1 * 2 ** 1) + (0 * 2 ** 0) = 14 0x41 # 十六進制 (4 * 16) + (1 * 1) = 65
轉二進制
0xF8 # 十六進制轉二進制,按位展開即可 0b1111 1000 127 # 十進制轉二進制,以127除以2,直到商為0,反向提取余數 0b1111111
轉十六進制
0b1110 1000 # 二進制轉十六進制,取四合一法(即每四位取成一位), 0xe8 127 # 十進制轉十六進制,以127除以16,直到商為0,反向取余 0x7f 注: 十六進制從10開始用數字a|A表示,則: a|A: 10 b|B: 11 c|C: 12 d|D: 13 e|E: 14 f|F: 15
----------- 原碼、反碼、補碼、負數表示法 ----------
說明 | 示例 | |
---|---|---|
原碼 | 即數字二進制,可使用bin(n)查看數字n的原碼 | 5 -> 0b101 -1 -> -0b1 |
反碼 | 正數與原碼相同,負數的反碼符號位不變,其余按位取反 | -1 -> 1111 1110 |
補碼 | 正數的補碼與原碼相同,負數的補碼符號位不變,其余按位取反后+1 | -1 -> 1111 1111 |
負數表示法 | 負數在計算機中使用補碼存儲,CPU的運算起實現了加法器,但沒有減法器,如5-1 = 5 + (-1)即0b101+0b11111111,溢出位舍棄 |