摘要:標準庫一譯廖雪峰內(nèi)建函數(shù)內(nèi)建函數(shù)內(nèi)建函數(shù)內(nèi)置類型真值的測試下面的值被視為假任何數(shù)值類型的零,例如,。該對象必須支持如下所述的迭代器協(xié)議。該協(xié)議的意圖是一旦迭代器的方法引發(fā),后續(xù)調(diào)用將繼續(xù)這樣的行為。
Python-標準庫 一譯
http://python.usyiyi.cn廖雪峰
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820066616a77f826d876b46b9ac34cb5f34374f7a000
[TOC]
The Python interpreter has a number of functions built into it that are always available.
內(nèi)建函數(shù) http://python.usyiyi.cn/trans...
內(nèi) | 建 | 函 | 數(shù) | .. |
---|---|---|---|---|
abs() | divmod() | input() | open() | staticmethod() |
all() | enumerate() | int() | ord() | str() |
any() | eval() | isinstance() | pow() | sum() |
basestring() | execfile() | issubclass() | print() | super() |
bin() | file() | iter() | property() | tuple() |
bool() | filter() | len() | range() | type() |
bytearray() | float() | list() | raw_input() | unichr() |
callable() | format() | locals() | reduce() | unicode() |
chr() | frozenset() | long() | reload() | vars() |
classmethod() | getattr() | map() | repr() | xrange() |
cmp() | globals() | max() | reversed() | zip() |
compile() | hasattr() | memoryview() | round() | __import__() |
complex() | hash() | min() | set() | apply() |
delattr() | help() | next() | setattr() | buffer() |
dict() | hex() | object() | slice() | coerce() |
dir() | id() | oct() | sorted() | intern() |
下面的值被視為假:
None False 任何數(shù)值類型的零,例如,0、 0L、0.0、 0j。 任何空的序列,例如, ""、 ()、 []。 任何空的映射,例如,{}。 用戶定義的類的實例,如果該類定義一個__nonzero__()或__len__()的方法,在該方法返回整數(shù)零或布爾值False時。[1]2.2. 布爾操作 — and, or, not
and or not
2.3. 比較操作操作 | 含義 | 注 |
---|---|---|
< | 嚴格地小于 | |
<= | 小于或等于 |
|嚴格地大于|2.4. 數(shù)值類型 — int, float, long, complex
=|大于或等于|
==|等于|
!= or <>|不等于|
is|對象的ID|
is not|不同的對象ID|類的非同一個實例比較時通常不相等,除非該類定義__eq__()或__cmp__()方法。
一個類的實例通常不能與同一個類的其它實例或者其他類型的對象排序,除非該類定義足夠豐富的比較方法(__ge__()、__le__()、__gt__()、__lt__())或__cmp__()方法。
有四種不同的數(shù)值類型:普通整數(shù)、長整數(shù)、浮點數(shù)和復數(shù)。此外,布爾值是普通整數(shù)的一個子類型。普通整數(shù)(或者簡稱整數(shù))使用C中的long實現(xiàn),其精度至少為32位(sys.maxint始終設置為當前平臺最大的普通整數(shù)值,最小值是-sys.maxint - 1)。長整數(shù)具有無限的精度。浮點數(shù)字通常使用C中的double實現(xiàn);有關你的程序所運行的機器上的浮點數(shù)精度及其內(nèi)部表示形式的信息在sys.float_info中可以獲得。復數(shù)有實部和虛部,各是一個浮點數(shù)。若要從復數(shù)z中提取這些部分,請使用z.real和z.imag。(標準庫包括額外的數(shù)值類型,fractions支持有理數(shù),decimal支持用戶自定義精度的浮點數(shù)。)
數(shù)值通過數(shù)字字面值或內(nèi)建的函數(shù)和操作的結(jié)果創(chuàng)建。普通的整數(shù)字面值(包括二進制、十六進制和八進制數(shù)字)產(chǎn)生普通整數(shù),除非它們指定的值太大以致不能用一個普通的整數(shù)表示,在這種情況下它們產(chǎn)生一個長整型。帶有"L"或"l"后綴的整數(shù)字面值產(chǎn)生長整數(shù)(偏向使用"L",因為1l看起來太像十一)。包含小數(shù)點或指數(shù)符號的數(shù)字字面值產(chǎn)生浮點數(shù)。將"j"或"J"附加到數(shù)字字面值的尾部產(chǎn)生實部為零的復數(shù)。復數(shù)字面值是實部和虛部的和。
Python完全支持混合的算法:當二元算術運算符的操作數(shù)是不同的數(shù)值類型時,“較窄”類型的操作數(shù)會拓寬成另外一個操作數(shù)的類型,其中整數(shù)窄于長整數(shù)窄于浮點數(shù)窄于復數(shù)。比較混合型數(shù)字之間使用相同的規(guī)則。[2]構(gòu)造函數(shù)int()、long()、float()和complex()可用于產(chǎn)生的一種特定類型的數(shù)值。
操作 | 含義 | 注 |
---|---|---|
x + y | x與y和 | |
x - y | x與y的差 | |
x * y | x與y的積 | |
x / y | x與y的商 | (1) |
x // y | x與y的(整除)商 | (4)(5) |
x % y | x / y的余數(shù) | (4) |
-x | 負x | |
+x | x保持不變 | |
abs(x) | x的絕對值或大小 | (3) |
int(x) | x轉(zhuǎn)換成整數(shù) | (2) |
long(x) | x轉(zhuǎn)換成長整數(shù) | (2) |
float(x) | x轉(zhuǎn)換成浮點數(shù) | (6) |
complex(re,im) | 實部為re,虛部為im的一個復數(shù)。im默認為零。 | |
c.conjugate() | 復數(shù)c的共軛。(用實數(shù)表示) | |
divmod(x, y) | 元組(x // y, x % y) | (3)(4) |
pow(x, y) | x的y次方 | (3)(7) |
x ** y | x的y次方 | (7) |
注: 1 對于(普通或長)整數(shù)除法,結(jié)果是一個整數(shù)。結(jié)果總是向負無窮舍入:1/2是0,(-1)/2是-1,1/(-2)是-1,(-1)/(-2)是0。請注意如果任何一個操作數(shù)是長整數(shù),結(jié)果都會是一個長整數(shù),與值大小無關。 2 使用int()或long()函數(shù)轉(zhuǎn)換浮點數(shù)會向零截斷,類似相關的函數(shù)math.trunc()函數(shù)。使用函數(shù)math.floor()以向下取整和math.ceil()以向上取整。 3 完整的說明請參閱內(nèi)置函數(shù)。 4 從2.3版開始棄用:整除運算符、取模運算符和divmod()函數(shù)不再為復數(shù)定義。相反,如果合適,可以使用abs()函數(shù)轉(zhuǎn)換為浮點數(shù)。 5 也被稱為整數(shù)除法。結(jié)果是一個整數(shù),但其類型不一定是int型。 6 浮點數(shù)還接受可帶有可選前綴 "+"或"-"的字符串"nan"和"inf"來表示非數(shù)字(NaN))和正/負無窮。 7 在2.6版中新增。 8 Python定義pow(0,0)和0 ** 0為1,這對于編程語言很常見。2.4.1 整數(shù)類型的位操作
按位運算只有對整數(shù)才有意義。負數(shù)被視為它們2的補值(這假定操作過程中有足夠多的位數(shù)而沒有發(fā)生溢出)。
二元位運算的優(yōu)先級都低于數(shù)值操作,但高于比較操作;一元操作~具有和其它的一元數(shù)值操作(+和-)相同的優(yōu)先級。
下表按優(yōu)先級升序排列列出位運算(在同一格中的操作具有相同的優(yōu)先級):
操作 | 含義 | 注 | |
---|---|---|---|
x | y | x和y的按位或 | |
x ^ y | x和y的按位異或 | ||
x & y | x和y的按位與 | ||
x << n | x左移n位 | (1)(2) | |
x >> n | x右移n位 | (1)(3) | |
~x | 反轉(zhuǎn)x的各個位 |
注 負的移位數(shù)目是非法的并導致引發(fā)一個ValueError。 左移n等同于乘以pow(2, n)。如果結(jié)果超過普通整數(shù)的范圍則返回一個長整數(shù)。 右移n位等同于除以pow(2, n)。2.4.2 整數(shù)類型其他方法
long.bit_length()
返回以二進制表示一個整數(shù)必須的位數(shù),不包括符號和前導零:
>>> n = -37 >>> bin(n) "-0b100101" >>> n.bit_length() 62.4.3 浮點數(shù)的其它方法
float.is_integer() : 如果浮點數(shù)實例僅有整數(shù),則返回True,否則返回False
float.hex()
float.fromhex(s)
Python支持容器上迭代的概念。這種實現(xiàn)使用兩種截然不同的方法;它們都用于允許用戶定義的類支持迭代。下面有更多細節(jié)描述的序列始終支持迭代方法。
容器對象需要定義一種方法以支持迭代:
container.__iter__()
返回迭代器對象。該對象必須支持如下所述的迭代器協(xié)議。如果一個容器支持不同類型的迭代,可以提供額外的方法來為這些迭代類型要求特定的迭代器。(對象支持多種迭代形式的一個示例是支持廣度和深度優(yōu)先遍歷的樹結(jié)構(gòu))。此方法對應于Python/C API中Python對象的類型結(jié)構(gòu)的tp_iter 部分。
迭代器對象本身需要支持以下兩種方法,它們組合在一起形成迭代器協(xié)議:
iterator.__iter__()
返回迭代器對象本身。這允許容器和迭代器都可以在for和in語句中使用。此方法對應于Python/C API中Python對象的類型結(jié)構(gòu)的tp_iter slot。
iterator.next()
從容器中返回下一個元素。如果沒有元素,引發(fā)StopIteration異常。此方法對應于Python/C API中Python對象的類型結(jié)構(gòu)的tp_iternext slot。
Python定義了幾個迭代器對象以支持在通用和特定的序列類型、字典以及其他更多特殊形式上的迭代。相比迭代器協(xié)議的實現(xiàn),具體的類型并不重要。
該協(xié)議的意圖是一旦迭代器的next()方法引發(fā)StopIteration,后續(xù)調(diào)用將繼續(xù)這樣的行為。不遵守此性質(zhì)的實現(xiàn)被認為是有問題的。(此約束在Python 2.3中添加;在Python 2.2中,有多個迭代器違背了此規(guī)則)。
2.5.1 生成器類型Python的生成器提供一種方便的方法來實現(xiàn)迭代器協(xié)議。如果容器對象的__iter__()方法實現(xiàn)為一個生成器,它將自動返回一個提供__iter__()和next()方法的迭代器對象(從技術上講,是生成器對象)。生成器的更多信息可以在yield表達式的文檔中找到。
2.6. 序列類型 — str, unicode, list, tuple, bytearray, buffer, xrange其他容器請參閱內(nèi)建的dict和set類,以及collections模塊。
字符串常量寫在單引號或雙引號中:"xyzzy","frobozz"。字符串字面值的更多信息請參閱字符串字面值。Unicode字符串與字符串非常相似,但是使用特殊的語法即一個前導的字符"u"指定:u"abc",u"def"。除了這里描述的功能之外,字符串還有特定的方法在字符串方法一節(jié)中描述。列表使用方括號構(gòu)造,元素以逗號分隔:[a, b, c]。元組通過逗號操作符構(gòu)造(不在方括號中), 帶或者不帶圓括號,但是空元組必須具有圓括號,例如a, b, c或()。單個元素的元組必須含有一個尾部的逗號,例如(d,)。
字節(jié)數(shù)組對象使用內(nèi)置函數(shù)bytearray()來創(chuàng)建。
Python語法不直接支持緩沖區(qū)對象,但可以通過調(diào)用內(nèi)置函數(shù)buffer()創(chuàng)建。它們不支持連接或重復。
xrange類型的對象類似于緩沖區(qū),沒有特定的語法來創(chuàng)建它們,而是使用xrange()函數(shù)創(chuàng)建它們。它們不支持切片、 連接或重復,在它們上使用in,not in、 min()或max()效率較低。
大多數(shù)的序列類型支持以下操作。in和not in操作具有與比較操作相同的優(yōu)先級。+和*的操作具有與相應的數(shù)值操作相同的優(yōu)先級。[3]可變序列類型還提供其他的方法。
下標按優(yōu)先級升序排列序列的操作(在相同格子中的操作具有相同的優(yōu)先級)。在表中,s和t是類型相同的序列;n、i和j是整數(shù):
操作 | 含義 | 注 |
---|---|---|
x in s | True if an item of s is equal to x, else False | (1) |
x not in s | False if an item of s is equal to x, else True | (1) |
s + t | the concatenation of s and t | (6) |
s n, n s | n shallow copies of s concatenated | (2) |
s[i] | ith item of s, origin 0 | (3) |
s[i:j] | slice of s from i to j | (3)(4) |
s[i:j:k] | slice of s from i to j with step k | (3)(5) |
len(s) | length of s | |
min(s) | smallest item of s | |
max(s) | largest item of s | |
s.index(x) | index of the first occurrence of x in s | |
s.count(x) | total number of occurrences of x in s |
#!C:/Python27/python # -*- coding: utf8 -*- import os import sys # str function str1="test_string_str" str11="胡畔" ## 返回字符串的副本,該副本第一個字符大寫,其余字符小寫 print(str1.capitalize()) ##返回長度為width的字符串,并使得自身居中。使用指定的fillchar(默認為一個空格)做填充。 str2=str1.center(10,"-") print(str2) ##返回在[start, end]范圍內(nèi)的子串sub非重疊出現(xiàn)的次數(shù)??蛇x參數(shù)start和end都以切片表示法解釋。 str2=str1.count("str") print(str2) ##使用 encoding 中注冊的編解碼器,對字符串進行解碼。 str2=str11.decode("gbk") print(str2) ## 返回該字符串編碼后的版本 str2=str2.encode("gbk") print(str2) ## 如果字符串以指定的suffix結(jié)尾則返回True,否則返回False str2=str1.endswith("str") print(str2) ## 返回在字符串中找到的子字符串sub的最低索引,使得sub包含在切片s[start:end]中 str2=str1.find("str") print(str2) ## 執(zhí)行字符串格式化操作。調(diào)用此方法的字符串可以包含文本字面值或由花括號{}分隔的替換字段 print("The sum of 1 + 2 is {0}".format(1+2)) ## 類似find(),但未找到子字符串時引發(fā)ValueError str2=str1.index("str") print(str2) ## 如果字符串中的所有字符都是數(shù)字或者字母,并且至少有一個字符,則返回true,否則返回false。 str2=str1.isalnum() print(str2) ## 字符串至少有一個字符并且都是字母,則返回true,否則返回false str2=str1.isalpha() print(str2) ## 如果在字符串中的所有字符都是數(shù)字并且至少一個字符,則返回 true。否則返回false。 str1.isdigit() ## 如果在字符串中的所有套管井的字符[4]都小寫,還有套管井的至少一個字符虛假否則返回 true。 str1.islower() ## 返回一個字符串,為iterable可迭代對象中字符串的連接。元素之間的分隔符是提供該方法的字符串。 path1="/home/ap" file1="log.log" print("/".join([path1,file1])) ## 返回刪除前導字符的字符串的副本。Chars參數(shù)是一個字符串,指定要移除的字符集。如果省略或沒有 chars參數(shù)默認為刪除空格 print("/home/ap/".lstrip("/")) print("www.example.com".lstrip("cmowz.")) ## 在分隔符首次出現(xiàn)位置拆分字符串,并返回包含分隔符之前部分、分隔符本身和分隔符之后部分的3元組 print("/home/ap/cos/log.log".partition("/")) ## 返回字符串的一個拷貝,其中所有的子串old通過new替換。如果指定了可選參數(shù)count,則只有前面的count個出現(xiàn)被替換。 print("str_str_123".replace("str","haha")) ##如果給出maxsplit,則至多拆分maxsplit次(因此,列表中將最多有maxsplit+1個元素)。如果沒有指定maxsplit或為-1,那么分割的數(shù)量沒有限制(進行所有可能的分割) print("/home/ap/cos/log.log".rsplit("/",1))2.6.2. 字符串的格式化操作
多帶帶掌握
2.6.3. XRange Typexrange類型是不可變的序列,通常用于循環(huán)。xrange類型的好處是xrange對象始終占用相同數(shù)量的內(nèi)存,無論它表示的范圍的大小。但它沒有始終一致的性能優(yōu)勢
2.6.4. 列表操作 | 含義 | 注 |
---|---|---|
s[i] = x | item i of s is replaced by x | |
s[i:j] = t | slice of s from i to j is replaced by the contents of the iterable t | |
del s[i:j] | same as s[i:j] = [] | |
s[i:j:k] = t | the elements of s[i:j:k] are replaced by those of t | (1) |
del s[i:j:k] | removes the elements of s[i:j:k] from the list | |
s.append(x) | same as s[len(s):len(s)] = [x] | (2) |
s.extend(x) | same as s[len(s):len(s)] = x | (3) |
s.count(x) | return number of i‘s for which s[i] == x | |
s.index(x[, i[, j]]) | return smallest k such that s[k] == x and i <= k < j | (4) |
s.insert(i, x) | same as s[i:i] = [x] | (5) |
s.pop([i]) | same as x = s[i]; del s[i]; return x | (6) |
s.remove(x) | same as del s[s.index(x)] | (4) |
s.reverse() | reverses the items of s in place | (7) |
s.sort([cmp[, key[, reverse]]]) | sort the items of s in place | (7)(8)(9)(10) |
集合對象是一個不同可哈希對象組成的無序集合。常見的使用包括成員測試、從序列中刪除重復項和計算數(shù)學運算(如交、并、差和對稱差)。(其它容器請參閱內(nèi)建的字典、列表和元組類和collections模塊。)
類似其它容器,集合支持x in set、 len(set)以及for x in set。作為一個無序的集合,集合不記錄元素位置和插入順序。因此,集合不支持索引、 切片、 或其它類似于序列的行為。
目前有兩個內(nèi)置的集合類型,set和frozenset。
2.8. 映射類型 — dict 2.9. 文件對象文件對象使用C的stdio包實現(xiàn)并可以用內(nèi)置的open()函數(shù)創(chuàng)建。文件對象也會由一些其它內(nèi)置的函數(shù)和方法返回,如os.popen()和os.fdopen()以及套接字對象的makefile()方法。臨時文件可以通過tempfile模塊創(chuàng)建,高級的文件操作如復制、移動和刪除文件和目錄可以通過shutil模塊完成。
2.9.1 簡單文件打開f=open(r"C:UserslynnDesktop123 .txt") try: for line in f: print(line.decode("utf-8")) finally: f.close()
當with代碼塊退出時,下面的代碼將自動關閉f
from __future__ import with_statement # This isn"t required in Python 2.6 with open("hello.txt") as f: for line in f: print line,
注 Python中不是所有的"類文件式"類型支持用作with語句的上下文管理器。如果你的代碼是用于處理任何類似文件的對象,你可以使用函數(shù)contextlib.closing()而不是直接使用對象。
如果每次都這么手動轉(zhuǎn)換編碼嫌麻煩(寫程序怕麻煩是好事,不怕麻煩就會寫出又長又難懂又沒法維護的代碼),Python還提供了一個codecs模塊幫我們在讀文件時自動轉(zhuǎn)換編碼,直接讀出unicode:
import codecs with codecs.open("/Users/michael/gbk.txt", "r", "gbk") as f: f.read() # u"u6d4bu8bd5"2.10. memoryview 類型 2.11. 上下文管理器類型 2.12. 其他的內(nèi)建類型 2.13. 特殊的屬性 3 函數(shù)式編程
既然變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù)。
3.1 函數(shù)及變量>>> abs = 10 >>> abs(-10) Traceback (most recent call last): File "3.2 傳入函數(shù)", line 1, in TypeError: "int" object is not callable
def add(x, y, f): return f(x) + f(y)map() reduce() filter()
map()函數(shù)接收兩個參數(shù),一個是函數(shù),一個是序列,map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的list返回。
>>> def f(x): ... return x * x ... >>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81]
reduce把一個函數(shù)作用在一個序列[x1, x2, x3...]上,這個函數(shù)必須接收兩個參數(shù),reduce把結(jié)果繼續(xù)和序列的下一個元素做累積計算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4) >>> def add(x, y): ... return x + y ... >>> reduce(add, [1, 3, 5, 7, 9]) 25 >>> def fn(x, y): ... return x * 10 + y ... >>> reduce(fn, [1, 3, 5, 7, 9]) 13579 >>> def fn(x, y): ... return x * 10 + y ... >>> def char2num(s): ... return {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9}[s] ... >>> reduce(fn, map(char2num, "13579")) 13579
filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。
def is_odd(n): return n % 2 == 1 filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]) # 結(jié)果: [1, 5, 9, 15] def not_empty(s): return s and s.strip() filter(not_empty, ["A", "", "B", None, "C", " "]) # 結(jié)果: ["A", "B", "C"]
sorted:Python內(nèi)置的sorted()函數(shù)就可以對list進行排序,此外,sorted()函數(shù)也是一個高階函數(shù),它還可以接收一個比較函數(shù)來實現(xiàn)自定義的排序。比如,如果要倒序排序,我們就可以自定義一個reversed_cmp函數(shù):
def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5]3.3 返回函數(shù)
def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sum --------------------------- >>> f = lazy_sum(1, 3, 5, 7, 9) >>> f
當我們調(diào)用lazy_sum()時,返回的并不是求和結(jié)果,而是求和函數(shù):
注意到返回的函數(shù)在其定義內(nèi)部引用了局部變量args,所以,當一個函數(shù)返回了一個函數(shù)后,其內(nèi)部的局部變量還被新函數(shù)引用,所以,閉包用起來簡單,實現(xiàn)起來可不容易。3.4 匿名函數(shù)
另一個需要注意的問題是,返回的函數(shù)并沒有立刻執(zhí)行,而是直到調(diào)用了f()才執(zhí)行
map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81] ---------------------- def f(x): return x * x3.5 裝飾器
def log(func): @functools.wraps(func) def warpper(*args,**kw): print "call %s()" % func.__name__ return func(*args,**kw) return warpper @log def now(): print "2013-12-25" now() print(now.__name__)3.6 偏函數(shù)
functools.partial就是幫助我們創(chuàng)建一個偏函數(shù)的,不需要我們自己定義int2(),可以直接使用下面的代碼創(chuàng)建一個新的函數(shù)int2:
>>> import functools >>> int2 = functools.partial(int, base=2) >>> int2("1000000") 64 >>> int2("1010101") 854 模塊 4.1 別名
導入模塊時,還可以使用別名,這樣,可以在運行時根據(jù)當前環(huán)境選擇最合適的模塊。比如Python標準庫一般會提供StringIO和cStringIO兩個庫,這兩個庫的接口和功能是一樣的,但是cStringIO是C寫的,速度更快,所以,你會經(jīng)??吹竭@樣的寫法:
try: import cStringIO as StringIO except ImportError: # 導入失敗會捕獲到ImportError import StringIO4.2 作用域
類似__xxx__這樣的變量是特殊變量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊變量,hello模塊定義的文檔注釋也可以用特殊變量__doc__訪問,我們自己的變量一般不要用這種變量名;
類似_xxx和__xxx這樣的函數(shù)或變量就是非公開的(private),不應該被直接引用,比如_abc,__abc等;
之所以我們說,private函數(shù)和變量“不應該”被直接引用,而不是“不能”被直接引用,是因為Python并沒有一種方法可以完全限制訪問private函數(shù)或變量,但是,從編程習慣上不應該引用private函數(shù)或變量。
def _private_1(name): return "Hello, %s" % name def _private_2(name): return "Hi, %s" % name def greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name)4.3 第三方模塊使用(安裝)
pip install module_name (在線安裝)
pip search module_name
Commands: install Install packages. download Download packages. uninstall Uninstall packages. freeze Output installed packages in requirements format. list List installed packages. show Show information about installed packages. check Verify installed packages have compatible dependencies. search Search PyPI for packages. wheel Build wheels from your requirements. hash Compute hashes of package archives. completion A helper command used for command completion. help Show help for commands. General Options: -h, --help Show help. --isolated Run pip in an isolated mode, ignoring environment variables and user configuration. -v, --verbose Give more output. Option is additive, and can be used up to 3 times. -V, --version Show version and exit. -q, --quiet Give less output. Option is additive, and can be used up to 3 times (corresponding to WARNING, ERROR, and CRITICAL logging levels). --logPath to a verbose appending log. --proxy Specify a proxy in the form [user:passwd@]proxy.server:port. --retries Maximum number of retries each connection should attempt (default 5 times). --timeout Set the socket timeout (default 15 seconds). --exists-action Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort. --trusted-host Mark this host as trusted, even though it does not have valid or any HTTPS. --cert Path to alternate CA bundle. --client-cert Path to SSL client certificate, a single file containing the private key and the certificate in PEM format. --cache-dir Store the cache data in . --no-cache-dir Disable the cache. --disable-pip-version-check Don"t periodically check PyPI to determine whether a new version of pip is available for download. Implied with --no-index.
pip download module_name (離線安裝)
https://segmentfault.com/a/11...
1.在可以聯(lián)網(wǎng)的開發(fā)機器上安裝好需要的包
1.下載指定的包到指定文件夾
pip install --download d:python27packages -r requirements.txt
2 安裝指定的離線包
pip install --no-index --find-index=d:python27packages -r requirements.txt
pip install --no-index --find-links=/home/ap/hupan Pillow
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41366.html
摘要:下一篇文章標準庫內(nèi)置函數(shù)標準庫語言參考描述了語言的具體語法和語義,這份庫參考則介紹了與一同發(fā)行的標準庫。這個庫也包含了內(nèi)置函數(shù)和異常不需要語句就可以在所有代碼中使用的對象。下一篇文章標準庫內(nèi)置函數(shù) 下一篇文章:Python標準庫---1、內(nèi)置函數(shù) Python 標準庫 Python 語言參考 描述了 Python 語言的具體語法和語義,這份庫參考則介紹了與 Python 一同發(fā)行的標...
摘要:二這些內(nèi)容都很有意思,本文唯獨想聊聊它內(nèi)置電池。這樣做的預期效果是內(nèi)置電池會變得輕量小型化高質(zhì)量,同時三方庫的生態(tài)系統(tǒng)也能得到進化。目前,該仍處于草案狀態(tài),但已基本成為社區(qū)共識。 showImg(https://segmentfault.com/img/remote/1460000019489233?w=1880&h=1253); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授權(quán),請...
摘要:二這些內(nèi)容都很有意思,本文唯獨想聊聊它內(nèi)置電池。這樣做的預期效果是內(nèi)置電池會變得輕量小型化高質(zhì)量,同時三方庫的生態(tài)系統(tǒng)也能得到進化。目前,該仍處于草案狀態(tài),但已基本成為社區(qū)共識。 showImg(https://segmentfault.com/img/remote/1460000019489233?w=1880&h=1253); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授權(quán),請...
摘要:上一篇文章標準庫內(nèi)置函數(shù)下一篇文章標準庫內(nèi)置類型邏輯值檢測布爾運算比較內(nèi)置常量有少數(shù)的常量存在于內(nèi)置命名空間中。給賦值是非法的并會引發(fā)。如果所有嘗試都返回,則解釋器將引發(fā)適當?shù)漠惓?。如果沒有以選項啟動,則此常量為真值。 上一篇文章:Python標準庫---7、內(nèi)置函數(shù)(V-W-X-Y-Z)下一篇文章:Python標準庫---9、內(nèi)置類型:邏輯值檢測、布爾運算、比較 內(nèi)置常量 有少數(shù)的...
摘要:認識模塊對于模塊,在前面的一些舉例中,已經(jīng)涉及到了,比如曾經(jīng)有過獲取隨機數(shù)模塊。這張圖列出了很少一部分存在這個目錄中的模塊文件。的標準庫是的一個組成部分,也是為的利器,可以讓編程事半功倍。這就是基本的模塊方法。 認識模塊 對于模塊,在前面的一些舉例中,已經(jīng)涉及到了,比如曾經(jīng)有過:import random (獲取隨機數(shù)模塊)。為了能夠?qū)δK有一個清晰的了解,首先要看看什么模塊,這里選...
閱讀 3736·2021-09-07 09:59
閱讀 774·2019-08-29 15:12
閱讀 856·2019-08-29 11:14
閱讀 1362·2019-08-26 13:27
閱讀 2735·2019-08-26 10:38
閱讀 3198·2019-08-23 18:07
閱讀 1326·2019-08-23 14:40
閱讀 1975·2019-08-23 12:38