成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python_基礎(chǔ)

mindwind / 1230人閱讀

摘要:依次寫出函數(shù)名括號參數(shù)語句結(jié)束符。使用和是的習(xí)慣寫法,當(dāng)然也可以用其他參數(shù)名,但最好使用習(xí)慣用法。命名的關(guān)鍵字參數(shù)作用為了限制調(diào)用者可以傳入的參數(shù)名,同時(shí)可以提供默認(rèn)值。

Run
源代碼

Python源代碼的文件以"py"為擴(kuò)展名,由Python程序解釋,不需要編譯

命令:python 文件

字節(jié)代碼

Python源文件經(jīng)過編譯后生成的擴(kuò)展名為"pyc"的文件
編譯方法:

import py_compile
py_compile.compile("url") # url編譯的文件的路徑

編譯后的文件為:xxx.cpython-36.pyc

優(yōu)化代碼

經(jīng)過優(yōu)化的源文件,擴(kuò)展名為".pyo"
命令:pyhont -O -m py_comile 編譯的文件

編譯后的文件為:xxx.cpython-36.opt-1.pyc

Type
int, float, str, bool, NoneType

tuple, list, dict, set
Lists
list = []
list[i:j]  # 返回列表的子集
list[-1]   # 訪問的最后一個(gè)元素
list[:-1]  # 只返回最后一個(gè)元素

list[i] = val
list[i:j] = otherlist  # replace ith to jth element with otherlist
del list[i:j]

list.append(item)
list.extend(list)
list.insert(0, item)
list.pop()
list.remove(i)
list1 + list2     # 結(jié)合兩個(gè)列表
set(list)         # 從列表中刪除重復(fù)元素

list.reverse()
list.count(item)
sum(list)

list.sort()

zip(list1, list2)
sorted(list)
",".join(list)
Dict
dict.keys()
dict.values()
"key" in dict
dict["key"]   # throws KeyError
dict.get("key")
dict.setdefault("key", 1)
Iteration
for item in ["a", "b", "c"]:
for i in range(4):     # 0 到 3
for i in range(4, 8):  # 4 到 7
for key, val in dict.items():
String
str[0:4]
len(str)

string.replace("-", " ")
",".join(list)
"hi {0}".format("j")
str.find(",")
str.index(",") 
str.count(",")
str.split(",")

str.lower()
str.upper()
str.title()

str.lstrip()
str.rstrip()
str.strip()

str.islower()

len() # 求序列長度
+ # 連接2個(gè)序列
* # 重復(fù)序列元素
in # 判斷元素是否在序列中
max() # 返回最大值
min() # 返回最小值
Set

集合Set于列表,元組類似,可以存儲多個(gè)數(shù)據(jù),但是,這些數(shù)據(jù)是不重復(fù)的。

集合對象支持union(聯(lián)合), intersection(交集), difference(差集)sysmmetric_difference(對稱差集)等數(shù)學(xué)運(yùn)算

>>> x = set("abcd")
>>> x
{"c", "a", "b", "d"}
>>> type(x)

>>> y = set(["h","e","l","l","o"])
>>> y
{"h", "e", "o", "l"}
>>> z = set("spam")
>>> z
{"s", "a", "m", "p"}
>>> y&z # 交集
set()
>>> x&z # 交集
{"a"}
>>> x|y # 并集
{"a", "e", "d", "l", "c", "h", "o", "b"}
>>> x-y # 差集
{"c", "a", "b", "d"}
>>> x^z # 對稱差集(在x或z中,但不會同時(shí)出現(xiàn)在二者中)
{"m", "d", "s", "c", "b", "p"}
Casting
int(str)
float(str)
str(int)
str(float)
bool(1)
Comprehensions
[fn(i) for i in list]            # .map
map(fn, list)                    # .map, 返回的迭代

filter(fn, list)                 # .filter, 返回的迭代
[fn(i) for i in list if i > 0]   # .filter.map
Regex
import re

re.match(r"^[aeiou]", str)
re.sub(r"^[aeiou]", "?", str)
re.sub(r"(xyz)", r"1", str)

expr = re.compile(r"^...$")
expr.match(...)
expr.sub(...)
Function
定義函數(shù)

使用關(guān)鍵字:def。 依次寫出函數(shù)名, 括號, 參數(shù), 語句結(jié)束符 :。然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回

def my_abs (x):
    if x >= 0:
        return x
    else:
        return -x    
空函數(shù)

定義一個(gè)什么也不做的空函數(shù),使用pass語句

def nop ()
    pass

空函數(shù)的作用:提供占位符

參數(shù)

默認(rèn)參數(shù)一定要用不可變對象(基本變量類型和tuple), 如果是可變對象,程序運(yùn)行時(shí)會有邏輯錯(cuò)誤。

定義可變參數(shù)和關(guān)鍵字參數(shù)的使用:

*args是可變參數(shù),args接收的是一個(gè)tuple

**kw是關(guān)鍵字參數(shù),kw接收的是一個(gè)dict

調(diào)用函數(shù)時(shí)如何傳入可變參數(shù)和關(guān)鍵字參數(shù):

可變參數(shù)既可以直接傳入:func(1, 2, 3),又可以先組裝listtuple,再通過*args傳入:func(*(1, 2, 3))

關(guān)鍵字參數(shù)既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{"a": 1, "b": 2})。

使用*args**kwPython的習(xí)慣寫法,當(dāng)然也可以用其他參數(shù)名,但最好使用習(xí)慣用法。

命名的關(guān)鍵字參數(shù)作用:為了限制調(diào)用者可以傳入的參數(shù)名,同時(shí)可以提供默認(rèn)值。

定義命名的關(guān)鍵字參數(shù)在沒有可變參數(shù)的情況下不要忘了寫分隔符*,否則定義的將是位置參數(shù)

返回值

函數(shù)執(zhí)行完畢也沒有return語句時(shí),自動return None
函數(shù)可以同時(shí)返回多個(gè)值,但其實(shí)就是一個(gè)tuple

匿名函數(shù)

lamdba 參數(shù):函數(shù)體

匿名函數(shù)自動具有返回值

Characteristic

區(qū)分大小寫

語句結(jié)尾使用:

Tab

if的各種假

Flase: "", None, 0, -0.0, 0.0 [], {}, (), Flase

==is

is是比較兩個(gè)引用是否指向了同一個(gè)對象(引用比較)
==是比較兩個(gè)對象是否相等

a = 2
b = 2

a is b # True, 為True的原因是[-5, 256]

c = 500
d = 500
c is d # False

python解釋器為了優(yōu)化速度,會把[-5, 256]之間的數(shù)據(jù)提前存放到小整數(shù)對象池中,程序中要使用到[-5, 256]之間范圍的數(shù)據(jù),就不會重新創(chuàng)建一份,都是指向?qū)ο蟪刂械耐环輸?shù)據(jù),除了這個(gè)區(qū)間之外的數(shù)據(jù),每次使用時(shí)解釋器都會重新申請一塊內(nèi)存,用來存儲數(shù)據(jù)。

深拷貝和淺拷貝

淺拷貝:對于一個(gè)對象的頂層拷貝(拷貝了引用,并沒有拷貝內(nèi)容)
深拷貝:重新申請內(nèi)存存儲復(fù)制的數(shù)據(jù).

import copy
a = [1, 2, 3]

b = a # 淺拷貝
c = copy.deepcopy(a) # 深拷貝

區(qū)別copydeepcopy:
deepcopy:所有的內(nèi)容都重新申請內(nèi)存,依次拷貝
copy: 外層重新申請內(nèi)存

拷貝元組的特點(diǎn):
都是相同引用地址(元組是不可變類型,拷貝之后還是相同地址)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41346.html

相關(guān)文章

  • Python爬蟲學(xué)習(xí)路線

    摘要:以下這些項(xiàng)目,你拿來學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個(gè)步驟都能做到很優(yōu)秀的時(shí)候,你應(yīng)該考慮如何組合這四個(gè)步驟,使你的爬蟲達(dá)到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計(jì)方案,比如說。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個(gè)階段: 1.剛上手的時(shí)候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...

    liaoyg8023 評論0 收藏0
  • Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第二節(jié):Python關(guān)鍵字yield

    摘要:在種,使用關(guān)鍵字定義的迭代器也被稱為生成器迭代器迭代器是訪問集合內(nèi)元素的一種方式。調(diào)用任何定義包含關(guān)鍵字的函數(shù)都不會執(zhí)行該函數(shù),而是會獲得一個(gè)隊(duì)?wèi)?yīng)于該函數(shù)的迭代器。 上一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第一節(jié):同步與異步I/O下一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第三節(jié):協(xié)程 協(xié)程是Tornado中進(jìn)行異步I/O代碼開發(fā)的方法...

    reclay 評論0 收藏0
  • 從能做什么到如何去做,一文帶你快速掌握Python編程基礎(chǔ)與實(shí)戰(zhàn)

    摘要:本文的分享主要圍繞以下幾個(gè)方面能做什么常見應(yīng)用場景介紹如何學(xué)習(xí)語法基礎(chǔ)實(shí)戰(zhàn)面向?qū)ο缶幊虒?shí)戰(zhàn)練熟基礎(chǔ)小游戲項(xiàng)目的實(shí)現(xiàn)與實(shí)戰(zhàn)一能做什么一種編程語言往往可以應(yīng)用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個(gè)空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業(yè)務(wù)/學(xué)習(xí)的你或許:一直想要找個(gè)時(shí)間學(xué)一點(diǎn),但是又不知道該從何下手?本文將從Python能做什么,如何學(xué)習(xí)Py...

    BLUE 評論0 收藏0
  • python基礎(chǔ)教程:模塊高級技巧

    摘要:標(biāo)準(zhǔn)模塊附帶了一個(gè)標(biāo)準(zhǔn)模塊庫。它返回一個(gè)如果調(diào)用不傳遞參數(shù),則列出當(dāng)前已經(jīng)定義的所有名字用可以查看所有的內(nèi)置類型變量函數(shù)等,方法是借助標(biāo)準(zhǔn)模塊模塊高級技巧總結(jié)的搜索路徑,順序一定要搞得清編譯后的文件內(nèi)置函數(shù)查看模塊定義的名字。 上一節(jié),我們講解了Python模塊的基礎(chǔ)知識,這一節(jié)我們繼續(xù)深入了解模塊的更多知識,從而讓大家全面了解、掌握和運(yùn)用模塊到我們實(shí)際的編程中。 在上一節(jié)中有一句話接...

    JasinYip 評論0 收藏0
  • Python基礎(chǔ)之正確重載運(yùn)算符

    摘要:一運(yùn)算符重載基礎(chǔ)運(yùn)算符重載對已有的運(yùn)算符進(jìn)行重新定義,賦予其另一種功能,以適應(yīng)不同的數(shù)據(jù)類型。重載一元運(yùn)算符重載一元運(yùn)算符只需實(shí)現(xiàn)相應(yīng)的特殊方法,這些特殊方法只有一個(gè)參數(shù)。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之面向?qū)ο笃闹攸c(diǎn)知識及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、掌握運(yùn)算符重載的定義和作用,以及Python對其的內(nèi)部限制;2、掌握...

    Scliang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<