Python基礎

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

      PyPy  是一個不少地方都和CPython很像的實現,可是這個解釋器自己就是由Python寫成。也就是說開發者們用Python寫了一個Python解釋器。然而這個解釋器的代碼先轉化成C,而後在編譯。PyPy被認爲要比CPython性能更好。由於CPython會把代碼轉化成字節碼,PyPy會把代碼轉化成機器碼。

     Psyco

    Psyco 是一個相似PyPy,可是很好的解釋器。如今已經被PyPy取代了,有可能的話,使用PyPy來代替Psyco。

    Jython

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,也可使用命令行來寫交互式程序。  

     ronPython

IronPython 是使用C#語言實現,可使用在.NET 和 Mono 平臺的解釋器。IronPython 是兼容 Silverlight 的,配合Gestalt 就能夠直接在瀏覽器中執行。IronPython也是兼容Python2的。

tip: Mono 是提供.NET-compatible 工具的開源框架。

安裝Python 3.5

目前,Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不兼容的。因爲3.x版愈來愈普及,咱們的教程將以最新的Python 3.5版本爲基礎。

在Windows上安裝Python

一、首先訪問http://www.python.org/download/去下載最新的python版本。

首先,根據你的Windows版本(64位仍是32位)從Python的官方網站下載Python 3.5對應的64位安裝程序32位安裝程序而後,運行下載的EXE安裝包:

install-py35

特別要注意勾上Add Python 3.5 to PATH,而後點「Install Now」便可完成安裝。

運行Python

安裝成功後,打開命令提示符窗口,敲入python後,會出現兩種狀況:

狀況一:

run-py3-win

看到上面的畫面,就說明Python安裝成功!

你看到提示符>>>就表示咱們已經在Python交互式環境中了,能夠輸入任何Python代碼,回車後會馬上獲得執行結果。如今,輸入exit()並回車,就能夠退出Python交互式環境(直接關掉命令行窗口也能夠)。

狀況二:獲得一個錯誤:

‘python’ 不是內部或外部命令,也不是可運行的程序或批處理文件。

python-not-found

這是由於Windows會根據一個Path的環境變量設定的路徑去查找python.exe,若是沒找到,就會報錯。若是在安裝時漏掉了勾選Add Python 3.5 to PATH,那就要手動把python.exe所在的路徑添加到Path中。

若是你不知道怎麼修改環境變量,建議把Python安裝程序從新運行一遍,務必記得勾上Add Python 3.5 to PATH

文本編譯器  

 PyCharm 

        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      字節碼

文件類型

        

 

Linux安裝

看python默認版本, 若是是2版本就更改成3版本
 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                   #顯示安裝版本
Linux安裝python

交互                

1 >>>print (name)                     #輸出
2 >>>name = input("nanna:")              #輸入,顯示交互
3 >>>import getpass               #調用模塊
4 >>>pqqq = getpass.getpass("請輸入密碼")     #輸入,不顯示交換,須要調用變量import getpass)
交互

快捷鍵操做

  • 註釋多行      先標記多行 再 Ctrl +/ 
  • 查看源碼      ctrl + 鼠標左鍵點擊命令
  • 列模式         alt +鼠標左鍵

結束符號

  • break              結束 跳出全部循環
  • continue          結束當前循環繼續下一次循環,針對for循環
  • pass                python站位 沒有就會語法錯誤
  • return             終止 針對函數,
  • exit                返回編號含蓄 如 exit(0...)
  • continue        跳出本次循環,執行下一次循環

變量聲明要求

  1. 變量只能用.字母,數字,下劃線任意組合,且變量開頭不能是數字
  2. 關鍵字不能爲變量
  • 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']

數據類型

 

數字

 int          整型 

  • 32位系統 -2**31~~2**31-1    即-2147483648~2147483647
  • 64位系統 -2**63~~2**63-1    即-9223372036854775808~9223372036854775807
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 以此類推
整型

Long     長整型 pytyon3沒有

 

Float     浮點數 1個浮點數佔8字節(64位) 浮點數:帶有小數的整數)

 

布爾   (判斷真或假 )

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
布爾值

字符串

索引        name[2]

1 >>> name
2 [11, 'ad', 33]
3 >>> name[2]
4 33
索引

元組

元組的權限count和index    a = ('a',1) 
  • count統計元素出現的次數
  • index 查找字符串(查找不到報錯)
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循環

  • 格式:
  •      if 條件:
                    ...   條件語句
         elif 條件:
                    ...    條件語句
         else:
                    ...   執行語句

交換判斷

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,答對了")
猜年齡遊戲

for循環

 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!")
for循環加if
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)
多層for循環

while循環

死循環 

1 判斷輸入爲數字 則跳槽,不然進行下一次循環
2 while True: #當條件爲真 則:
3 salary = input("Your salary:") #交互
4 if salary.isdigit(): #判斷爲整數,則執行以下操做
5 salary = int(salary) #格式化數字
6 break #跳出全部循環
7 全部循環 else:
8 continue #跳出當此循環,進行下一次循環
While True
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")
break用於徹底結束一個循環,跳出循環體執行循環後面的語句

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 ------")
while...else...

第一個程序

Strip移除空白

1 gx='   abc    '
2 print(gx.strip())    #去掉左右空格
3 print(gx.rstrip())   #去掉右空格
4 print(gx.lstrip())   #去掉左空格
sptrip 移除空白

Split分割

1 user="gongxu|123|5"
2 i=user.split("|")     #以|分隔,後邊跟上1就是從左邊第一個開始分隔
3 i=user.split("|",1)   #分隔第一個,從右2邊開始
4 print(i)
split分隔

len長度

1 #獲取number的長度
2 number = ("abc",123)
3 print(len(number))
4 number1 = ("123456")
5 print(len(number1))
len長度

切片[]

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                    
相關文章
相關標籤/搜索