溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python復(fù)習(xí)筆記

發(fā)布時(shí)間:2020-09-14 20:44:37 來源:網(wǎng)絡(luò) 閱讀:549 作者:phize 欄目:編程語言

#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í)候。

In [57]: for i in [None].extend(range(-1,-len(s),-1)):
...: print s[:i]
...:

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>

  1. string.capitalize() 把字符串的第一個(gè)字符大寫
  2. string.center(width) 返回一個(gè)原字符串居中,并使用空格填充
    至長度width的新字符串
  3. string.count(str,beg=0,end=len(string)) 返回str在string
    里面出現(xiàn)的次數(shù),如果beg或者end指定則返回指定范圍內(nèi)str出現(xiàn)的次數(shù)
  4. string.decode(encoding='UTF-8' errors='strict')
    以decoding指定的編碼格式解碼string,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError的異常,
    除非errors指定的是'ignore'或者'replace'
  5. string.encode(encoding='UTF-8',errors='strict')
    以encoding指定的編碼格式編碼string,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError的異常,
    除非errors指定的是'ignore'或者'replace'
  6. string.endswith(obj,beg=0,end=len(string))
    檢查字符串是否是以obj結(jié)束,如果beg或者end指定則檢查指定的范圍
    內(nèi)是否以obj結(jié)束,如果是,返回True,否則返回False.
  7. string.expandtabs(tabsize=8) 把字符串string中的tab符號
    轉(zhuǎn)換為空格,默認(rèn)的空格數(shù)tabsize是8
  8. string.find(str,beg=0,end=len(string)) 檢測str是否包含
    在string中,如果beg和end指定范圍,則檢查是否包含在指定范圍內(nèi),
    如果是返回開始的索引值,否則返回-1
  9. string.index(str,beg=0,end=len(string)) 跟find()方法一樣,
    只不過如果str不在string中會報(bào)一個(gè)異常。
  10. string.isalnum() 如果string至少有一個(gè)字符并且所有字符
    都是字母或數(shù)字則返回True,否則返回False
  11. string.isalpha() 如果string至少有一個(gè)字符并且所有字符
    都是字母則返回True,否則返回False
  12. string.isdecimal() 如果string只包含十進(jìn)制數(shù)字則返回True
    否則返回False
  13. string.isdigit() 如果string只包含數(shù)字則返回True,否則返回False
  14. string.islower() 如果string中包含至少一個(gè)區(qū)分大小寫的字
    符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回True,否則返回False。
  15. string.isnumeric() 如果string中只包含數(shù)字字符,則返回True
    否則返回False
  16. string.isspace() 如果string中只包含空格,則返回True,
    否則返回False
  17. string.istitle() 如果string是標(biāo)題化的(見title())則
    返回True,否則返回False
  18. string.isupper() 如果string中包含至少一個(gè)區(qū)分大小寫的
    字符,并且所有這些(區(qū)分大小寫的)字符都是大寫,則返回True,否則返回False
  19. string.join(seq) 以string作為分隔符,將seq中所有的元素
    (字符串表示)合并為一個(gè)新的字符串
  20. stirng.ljust(width) 返回一個(gè)原字符串左對齊,并使用空格
    填充至長度width的新字符串
  21. string.lower() 轉(zhuǎn)換string中所有大寫字符為小寫
  22. string.lstrip() 截掉string左邊的空格
  23. string.partition(str) 有點(diǎn)像find()和split()的結(jié)合體
    ,從str出現(xiàn)的第一個(gè)位置起,把字符串string分成一個(gè)3元組(string_pre_str,str,string_post_str),
    如果string中不包含str則string_pre_str = string
  24. string.replace(str1,str2,num=string.count(str1))
    把string中的str1替換成str2,如果num指定,則替換不超過num次
  25. string.rfind(str,beg=0,end=len(string)) 類似于
    find()函數(shù),不過是從右邊開始查找。
  26. string.rindex(str,beg=0,end=len(string)) 類似于index()
    不過是從右邊開始。
  27. string.rjust(width) 返回一個(gè)原字符串右對齊,并使用
    空格填充至長度width的新字符串
  28. string.rpartition(str) 類似于partition()函數(shù),不過
    是從右邊開始查找。
  29. string.rstrip() 刪除string字符串末尾的空格。
  30. string.split(str="",num=string.count(str))
    以str為分隔符切片string,如果num有指定值,則僅分隔num個(gè)子字符串
  31. string.splitlines(num=string.count('\n')) 按照行分隔,
    返回一個(gè)包含各行作為元素的列表,如果num指定則僅切片num行。
  32. string.startswith(obj,beg=0,end=len(string))
    檢查字符串是否是以obj開頭,是則返回True,否則返回False
    如果beg和end指定值,則在指定范圍內(nèi)檢查
  33. string.strip([obj]) 在string上執(zhí)行l(wèi)strip()和rstrip()
  34. string.swapcase() 翻轉(zhuǎn)string中的大小寫
  35. string.title() 返回“標(biāo)題化”的string,就是說所有單詞都是
    以大寫開始,其余字母均為小寫(見istitle())
  36. string.translate(str,del="") 根據(jù)str給出的表(包含256個(gè)字符)
    轉(zhuǎn)換string的字符,要過濾掉的字符放到del參數(shù)中
  37. string.upper() 轉(zhuǎn)換string中的小寫字母為大寫
  38. string.zfill(width) 返回長度為width的字符串,原字符串string
    右對齊,前面填充0
    <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>

  1. s.issubset(t) 如果s是t的子集,則返回True,否則返回False
  2. s.issuperset(t) 如果t是s的超集,則返回True,否則返回False
  3. s.union(t) 返回一個(gè)新集合,該集合是s和t的并集
  4. s.intersection(t) 返回一個(gè)新集合,該集合是s和t的交集
  5. s.difference(t) 返回一個(gè)新集合,該集合是s的成員,但不是t的成員
  6. s.symmetric_difference(t) 返回一個(gè)新集合,該集合是s或t的成員,但不是s和t共有的成員
  7. s.copy() 返回一個(gè)新集合,它是集合s的淺復(fù)制
    </pre>
    方法,僅適用于可變集合
    <pre>
  8. s.update(t) 用t中的元素修改s,即,s現(xiàn)在包含s或t的成員
  9. s.intersection_update(t) s中的成員是共同屬于s和t的元素
  10. s.difference_update(t) s中的成員是屬于s但不包含在t中的元素
  11. s.symmetric_differece_update(t) s中的成員更新為那些包含在s或t中,但不是s和t共有的元素
  12. s.add(obj) 在集合s中添加對象obj
  13. s.remove(obj) 從集合s中刪除對象obj;如果obj不是集合s中的元素(obj not in s) 將引發(fā)KeyError錯(cuò)誤
  14. s.discard(obj) 如果obj是集合s中的元素,從集合s中刪除對象obj
  15. s.pop() 刪除集合s中的任意一個(gè)對象,并返回它
  16. s.clear() 刪除集合s中的所有元素
    </pre>
    </pre>
向AI問一下細(xì)節(jié)

免責(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)容。

AI