Python的入門()java
Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言python
:面向對象、直譯成的計算機程序語言git
:遵循GPL協議(GNU General Public License)程序員
創始人:吉多.範羅蘇姆 源於1989年聖誕期間數據庫
特色:優雅、明確、簡單編程
Python適合開發哪些應用?windows
Python語言應用於系統編程、數據庫、網絡編程、GUI、數字及科學計算、Web編程、快速產品成型等api
編程特性:瀏覽器
1:面向過程bash
二、面向對象
三、函數式編程
基本數據類型:
整型(int)、
長整型(long) Python3沒有
浮點數(float) 一個浮點數佔8個字節,浮點數是小數(帶小數點)
負數(complex)
布爾值(bool) 判斷真或假
1爲真 1=true 0爲假 0=false (只有0是false,其餘全是true)
各類Python解釋器
CPython
CPython 是默認的python實現,環境或者是解釋器(你喜歡哪一個就那麼叫)。腳本大多數狀況下都運行在這個解釋器中。 CPython是官方的python解釋器,徹底按照python的規格和語言定義來實現,因此被看成其餘版本實現的參考版本。CPython是用C語言寫的,當執行代碼的時候Pythond代碼會被轉化成字節碼(bytecode)。因此CPython是個字節碼解釋器。當咱們從Python官網下載安裝包安裝,或者是經過相似 "apt-get" 或者 "yum"工具安裝的時候,安裝的都是CPython版本。
PyPy 是一個不少地方都和CPython很像的實現,可是這個解釋器自己就是由Python寫成。也就是說開發者們用Python寫了一個Python解釋器。然而這個解釋器的代碼先轉化成C,而後在編譯。PyPy被認爲要比CPython性能更好。由於CPython會把代碼轉化成字節碼,PyPy會把代碼轉化成機器碼。
Psyco 是一個相似PyPy,可是很好的解釋器。如今已經被PyPy取代了,有可能的話,使用PyPy來代替Psyco。
Jython是用java實現的一個解釋器。Jython容許程序員寫 Python代碼,還能夠把java的模塊加載在python的模塊中使用。Jython使用了JIT技術,也就是說運行時Python代碼會先轉化成 Java 字節碼(不是java源代碼),而後使用JRE執行。程序員還能夠用Jython把Python代碼打成jar包,這些jar和java程序打包成的 jar同樣能夠直接使用。這樣就容許Python程序員寫Java程序了。可是呢,必需要知道哪些Java模塊能夠在Jython中使用,而後使用 Python的語法就能夠寫程序了。Jython兼容python2,也可使用命令行來寫交互式程序。
IronPython 是使用C#語言實現,可使用在.NET 和 Mono 平臺的解釋器。IronPython 是兼容 Silverlight 的,配合Gestalt 就能夠直接在瀏覽器中執行。IronPython也是兼容Python2的。
tip: Mono 是提供.NET-compatible 工具的開源框架。
目前,Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不兼容的。因爲3.x版愈來愈普及,咱們的教程將以最新的Python 3.5版本爲基礎。
一、首先訪問http://www.python.org/download/去下載最新的python版本。
首先,根據你的Windows版本(64位仍是32位)從Python的官方網站下載Python 3.5對應的64位安裝程序或32位安裝程序而後,運行下載的EXE安裝包:
特別要注意勾上Add Python 3.5 to PATH
,而後點「Install Now」便可完成安裝。
安裝成功後,打開命令提示符窗口,敲入python後,會出現兩種狀況:
狀況一:
看到上面的畫面,就說明Python安裝成功!
你看到提示符>>>
就表示咱們已經在Python交互式環境中了,能夠輸入任何Python代碼,回車後會馬上獲得執行結果。如今,輸入exit()
並回車,就能夠退出Python交互式環境(直接關掉命令行窗口也能夠)。
狀況二:獲得一個錯誤:
‘python’ 不是內部或外部命令,也不是可運行的程序或批處理文件。
這是由於Windows會根據一個Path
的環境變量設定的路徑去查找python.exe
,若是沒找到,就會報錯。若是在安裝時漏掉了勾選Add Python 3.5 to PATH
,那就要手動把python.exe
所在的路徑添加到Path中。
若是你不知道怎麼修改環境變量,建議把Python安裝程序從新運行一遍,務必記得勾上Add Python 3.5 to PATH
。
PyCharm 是 JetBrains 開發的 Python IDE。PyCharm 用於通常 IDE 具有的功能,好比, 調試、語法高亮、Project 管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制……另外,PyCharm 還提供了一些很好的功能用於 Django 開發,同時支持 Google App Engine,更酷的是,PyCharm 支持 IronPython!
初次使用pycharm時,須要對pycharm對一些基本的操做,這樣防止之後出現問題:
pycharm操做模板增長註釋file ---default settings---temp(搜索框寫) --- python Script
設置解釋器 file ---default settings---encoding(搜索框寫)---Default encoding...files 選擇UTF-8
調字體大小 seting -mouse(搜索框寫) -General--第二個打勾-保存--ctrl + 滾輪
快捷鍵的操做:
註釋多行:先標記多行 Ctrl+?
查看源碼:Ctrl+鼠標左鍵點擊命令
列模式:Alt+鼠標左鍵
結束符號:
break 結束,跳出全部循環
continue 結束當前循環,執行下一次循環
pass python站位(什麼都不執行,沒有就會語法錯誤)
return 終止(針對函數)
特殊字符:
字典 a = {"a",1}定義鍵和值之間一對一的關係,已無序方式儲存
:一段話的結束符
字符串格式化:
% 格式符號
%d 表明整數
%f 浮點數
%s 佔位符
\n 換行
; 段落結束符
,分割做用
命令:
id(name) 查看name內存地址 name是變量
type(name)查看name類型 獲取類
len(name) 判斷列表或元組的長度(若是是一個字符串,每個字符是一個長度)
bool(name) 非0和非空都是true,name=ab,bool(name)bool值是true (布爾值)
list(name) 轉換爲列表 list和tuple的相互轉化
tuple(name) 轉換爲元組 tuple和list的相互轉化
dir(naem) 查看元組或列表權限
import 導入模塊
int 把用戶輸入的字符串轉換成數字格式
pyc 字節碼
文件類型
1 #!/bin/bash 2 3 #install python3.6 4 5 yum -y install readline-devel #修復bug 6 7 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1rc1.tgz 8 9 mkdir /usr/local/python3 10 11 tar -xvf Python-3.6.1rc1.tgz 12 13 cd Python-3.6.1rc1 14 15 ./configure --prefix=/usr/local/python3 16 17 make 18 19 make install 20 21 ln -s /usr/local/python3/bin/python3 /usr/bin/ 22 23 echo "python.2 write command----python" 24 25 python -V #顯示默認安裝版本 26 27 echo "python.2 write command----python3" 28 29 python3 -V #顯示安裝版本
1 >>>print (name) #輸出 2 >>>name = input("nanna:") #輸入,顯示交互 3 >>>import getpass #調用模塊 4 >>>pqqq = getpass.getpass("請輸入密碼") #輸入,不顯示交換,須要調用變量import getpass)
import keyword #
keyword模塊,能夠輸出當前版本的全部關鍵字print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else','except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or','pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
1 >>>bin(10) 二進制 2 '0b1010' 3 >>> 10 默認十進制 4 10 5 >>> oct(10) 8進制 6 '0o12' 7 >>> hex(10) 16進制 8 '0xa' a表示10 b表示11 以此類推
1 bool 2 1爲真 1==True 0爲假 0==False (只有0是False 其餘都是True) 3 判斷a列表是否存在元素 4 >>> a =['aa','cc'] 5 >>> "bb" in a 6 True 7 >>> "dd" in a 8 False
1 >>> name 2 [11, 'ad', 33] 3 >>> name[2] 4 33
1 >>> t1 = (1,2,{"gg":"k3"}) #增長了字典 2 >>> t1 3 (1, 2, {'gg': 'k3'}) 4 >>> t1[2]["gg"]=2 5 >>> t1 6 (1, 2, {'gg': 2})
1 L = ["a",11,var] 2 dir(L) #查看L列表的能執行的命令 3 4 L.append(var) #增長,追加,var的值添加到L的中 5 6 L.insert(2,var) #插入, 指定追加,在第二元素後增長var 7 L.pop() #刪除最後一個元素,並從list中刪除之 8 9 L.remove(var) #刪除,指定刪除元素var 若有多個var 刪除第一次出現元素var 10 11 L.count(var) #查看, 顯示元素var出現個數 12 13 L.index(var) #該元素的位置,無則拋異常 14 15 L.extend(list) #追加list,即合併list到L上 16 17 L.sort() #排序 18 19 L.reverse() #倒序 反轉排序 20 更新 a=['A','B'] a[1] = 'c' print(a) (結果 a = ['A','c'] )
1 dic = {'name':'alex','age':["aa","bb"],} 2 #查 3 print (dic.get('name')) #若是找不到name的vulue,返回None 4 print (dic.get('name',"null")) #若是找不到name的vulue,指定返回null 5 #增 6 dic['gender']='female' 7 #改 8 dic['name']='guolm' #改key 9 dic['age'][0]='guolm' #改key中第一個value 10 #刪 11 del dic['name']
1 name = input('Name:') 2 age = input('Age') 3 job = input('Job') 4 hobbie = input('Hobbie') 5 info = ''' 6 ---------info of %s--------- #%s是佔位符 7 Name:%s 8 Age:%s 9 Job:%s 10 Hobbie:%s 11 ---------end---------------- 12 '''%(name,name,age,job,hobbie) #傳參 13 print(info)
%s就是表明字符串佔位符,除此以外,還有%d,是數字佔位符, 若是把上面的age後面的換成%d,就表明你必須只能輸入數字啦(input接收的全部輸入默認都是字符串格式!)
基本運算符
算數運算
比較運算
賦值運算
邏輯運算
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。
Unicode Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。 Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每 個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位 來表示(2個字節),即:2 **16 = 65536
UTF-8 utF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將 全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個 字節保存,東亞的字符用3個字節保存
格式:
if 條件:
交換判斷
1 #一次交換判斷 2 # #!/usr/bin/python 3 sex = input("input your gender: ") 4 if sex == "girl": 5 print ("i like you ") 6 elif sex == "man": 7 print ("Going to homesexual!...") 8 else: 9 print("I'm will very angry!")
1 gongxu=22 2 guess=int(input("請輸入:")) 3 if guess > 30: 4 print("很接近了") 5 elif guess < 20: 6 print("或許能夠再猜一次,也很接近了") 7 else: 8 print("bingo,答對了")
1 # 以下是for循環寫3次方法,注意格式 2 gongxu = 23 3 for i in range(3): 4 g = int(input("guess your lucky number: ")) #int 把用戶輸入的字符串格式轉換成數字格式 5 if g < gongxu: 6 print ("please guess a big bigger") 7 elif g > gongxu: 8 print ("please guess a little bit small") 9 else: 10 print("bingo!") 11 break 12 else: 13 print ("too many retrys!")
1 for i in range(1,10): 2 for j in range(1,10): 3 if j < 6: 4 continue #跳出當此循環繼續下一次循環,針對for循環 5 print(i,j)
while循環
1 判斷輸入爲數字 則跳槽,不然進行下一次循環 2 while True: #當條件爲真 則: 3 salary = input("Your salary:") #交互 4 if salary.isdigit(): #判斷爲整數,則執行以下操做 5 salary = int(salary) #格式化數字 6 break #跳出全部循環 7 全部循環 else: 8 continue #跳出當此循環,進行下一次循環
1 count = 0 2 while count<=20: 3 print('haha',count) #只要count<=20就不斷執行下面的代碼 4 if count ==2: 5 break 6 count+=1 #每執行一次,就把count+1,要否則就變成死循環啦,由於count一直是0 7 print("hahhahahaahah")
continue和break有點相似,區別在於continue只是終止本次循環,接着還執行後面的循環,break則徹底終止循環
與其它語言else 通常只與if 搭配不一樣,在Python 中還有個while ...else 語句
while 後面的else 做用是指,當while 循環正常執行完,中間沒有被break 停止的話,就會執行else後面的語句
1 count = 0 2 while count <= 5 : 3 count += 1 4 print("Loop",count) 5 6 else: 7 print("循環正常執行完啦") 8 print("-----out of while loop ------")
Strip移除空白
1 gx=' abc ' 2 print(gx.strip()) #去掉左右空格 3 print(gx.rstrip()) #去掉右空格 4 print(gx.lstrip()) #去掉左空格
Split分割
1 user="gongxu|123|5" 2 i=user.split("|") #以|分隔,後邊跟上1就是從左邊第一個開始分隔 3 i=user.split("|",1) #分隔第一個,從右2邊開始 4 print(i)
len長度
1 #獲取number的長度 2 number = ("abc",123) 3 print(len(number)) 4 number1 = ("123456") 5 print(len(number1))
切片[]
1 gx="hello" 2 print(gx[1]) #取第一個值,從0開始 3 print(gx[2:3]) #取第二個至第三個的值,從0開始 4 print(gx[1:]) #取第一個至最後的值
capitlize返回一個首字母大寫的字符串。
1 gx = "Hello,world" 2 print(gx.capitalize())
center分隔行
1 gx = "abc" 2 print(gx.center(10)) #10是總長度,左右10空格 3 print(gx.center(10,'*'))# *是內容 4 print(gx.rjust(10,'*')) #左邊填充 5 print(gx.ljust(10,'*')) #右邊填充
count統計出現的次數
gx = 'aahjdfhhaa chdldlfn fknfonfof' result=gx.count('a') #統計a出現的次數 範圍:0-9個字符(有頭無尾,注:不加0-10是統計全部字符)result:結果 print(result)
encode utf-8轉gbk
gx = "龔旭" result = gx.encode('gbk') print(result)
expandtabs增長分割符(製表符\t,包含前面的值)
1 gx = 'xixixi\t\hahah\t\haha\t\zizizi' 2 result = gx.expandtabs() 3 print(result) 4 輸出結果:xixixi \hahah \haha \zizizi
partition字符分割
1 gx = 'huhahehe' 2 result=gx.partition('ha') #指定ha爲分隔,分割成三段 3 print(result) 4 輸出結果:('hu', 'ha', 'hehe')
format拼接
gx = 'hello' print(gx.find('l')) #查找到元素,返回元素位置,如若查找不到元素,返回-1 print(gx.index('l'))#查找到元素,返回元素位置,如若查找不到元素,報錯 name = '龔旭 {name} is {age}' result = name.format(name='girl',age='19') print(result)
isalnum判斷值是否由數字和字母或純數字或純字母組
gx = '12gg''xixi''111' print(gx.isalnum())
isalpha判斷值是否由字母組成
gx = 'gg' print(gx.isalpha())
isdecimal判斷值是否爲十進制
gx = '55555' print(gx.isdecimal())
isdigit 判斷輸入爲整型(整數)數字
number="11" result=number.isdigit() print(result)
maketrans對應關係替換
gx = "what's your name" table = str.maketrans("name","1234") #name長度必須和1234相同 print(gx.translate(table))
zfill填充
gx = "123" print(gx.zfill(10)) #不夠的位數用0填充
join拼接
li = ["wo","shi"] result = "_".join(li) print(result)
relpace轉換
gx = "ggxxis" # result = gx.replace("g","x",1) #g轉換成x範圍:前1個,不加數字表示轉換所有 # print(result)
swapcase小寫轉大寫
name = 'gongxu' result =name.swapcase() print(result)
if循環
name = input("yougr name:") #交互 sex = input("youe sex:") if sex == "girl": #判斷語句1 print("登陸成功") elif sex == "woman": #判斷語句2 print("恭喜你,成功") else: #執行語句 print('輸入錯誤')
多層for循環
for i in range(1,10): for j in range(i,i+1): print(i,j)
while循環三次錯誤退出
gongxu = 22 count = 0 #計數器 while count <3: i = int(input("年齡:")) if i == gongxu: print("輸入成功") break #跳出全部循環 elif i > gongxu: print("輸入失敗") count+=1 #計算器失敗一次加一次,總共三次機會 else: print("輸入錯誤")
多行定義
name = str(input('Name:')) age = int(input('Age')) job = str(input('Job')) hobbie = int(input('Hobbie')) info = ''' ---------info of %s--------- Name:%s Age:%s Job:%s Hobbie:%s ---------end---------------- '''%(name,name,age,job,hobbie) #傳參 print(info)
列表循環
names = ["gx","zb","lt","hy"] for i in names: print(i) names = ["gx","zb","lt","hy"] for i,j in enumerate(names): #enumerate列舉 print(i,j) 輸出結果:0 gx 1 zb 2 lt 3 hy