您好,登錄后才能下訂單哦!
#python復習筆記
<font color=blue>##基礎</font>
<pre>
1.下劃線(_)在解釋器中有特別的含義,表示最后一個表達式的值。
<pre>
Microsoft Windows [版本 6.1.7601]
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
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()函數
<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.列表解析
[運算式 參數列表 判斷條件]
<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.實用的內建函數
<pre>
dir([obj]) 顯示對象的屬性,如果沒有提供參數,則顯示全局變量的名字。
help([obj]) 以一種整齊美觀的形式,顯示對象的文檔字符串,如果沒有
提供任何參數,則會進入交互式幫助。
int(obj) 將一個對象轉換為整型
len(obj) 返回對象的長度
open(fn,mode) 以mode('r'=讀,'w'=寫,'a'=追加)的方式打開一個文件名
為fn的文件。
range([[start,] stop[,step]])返回一個整型列表。起始值為start,
結束值為stop-1,start默認值為0,step默認值為1
raw_input(str)等待用戶輸入一個字符串,可以提供一個可選的參數
str用作提示信息。
str(obj) 將一個對象轉換為字符串
type(obj) 返回對象的類型(返回值本身是一個type對象)
</pre>
</pre>
##語句和語法
<pre>
1.井號(#)表示之后的字符為python注釋
2.換行(\n)是標準的行分隔符(通常一個語句一行)
3.反斜線()繼續上一行
<pre>
有兩種例外情況一個語句不使用反斜線也可以跨行。在使用閉合操作符時,
單一語句可以跨多行。
例如:在含有小括號、中括號、花括號時可以多行書寫。
另外就是三引號包括下的字符串也可以跨行書寫。
</pre>
4.分號(;)將兩個語句連接在一行中
5.冒號(:)將代碼塊的頭和體分開
6.語句(代碼塊)用縮進塊的方式體現
7.不同的縮進深度分隔不同的代碼塊
8.python文件以模塊的形式組織。
</pre>
##變量和內存管理
<pre>
<pre>
1.變量無需事先聲明
2.變量無需指定類型
3.程序員不用關心內存管理
4.變量名會被"回收"
5.del語句能夠直接釋放資源
</pre>
<pre>
變量定義,變量生命可以在代碼塊的中間,不過仍然必須在變量
被使用前聲明變量的名字和類型。
在Python中,無需此類顯式變量聲明語句,變量在第一次被賦值時自動聲明。
和其他大多數語言一樣,變量只有被創建和賦值后才能被使用。
</pre>
del語句
<pre>
del語句會刪除對象的一個引用,它的語法如下:
del obj1[,obj2[,...objN]]
del會刪除當前對象的引用,將引用計數器減1,如果引用計數器為0
則會導致該對象從此無法訪問或無法抵達,從此刻起,該對象就成為垃圾回收機制的回收對象。
注意任何追蹤或調試程序會給一個對象增加一個額外的引用,這會推遲
該對象被回收的時間。
</pre>
垃圾收集
<pre>
不再使用的內存會被一種稱為垃圾收集的機制釋放。雖然解釋器跟蹤對象
的引用計數,但垃圾收集器負責釋放內存。垃圾收集器是一塊獨立代碼,
它用來尋找引用計數為0的對象。它也負責檢查那些雖然引用計數大于0
但也應該被銷毀的對象。特定情形會導致循環引用。
一個循環引用發生在當你有至少兩個對象互相引用時,也就是說所有
的引用都消失時,這些引用仍然存在,這說明只靠引用計數是不夠的。
python的垃圾收集器實際上是一個引用計數器和一個循環垃圾收集器。
當一個對象的引用計數變為0,解釋器會暫停,釋放掉這個對象和僅有這個對象可訪問(可到達)的其他對象。作為引用計數的補充,垃圾收集器也會
留心被分配的總量很大的(及未通過引用計數銷毀的那些)對象。
在這種情況下,解釋器會暫停下來,試圖清理所有未引用的循環。
</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作為索引值,這樣一來就可以滿足你的需要,比如說,在你
想用一個變量作為索引來從第一個到遍歷最后一個元素的時候。
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
可變對象的內建函數extend()根本沒有返回值,所以這個方法是行不通的。
這個錯誤發生的原因是[None].extend(...)函數返回None,None既不是
序列類型也不是可迭代對象。
在這種情況下使用上面提到的列表連接操作來實現是唯一不需要添加額外
代碼的方法。
</pre>
</pre>
##字符串內建函數
<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>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。