您好,登錄后才能下訂單哦!
#python復(fù)習(xí)筆記
<font color=blue>##基礎(chǔ)</font>
<pre>
1.下劃線(_)在解釋器中有特別的含義,表示最后一個(gè)表達(dá)式的值。
<pre>
Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。
C:\Users\Administrator>python
Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on
n32
Type "help", "copyright", "credits" or "license" for more information.
print "hello world"
hello world
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '' is not defined
mystring = "hello world"
print mystring
hello world
mystring
'hello world'<font color=red>
_
'hello world'</font></pre>
2.print語句也支持將輸出重定向到文件。符號>>用來定向輸出
<pre>
import sys
print >> sys.stderr, 'Fatal error: invalid input!'
Fatal error: invalid input!
print >> sys.stderr,'Fatal error: invalid input!'
Fatal error: invalid input!<font color=red>
logfile = open('D:/python_code/mylog.txt','a')
print >> logfile,'Fatal error: invalid input!'
logfile.close()</font>
</pre>
3.enumerate()函數(shù)
<pre>
In [4]: foo = 'abc'
In [5]: for i in range(len(foo)):
...: print foo[i],'(%d)'%i
...:
a (0)
b (1)
c (2)
In [6]: for i,ch in enumerate(foo):
...: print ch,'(%d)'%i
...:
a (0)
b (1)
c (2)
In [7]:
</pre>
4.列表解析
[運(yùn)算式 參數(shù)列表 判斷條件]
<pre>
In [7]: squared = [x**2 for x in range(4)]
In [8]: squared
Out[8]: [0, 1, 4, 9]
In [9]: sqdEvens = [x**2 for x in range(8) if not x%2]
In [10]: sqdEvens
Out[10]: [0, 4, 16, 36]
In [11]: sum = [x+y for x in range(3) for y in range(3) if x!=y]
In [12]: sum
Out[12]: [1, 2, 1, 3, 2, 3]
In [13]: sum2 = [x*y for x in range(3) for y in range(3) if x!=y]
In [14]: sum2
Out[14]: [0, 0, 0, 2, 0, 2]
</pre>
5.實(shí)用的內(nèi)建函數(shù)
<pre>
dir([obj]) 顯示對象的屬性,如果沒有提供參數(shù),則顯示全局變量的名字。
help([obj]) 以一種整齊美觀的形式,顯示對象的文檔字符串,如果沒有
提供任何參數(shù),則會進(jìn)入交互式幫助。
int(obj) 將一個(gè)對象轉(zhuǎn)換為整型
len(obj) 返回對象的長度
open(fn,mode) 以mode('r'=讀,'w'=寫,'a'=追加)的方式打開一個(gè)文件名
為fn的文件。
range([[start,] stop[,step]])返回一個(gè)整型列表。起始值為start,
結(jié)束值為stop-1,start默認(rèn)值為0,step默認(rèn)值為1
raw_input(str)等待用戶輸入一個(gè)字符串,可以提供一個(gè)可選的參數(shù)
str用作提示信息。
str(obj) 將一個(gè)對象轉(zhuǎn)換為字符串
type(obj) 返回對象的類型(返回值本身是一個(gè)type對象)
</pre>
</pre>
##語句和語法
<pre>
1.井號(#)表示之后的字符為python注釋
2.換行(\n)是標(biāo)準(zhǔn)的行分隔符(通常一個(gè)語句一行)
3.反斜線()繼續(xù)上一行
<pre>
有兩種例外情況一個(gè)語句不使用反斜線也可以跨行。在使用閉合操作符時(shí),
單一語句可以跨多行。
例如:在含有小括號、中括號、花括號時(shí)可以多行書寫。
另外就是三引號包括下的字符串也可以跨行書寫。
</pre>
4.分號(;)將兩個(gè)語句連接在一行中
5.冒號(:)將代碼塊的頭和體分開
6.語句(代碼塊)用縮進(jìn)塊的方式體現(xiàn)
7.不同的縮進(jìn)深度分隔不同的代碼塊
8.python文件以模塊的形式組織。
</pre>
##變量和內(nèi)存管理
<pre>
<pre>
1.變量無需事先聲明
2.變量無需指定類型
3.程序員不用關(guān)心內(nèi)存管理
4.變量名會被"回收"
5.del語句能夠直接釋放資源
</pre>
<pre>
變量定義,變量生命可以在代碼塊的中間,不過仍然必須在變量
被使用前聲明變量的名字和類型。
在Python中,無需此類顯式變量聲明語句,變量在第一次被賦值時(shí)自動聲明。
和其他大多數(shù)語言一樣,變量只有被創(chuàng)建和賦值后才能被使用。
</pre>
del語句
<pre>
del語句會刪除對象的一個(gè)引用,它的語法如下:
del obj1[,obj2[,...objN]]
del會刪除當(dāng)前對象的引用,將引用計(jì)數(shù)器減1,如果引用計(jì)數(shù)器為0
則會導(dǎo)致該對象從此無法訪問或無法抵達(dá),從此刻起,該對象就成為垃圾回收機(jī)制的回收對象。
注意任何追蹤或調(diào)試程序會給一個(gè)對象增加一個(gè)額外的引用,這會推遲
該對象被回收的時(shí)間。
</pre>
垃圾收集
<pre>
不再使用的內(nèi)存會被一種稱為垃圾收集的機(jī)制釋放。雖然解釋器跟蹤對象
的引用計(jì)數(shù),但垃圾收集器負(fù)責(zé)釋放內(nèi)存。垃圾收集器是一塊獨(dú)立代碼,
它用來尋找引用計(jì)數(shù)為0的對象。它也負(fù)責(zé)檢查那些雖然引用計(jì)數(shù)大于0
但也應(yīng)該被銷毀的對象。特定情形會導(dǎo)致循環(huán)引用。
一個(gè)循環(huán)引用發(fā)生在當(dāng)你有至少兩個(gè)對象互相引用時(shí),也就是說所有
的引用都消失時(shí),這些引用仍然存在,這說明只靠引用計(jì)數(shù)是不夠的。
python的垃圾收集器實(shí)際上是一個(gè)引用計(jì)數(shù)器和一個(gè)循環(huán)垃圾收集器。
當(dāng)一個(gè)對象的引用計(jì)數(shù)變?yōu)?,解釋器會暫停,釋放掉這個(gè)對象和僅有這個(gè)對象可訪問(可到達(dá))的其他對象。作為引用計(jì)數(shù)的補(bǔ)充,垃圾收集器也會
留心被分配的總量很大的(及未通過引用計(jì)數(shù)銷毀的那些)對象。
在這種情況下,解釋器會暫停下來,試圖清理所有未引用的循環(huán)。
</pre>
</pre>
##序列
<pre>
切片
<pre>
In [52]: s = 'abcde'
In [53]: i = -1
In [54]: for i in range(-1,-len(s),-1):
...: print s[:i]
...:
abcd
abc
ab
a
In [55]: s = 'abcde'
In [56]: for i in [None] + range(-1,-len(s),-1):
...: print s[:i]
...:
abcde
abcd
abc
ab
a
使用None作為索引值,這樣一來就可以滿足你的需要,比如說,在你
想用一個(gè)變量作為索引來從第一個(gè)到遍歷最后一個(gè)元素的時(shí)候。
TypeError Traceback (most recent call last)
<ipython-input-57-e791611ff738> in <module>()
----> 1 for i in [None].extend(range(-1,-len(s),-1)):
2 print s[:i]
3
TypeError: 'NoneType' object is not iterable
可變對象的內(nèi)建函數(shù)extend()根本沒有返回值,所以這個(gè)方法是行不通的。
這個(gè)錯(cuò)誤發(fā)生的原因是[None].extend(...)函數(shù)返回None,None既不是
序列類型也不是可迭代對象。
在這種情況下使用上面提到的列表連接操作來實(shí)現(xiàn)是唯一不需要添加額外
代碼的方法。
</pre>
</pre>
##字符串內(nèi)建函數(shù)
<pre>
In [79]: string1 = "akdsg;lkajsd"
In [80]: import string
In [81]: string.capitalize(string1)
Out[81]: 'Akdsg;lkajsd'
In [82]: string.capitalize(string1)
Out[82]: 'Akdsg;lkajsd'
In [83]:
In [83]: quest = 'what is your favorite color?'
In [84]: quest.capitalize()
Out[84]: 'What is your favorite color?'
In [85]: quest.center(40)
Out[85]: ' what is your favorite color? '
In [86]: quest.count('or')
Out[86]: 2
In [87]: quest.endswith('blue')
Out[87]: False
In [88]: quest.endswith('color?')
Out[88]: True
In [89]: quest.find('or',30)
Out[89]: -1
In [90]: quest.find('or',22)
Out[90]: 25
In [91]: quest.index('or',10)
Out[91]: 16
In [92]: ':'.join(quest.split())
Out[92]: 'what:is:your:favorite:color?'
In [93]: quest.replace('favorite color','quest')
Out[93]: 'what is your quest?'
In [94]: quest.upper()
Out[94]: 'WHAT IS YOUR FAVORITE COLOR?'
In [95]:
</pre>
</pre>
##集合的所有方法
<pre>
方法,所有的集合方法
<pre>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。