pip install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 安裝pandas模塊python
pip install matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 安裝matplotlib模塊linux
pillow --安裝Image庫git
pytesseractgithub
tesseract-ocr https://github.com/simonflueckiger/tesserocr-windows_build/releases (windows下單獨安裝,命令行使用 //https://github.com/UB-Mannheim/tesseract/wiki)windows
pypiwin32 -- 安裝win32apiapi
/:除法運算結果是小數
//:整除(丟掉小數部分)
10%3=1
10%-3=-2
-10%3=2
-10%-3=-1
向下圓整除,結果爲負數時,離0更遠
10//3=3
10//-3=-4
-10//3=-4
-10//-3=3
求冪運算
2 ** 3 =8
pow(2,3)
獲取用戶的輸入
input("x:")
if 1==2: print('相等')
在交互式解釋器中輸入if語句後,須要按兩次回車鍵才能夠執行它
將浮點數圓整爲與之最接近的整數,兩個整數同樣近時圓整到偶數
round(2/3)=1.0
abs(-10)=10
import math 導入模塊
math.floor(32.9)=32 向下圓整
ceil與floor相反,返回大於或等於給定數的最小整數
int(32.9) 將數字轉爲整數
from math import sqrt 肯定不會從不一樣模塊導入多個同名函數,此時調用函數時能夠不用指定模塊前綴
sqrt(9)=3.0
sqrt(-1)有些平臺直接報錯,有時輸出nan(意思是非數值)
此時若是堅持將值域限定爲實數,並使用其近似的浮點數實現,就沒法計算負數的平凡根
負數的平方根爲虛數,而由實部和虛部組成的數爲複數。
專門處理複數的模塊
import cmath
cmath.sqrt(-1)
輸出1j
python文件擴展名須要是.py後綴
想要更有趣的輸出,應考慮使用模塊turtle,它實現了海龜繪圖法
form turtle import *
from turtle import *
forward(100)
left(120)
forward(100)
left(120)
forward(100)
要讓鉛筆擡起可以使用penup()
要讓鉛筆從新放下,可以使用pendown()
命令行運行python腳本:python test.py
linux下,讓腳本像程序同樣執行,在文件最開始加上#!/user/bin/env python
windows下,能夠在腳本末尾加上input("Press <enter>")
註釋用#
「Let's go!」 不能用單引號將整個字符串括起
拼接字符串用+
將字符串中的特殊字符編碼轉換爲相應的字符用
print(repr("hello,\nworld!")
print(str("hello,\nwordld!") 原樣輸出
print("hello,\nworld!") 轉義換行符
print('C:\\nowhere') 輸出C:\nowhere
print(r'C:\nowhere') 輸出C:\nowhere 原始字符串字符串末尾不能以\結尾
print(r'C:\nowhere' '\\') 原始字符串能夠用此技巧以\結尾
在python3中,全部的字符串都是unicode字符串
要表示很長的字符串,(跨越多行的字符串),可以使用三引號''',此時無需使用反斜槓進行轉義
不可變的bytes (python bytes字面量只支持ascII標準中的128個字符,餘下的須要使用轉義符表示)
可變的bytearray
建立bytes對象,使用前綴b,如b'Hello,world!'
「hello,world!」.encode("UTF-8")
要替換其中的字符串,必須將其指定爲0-255的值,要插入字符,必須使用ord獲取其序數值
bytearray(b"hello!")
python最基本的數據結構是序列
序列:
每一個元素都有編號,即其位置或索引,第一個元素索引是0
負數表示序列末尾元素的位置
經常使用的序列列表是能夠修改,元組不能夠
john=['John',50]
edward=['Edward',42]
database=[john,edward] 序列還能夠包含其餘序列
python支持一種數據結構的基本概念-容器,容器基本上能夠包含其餘對象的對象
既不是序列,也不映射的容器,就是集合(set)
對序列進行迭代,意味着對其每一個元素都執行特定的操做
greet='hello'
greet[0] 輸入的就是'h'
-1表示最後一個元素的位置
切片:
tag='<a href="http://www.python.org"></a>'
tag[9:20] 提取序列中的一部分
tag[3:6][4] 第一個索引指定的元素包含在切片內,第二個索引指定的元素不包含在切片內
tag[-3:0] 結果顯示爲[ ] ,若是第一個索引指定的元素位於第二個索引指定的元素後面,結果就爲空序列
若是切片結束於序列末尾,可省略第二個索引,如tag[-3:]
若是切片開始於序列開頭,可省略第一個索引
要複製整個序列,可將兩個索引都省略[:]
最後一個參數指定切片的步長:numbers[0:10:2]
每隔3隔元素提取1個,可使用number[::4]
步長不能爲0,但能夠爲負數
能夠用+來拼接序列,即[1,2]+[3,4] 輸出是[1,2,3,4]
不能拼接列表和字符串,雖然他們都是序列,不能拼接不一樣類型的序列
'python'*5 將重複這個序列x次
空列表是使用不包含任何內容的兩個方括號[ ]表示
建立可包含10個元素的列表,但沒有任何內容,可以使用[0]*10,或[None]*10
permissions='rw'
'w' in permissions 檢查特定的值包含在序列中,可以使用運算符in,返回true或false
len返回序列包含的元素個數
min、max返回序列中的最小值和最大值
list('hello') 使用字符串來建立列表 輸入爲['h','e','l','l','o']
要講字符列表轉換爲字符串,可以使用' '.join(somelist)
需改列表:x[1]=2 不能給不存在的元素賦值
刪除列表中的元素:
del names[2]
給切片賦值
name[2:]=list('ar') 從第2個之後的列表替換爲'a' 'r'
number[1:1]=[2,3,4] 在1的位置插入2,3,4
number[1:4]=[] 從索引1開始到索引4,可是不包括索引4
將一個對象添加到列表中
number.append(4)
清空列表 number.clear() 相似於number[:]=[]
從python2.2開始,list是類型,不是函數了
複製: b=a.copy()
計算指定的元素在列表中出現的次數:
x.count('to')
將多個值附加到列表末尾:
a.extend(b) 其中b=[4,5,6] a=a+bz這種效率要比extend效率要低
在列表中查找指定值第一次出現的索引
number.index['who'] 返回數字值
將一個對象插入列表
number.insert(3,'four') 在索引3的位置插入'four' 相似number[3:3]=['four']
從列表中刪除最後一個元素(末尾爲最後一個元素),並返回這個元素
x.pop()
x.pop(0) 刪除第一個元素
python沒有提供push()函數,但能夠經過append()函數來實現
刪除第一個指定值的元素
x.remove('be')
相反的順序排列列表中的元素
x.reverse()
對列表排序
x.sort() 從小到大,改變列表
y=sorted(x) 不改變原有x列表
x.sort(key=len) 按照列表中值的長度從小到大排序
x.sort(reverse=True) 相反方向排序
元組,用圓括號括起
包含一個值的元組,必須在它後面加上逗號(42,) 不加逗號時,(42)和42時徹底等效的
tuple([1,2,3]) 將一個序列做爲參數,並將其轉換爲元組;若是參數是元組,就原封不動的返回它
x=1,2,3 元組的建立和訪問於序列同樣
元組的切片也是元組,就像列表的切片也是列表同樣
熟悉元素的緣由:有些函數和方法返回元組
字符串(是不可變的)
設置字符串的格式
format="hello,%s.%s enough for ya?"
values=('world','hot')
format % values