Python知識摘要
一、python簡介
1、Python簡介
Python是一種解釋型、互動式、物件導向、初學者的語言。
2、python特點
①易於學習
②易於閱讀
③易於維護
④一個廣泛的標準庫
⑤模式。
⑨GUI程式設計
⑩可擴充性
3、python支援tab補全功能:
>>> import readline,rlcompleter
>>> readline.parse_and_bind('tab: complete') 可以寫上兩句入一個py文件,直接import即可
ipython要想保存命令歷史,必須安裝sqlite-devel
4、python安裝
#tar -jxvf Python-3.4.3.tar.bz2
#cd Python3. 4.3
#./configure [--PRefix=/usr/local/python3]
#make && make install
注意:①python為系統依賴包,只能更新,不能刪除,而且yyum的版本必須和python配套,升級python之後,必須給yum指定使用低版本的。對應操作如下:
#mv /usr/bin/python /usr/bin/python-2.6.bak 備份
#ln -s /usr/local/bin/python3.4 /usr/bin/python 建立軟連接
#python –V 執行版本掃描
②修改yum配置文件,使其正常工作
#vim /usr/bin/yum
將其中的/usr/bin/python修改為/usr/bin/pyon2 .6
③如果上述設定完畢還有報錯,記得修改環境變數
#vim /etc/profile
5、python運行腳本
5.1、執行方式
①在python3.0以上版本中,print變成了函數。所以必須使用print()格式執行,而以前版本不用括號
>>> print('hello man')
②在互動模式下使用python時注意:只能夠輸入python指令;在腳本中列印語句是必須的,而在互動腳本中可以自動列印表達式效果,不需要輸入完成的列印語句
>>> print (2**10)
③在互動模式下,需要執行符合語句,需要加入" :",代表語句沒有執行完畢。而且必須用一個空白行來代表結束符合語句
>>> for i in range(4):
... print(i)
...
0
1
2
0
1
2
3
1
2
3
1
2
3
1
2
4
④要保證縮進統一,否則出錯
4④要保證縮進統一,否則出錯5.3、python腳本運行①bash bang介紹#!/usr/bin/python這種格式,不容易出現python校本不能執行的問題)
二、python程式設計
1、變數的定義
1.1、變數的命名規則
①變數只能用字母和下變數劃名)開頭
②變數名稱可以由字母、數字和底線組成
③變數名稱大小寫敏感,入lamp和LAMP不是同一個變數名稱
1.2、變數的賦值
①賦值運算子變數值
②給變數賦值字串,需要用引號將字串包含,否則報錯
>>> name = wdd
Traceback (most recent call last):
File "
NameError: name 'wdd' is not defined
③增量賦值
>>> x = 1
>>> x = x+1
>>> x = 1>>> x = x+1④多重賦值>>> x=y=z=2>>> x2>>> y2
> ⑤"多元賦值"
>>> x,y,z=1,2,3
>>> x
1
>>>> y
2
2、數據類型2.1、數值型①整形>>> 123+32144②浮點型>>> 3.14*39.422.2、字符串型①字串定義>>> name = 'wdd'>>>name'wdd'>>> print(name)wdd>>> print(name)wdd🎜🎜>>> print(name)🎜🎜wdd🎜🎜>> print(name)>串支持的方法幫助🎜
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__' '__gt__'、'__hash__'、'__init__'、'__le__'、'__len__'、'__lt__'、'__mod__'、'__mul__'、'__ne__'、'__new__'、'__reduce__'、'__reduce_ex__'、'__repr__ ', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', '大寫', 'center', 'count', '解碼', '編碼'、'endswith'、'expandtabs'、'查找'、'格式'、'索引'、'isalnum'、'isalpha'、'isdigit'、'islower'、'isspace'、'istitle'、'isupper ', '加入', 'ljust', '降低', 'lstrip', '分區', '替換', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> name.replace('wdd',' shuaige') #把wdd替換為shuaige
'shuaige'
>>>>> name.replace('w','cool') 把w替換為cool
'cooldd'
>替換為cool
'cooldd'
>替換為cool
'cooldd'
>替換為cool
'cooldd'
help(name.replace) #查看具體的方法幫助②字串中單雙引號在字串中單雙引號一致,用於包含字串>>>> persion = '姓名','身高'>>>>>個人('姓名', '身高')>> info="I'm a good man" #在雙引號引號單引號,不用轉義符 >>>>> info
「我是個好男人」
>>>>> print(info)
我是個好人
③在字串中調用特殊字元
如果使用特殊轉義符,導致特殊字元字符失去意義,系統中特殊字元的轉義字元如下:
轉符義 保留反斜線 , b 退格 換行
t 等級制表符
v 中使用白
>>>> name #直接輸出變數name,轉義無法辨識'mytnametistjack'> >>>> print(name) #呼叫print函數,可以正常使用我的名字 是 jack④raw轉義符抑制在某些特定情況下可能不需要使用轉義符,如在windows使用系統檔案 >>>>>路徑= 'c:newtext.txt'>>> print(path)c:ew ext.txt path#導致指令失敗>>>>> path = r'c:newtext.txt'>>>> print(path) #使用raw字串關閉轉義機制c:newtext.txt⑥三重引號寫的多行字串>>>>> info = """我的名字是...傑克,我是一個誠實的...男人""">>>> > info #直接呼叫指標不能正確顯示「我的名字是傑克,我是一個誠實的人」>>>>> print(info) #需要使用print函數顯示我的名字是 jack,我是一個誠實的人注意:不要跟註解搞混,註解沒有賦值⑦、字串的序列運算
變數中的值在索引中0保存第一個值,1保存第二個值
>>> name = 'jack'
>>> len(name)
4
>>> name[0]
'j'
>>> name[1]
'a'
>>>name[2]
'a'
>>>name[2]
'a'
>>>name[2]
'c'name
'name> name [3]'k'索引也可以反向索引,就是-1代表最後一個值,-2代表倒數第二個值>>> name[-1]'k' >>> name[-2]'c'字串也支援分片操作,就是取出變數中的一部分內容>>> name[1:3]'ac' #取出變數中第一位到第三位結束(不包含第四位)的內容>>> name[2:4]'ck'>>> name[1:] #取出變數從第一位到變數結束'ack'>>> name[:2] #取出變數從開頭·到第一位結束(不包含第二位)'ja'3、列表列表也是序列的一種,支援對序列的所有操作。列表於數組有些類似,但比數組強大得多。清單沒有資料類型的限制,可以在一個清單中定義不同類型的物件。另外列表沒有固定的大小,可以依照需要增加和減少列表的大小。且列表中的值是可以改變的。 1、列表操作表的定義>>> info = ['jack','22','M']>>> info['jack', '22', 'M '] #此列表中的值既有字串也有整數>>> len(info) #查看列表長度列表的序列操作>>> info[0] #取出列表值第一位'jack'>>> info[:-1] #從列表開頭取值到倒數第二位(不包含倒數第一位)['jack', '22']>> > info[0:] #從列表開頭取到最後一位['jack', '22', 'M']表的特殊方法列表中的值是可以改變的,並且列表的大小也是可以改變的>>> info = ['jack','22','M']>>> info[0]='mark' #改變清單中0的值>>> info['mark', '22', 'M']>>> help(info) #查看清單可以使用的方法>>> info.append('American') #追加> >> info['mark', '22', 'M', 'American']>>> info.pop(1) #刪除第一位的值'22'>>> info['mark', 'M', 'American']>>> info.insert(1,22) #在第一位插入新值22>>> info['mark' , 22, 'M', 'American']>>> digit=[1,3,2,5,4]>>> digit[1, 3, 2, 5, 4] >>> digit.sort() #排序>>> digit[1, 2, 3, 4, 5]>>> digit.reverse() #進行序列翻轉>>> digit.reverse() #進行序列翻轉>>> digit>>
[5, 4, 3, 2, 1]2、列表嵌套列表有一個特性,支持任意的嵌套、能夠以任意的組合對其進行嵌套,並可以多個層次進行嵌套。這個特性可以實現資料矩陣,或是多維數組>>> m=[[1,2,3],[4,5,6],[7,8,9]]>>> m [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> m[1][2]6>>> m[1][ 2]=10 #查看第二個子清單中的第三個值>>> m[1][2] #改變第二個子清單中的第三個值 104、元群組(tuple)元組可以看成是一個不可改變的列表,元組也可以支援序列操作。可以方便地儲存與提取一組值>>> information=('lusi',18,'F')>>> information('lusi', 18, 'F')>>> > information[0] #提取第一個值'lusi'>>> information[1] #提取第二個值18🎜🎜注意:元組中的值不能改變,只能給整個值元組重新賦值(字串也不能改變值,只能重新定義)🎜🎜>>> id(information)🎜🎜3073641204L #元組中的記憶體ID號碼🎜🎜>>> information=("sdf"," ahlk",67)🎜>>> info=(1,2,3) #重新賦值元組之後,ID號會改變,代表是新的元組出現
>>> id(info)
3074861852L
>> a=(1,) #定義只有一個元素的元組時,需要加逗號,否則會被辨識為整形
>>> type(a)
>>> b= (1)
print print(
>>> print(type(b))
>>> t=(1,2,3) #可以#把元組中的值賦予多個變數(像變數的多元賦值)
>>> t
(1, 2, 3)
>>> a,b,c=t
>>> a
1
>>> b
2
>>> c
3
5、字典
寫成在{}中,以字典鍵:
5、字典值」的方式進行字典值。對保存,適合保存二維數據,字典的值也可以改變。>>> info={"name":"jack","age":20,"sex":"M"} #定義字典
>>> info #查看字典
{'age': 20, 'name': 'jack', 'sex': 'M'}
>>> info['name'] #查看字典某一個鍵的值
'jack'
>>> info['country' ]='American' #在字典中加入新的"鍵:值"
>>> info
{'country': 'American', 'age': 20, 'name': 'jack', 'sex ': 'M'}
②字典中鍵的排序
字典的順序並不可靠,也就是我們建立字典時的順序和我們輸出字典時的順序不一定一致
>>> info={" name":"jack","age":20,"sex":"M"}
>>> info #字典輸出的順序不一定
{'age': 20, 'name': 'jack ', 'sex': 'M'}
>>> for key in sorted(info): #for循環,info中有幾個值,循環數次
... print(key, 'is', info[key]) #sorted函數將info變成列表,並用sort排序,然後用for循環輸出,注意縮排
...
('age', 'is', 20)
('name ', 'is', 'jack')
('sex', 'is', 'M')
6、檔案型
檔案類型是python對電腦上外部檔案的主要介面。如果要建立有一個檔案對象,需要呼叫內建的open函數,以字串的形式傳遞給它一個外部的檔案名稱和一個處理模式的字串。
>>> f = open('test','w')
#使用open函數,定義檔案名稱和處理模式,會在linux目前目錄中建立該檔案
支援的模式:
'r'預設以讀取形式開啟
'w' 首先清除檔案在開啟進行寫入
'x' 建立一個新檔案並且開啟他進行寫入
'a' 開啟寫入,追加到一個存在的檔案結尾
>>> dir(f) #查看該物件支援的方法
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__hash__', '__hash__' '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encodinged', 'encoding ', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']
>>> f.write('my name is jackn') #透過write方法向文件中寫入資料
>>> f.write('my age is 22n')
>>> f.close() #關閉對檔案的寫入操作
>>> f.close()
>
>>> f.close()
> >> t = open('test.txt', 'r') #使用r處理模式,開啟檔案
>>> test = t.read() #賦予變數
>>> test #直接呼叫變數不能正確查看內容
🎜'my name is jacknmy age is 22n'🎜>>> print(test) #使用print函數顯示內容
my name is jack
my age is 22
7、布林值
就是判斷表達式是否為真
7、布林值
就是判斷表達式是否為真
False
>>> 1
True
>>> 1 > 2
False
>>>> 1
False
>>>> 1
False
>類型>>>> 1 = 'jack'
>>> age = 20>>> type(name)>>> type(age)
> > age = '18' #加入引號,變成字串
>>> type(age)
9、python的註解
①# 註解一句話
②'' '
內容 #註釋一段內容
'''
10、模組
每一個義擴展名py結尾的python源碼檔案都是一個模組,其它腳本可以透過導入這個模組,使用整個模組中的所有模組的內容。模組中國可以包含函數和其他的腳本內容。
模組的搜尋路徑
模組的搜索,先搜尋本地位置,再按照sys.path的環境變數搜尋
導入模組時,不需要寫字後綴名
>>> import myhello
🟎需要把自己儲存腳本的路徑加入python的path路徑,否則無法正確導入# cd /usr/local/python27/lib/python2.7/site-packages/# vim my.pth/root #把自己的python腳本目錄放入此目錄以.Pth結尾取幫助>>> help('modules')#查詢系統支援的所有模組,包含系統內建模組和使用者導入模組>>>> help('sys') #查看模組具體幫助>>> import math #引入數學計算模組>>> dir(math) #查看此模組支援的函數>>> help(math) #查看此模組具體的註解>>> help(math.sin) #檢視此模組中函數的註解>>> math.pi #呼叫模組中一個函數3.1415926535897933.141592653589793 import 模組import 模組名as 新名 #給模組取一個別名from 模組名稱import 變數名稱Reload模組導入的模組在python中是直接運作的,但是導入耗費資源,所以只能比較導入資源,所以只能比較導入耗費資源,所以只能比較導入費資源執行一次(除非退出重新進入會話)如果想要重複導入模組並執行,需要使用reload>>> import imp #在python中,reload不再是內建函數,所以必須導入>>>> imp.reload(myhello) #在模組中,呼叫reload函數或>>> from imp import reload #從模組匯入reload函數>>> reload(myhello)🎜reload函數🎜🎜>>> reload(myhello)🎜🎜hello ' myhello' from 'myhello.pyc'>🎜🎜Python知識總結🎜