0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

無(wú)需編程基礎(chǔ),概述Python編程語(yǔ)言的所有關(guān)鍵點(diǎn)

DPVg_AI_era ? 來(lái)源:lp ? 2019-03-29 11:14 ? 次閱讀

本文針對(duì)零基礎(chǔ)讀者,不需要具備任何編程基礎(chǔ),通過(guò)本文可以對(duì)Python有一個(gè)比較整體的了解,便于以后的深入學(xué)習(xí)打下良好基礎(chǔ)

本文試圖概述Python編程語(yǔ)言的所有關(guān)鍵點(diǎn),并專注于絕對(duì)需要理解的最重要的主題。完全零基礎(chǔ),你不需要具備任何先前的編程知識(shí),并且可以非??焖俚卣莆账斜匦璧母拍?。

好,接下來(lái)我們開(kāi)始。

1. Python簡(jiǎn)介

Python是一種解釋型語(yǔ)言: 這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié)。類似于PHP和Perl語(yǔ)言

Python是交互式語(yǔ)言:你可以在一個(gè)Python提示符 >>> 后直接執(zhí)行代碼

Python是面向?qū)ο笳Z(yǔ)言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)

Python是初學(xué)者的語(yǔ)言:Python對(duì)初級(jí)程序員而言,是一種偉大的語(yǔ)言,它支持廣泛的應(yīng)用程序開(kāi)發(fā),從簡(jiǎn)單的文字處理到WWW瀏覽器再到游戲

2. 變量、數(shù)據(jù)類型及作用域

變量來(lái)源于數(shù)學(xué),是計(jì)算機(jī)語(yǔ)言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過(guò)變量名訪問(wèn)。在指令式語(yǔ)言中,變量通常是可變的。而在Python中,變量等同于names。

聲明變量和賦值(Python中也稱作binding,相比賦值,綁定這個(gè)詞可能更形象)操作:

myFirstVariable=1mySecondVariable=2myFirstVariable = "Hello You"

Python支持?jǐn)?shù)據(jù)類型包括數(shù)字、字符串、集合、列表、元組、字典。數(shù)字支持整數(shù)、小數(shù)、浮點(diǎn)。長(zhǎng)整型會(huì)有一個(gè)L的后綴,比如9999999999999L。字符串是被引號(hào)(單雙均可)包圍由數(shù)字、字母、下劃線組成的一串字符。

程序創(chuàng)建、訪問(wèn)、改變一個(gè)變量時(shí),都是在一個(gè)保存該變量的空間內(nèi)進(jìn)行,這個(gè)空間為命名空間,即作用域。Python作用域是靜態(tài)的,變量被賦值、創(chuàng)建的位置決定了其被訪問(wèn)的范圍,即變量作用域由其所在位置決定。Python的作用域一共有4種,分別是:

L (Local) 局部作用域

E (Enclosing) 閉包函數(shù)外的函數(shù)中

G (Global) 全局作用域

B (Built-in) 內(nèi)建作用域

以L –> E –> G –>B 的規(guī)則查找,即:在局部找不到,便會(huì)去局部外的局部找(例如閉包),再找不到就會(huì)去全局找,再者去內(nèi)建中找。

3. 運(yùn)算符

Python語(yǔ)言支持以下類型的運(yùn)算符:

算術(shù)運(yùn)算符:+;-;*;/;%(取模 - 返回除法的余數(shù));**(冪 - 返回x的y次冪);//(取整除 - 返回商的整數(shù)部分,向下取整)

比較(關(guān)系)運(yùn)算符:==(等于 - 比較對(duì)象是否相等);!=(不等于 - 比較兩個(gè)對(duì)象是否不相等);<>(不等于 - 比較兩個(gè)對(duì)象是否不相等);>(大于 - 返回x是否大于y);<(小于 - 返回x是否小于y);>=(大于等于- 返回x是否大于等于y);<=(小于等于 -返回x是否小于等于y)

賦值運(yùn)算符:=(簡(jiǎn)單的賦值運(yùn)算符);+=(加法賦值運(yùn)算符);-=(減法賦值運(yùn)算符);*=(乘法賦值運(yùn)算符);/=(除法賦值運(yùn)算符);%=(取模賦值運(yùn)算符);**=(冪賦值運(yùn)算符);//=(取整除賦值運(yùn)算符)

位運(yùn)算符:&(按位與運(yùn)算符);|(按位或運(yùn)算符);^(按位異或運(yùn)算符);~(按位取反運(yùn)算符);<<(左移動(dòng)運(yùn)算符);>>(右移動(dòng)運(yùn)算符)

邏輯運(yùn)算符:and(布爾"與");or(布爾"或");not(布爾"非")

成員運(yùn)算符:in(如果在指定的序列中找到值返回 True,否則返回 False);not in(如果在指定的序列中沒(méi)有找到值返回 True,否則返回 False)

身份運(yùn)算符:is(判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象);is not(判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象)

4. 注釋

單行注釋:

#this is a single line comment

多行注釋:

```thisisamultilinecomment```5. Pickling

將對(duì)象轉(zhuǎn)換為字符串并將字符串轉(zhuǎn)儲(chǔ)到文件中稱為酸洗。 反過(guò)來(lái)被稱為unpickling。

6. 函數(shù)

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。

定義新函數(shù):

defmy_new_function(): print('this is my new function')

函數(shù)調(diào)用

my_new_function()

查看字符串長(zhǎng)度

len('hello')prints 57. 參數(shù)

定義函數(shù)的時(shí)候,把參數(shù)的名字和位置確定下來(lái),函數(shù)的接口定義就完成了。函數(shù)的調(diào)用者只需知道如何傳遞正確的參數(shù),以及函數(shù)將返回什么樣的值即可。

Python參數(shù)包括:位置參數(shù);默認(rèn)參數(shù);可變參數(shù);命名關(guān)鍵字參數(shù);參數(shù)組合。

8. 模塊

Python 模塊(Module),是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語(yǔ)句。模塊讓你能夠有邏輯地組織你的 Python 代碼段。把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。模塊能定義函數(shù),類和變量,模塊里也能包含可執(zhí)行的代碼。

導(dǎo)入模塊:

import module1[, module2[,... moduleN]]

調(diào)用模塊中的函數(shù):

module1.function1

從某個(gè)模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中:

from modname import name1[, name2[, ... nameN]]

把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間:

from modname import *9. 包

模塊與包是任何大型程序的核心,就連Python安裝程序本身也是一個(gè)包。包是一個(gè)有層次的文件目錄結(jié)構(gòu),它定義了由n個(gè)模塊或n個(gè)子包組成的python應(yīng)用程序執(zhí)行環(huán)境,包含__init__.py文件和其它模塊或子包。

從包里調(diào)用模塊:

from packageroot.packagefolder.mod import my_object

PIP是Python的包管理器,未來(lái)你將會(huì)頻繁的用到他:

pip install package_name10. 條件語(yǔ)句

Python條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊,也就是連吃瓜群眾都知道的if/else語(yǔ)句:

ifa=b:print'aisb'elifab:print'aisgreaterthanb'else: print 'a is different'

條件語(yǔ)句是可以嵌套的:

else:ifa=2:print'withinifofelse'else: print 'within else of else'

11. 循環(huán)語(yǔ)句

循環(huán)語(yǔ)句允許我們執(zhí)行一個(gè)語(yǔ)句或語(yǔ)句組多次,一般包含兩種類型:While循環(huán)和For循環(huán)。

While循環(huán),一直循環(huán)知道滿足某個(gè)條件終止:

while(input

While循環(huán)嵌套:

whileexpression:whileexpression:statement(s) statement(s)

For循環(huán),一直循環(huán)知道次數(shù)用盡:

foriinrange(0,10)print i

For循環(huán)嵌套語(yǔ)法:

foriterating_varinsequence:foriterating_varinsequence:statements(s) statements(s)

循環(huán)控制語(yǔ)句可以更改語(yǔ)句執(zhí)行的順序。Python支持以下循環(huán)控制語(yǔ)句:

break:在語(yǔ)句塊執(zhí)行過(guò)程中終止循環(huán),并且跳出整個(gè)循環(huán)

continue:在語(yǔ)句塊執(zhí)行過(guò)程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)

pass:pass是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性

break語(yǔ)法:

foriinrange(0,10):if(i==5): break

whileTrue:x=get_value()if(x==1): break12. 遞歸

在函數(shù)內(nèi)部,可以調(diào)用其他函數(shù)。如果一個(gè)函數(shù)在內(nèi)部調(diào)用自身本身,這個(gè)函數(shù)就是遞歸函數(shù)。

舉個(gè)例子,我們來(lái)計(jì)算階乘n! = 1 x 2 x 3 x ... x n,用函數(shù)factorial(n)表示,可以看出:

factorial(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = factorial(n-1) x n

所以,factorial(n)可以表示為n x fact(n-1),只有n=1時(shí)需要特殊處理。

于是,factorial(n)用遞歸的方式寫出來(lái)就是:

deffactorial(n):ifn==0:return1else: return n * factorial(n-1)13. 框架與棧調(diào)用

Python代碼載入框架,框架位于棧中。

函數(shù)與參數(shù)和變量一起載入框架

框架會(huì)按照正確的執(zhí)行順序依次載入棧中

棧中列出函數(shù)的執(zhí)行步驟,在函數(shù)外聲明的變量存儲(chǔ)在main中

最后入棧的框架將最先執(zhí)行

如果發(fā)生錯(cuò)誤,可以使用回溯來(lái)獲取函數(shù)表

14、列表和庫(kù)

列表

列表是可以保存任何數(shù)據(jù)類型的值序列的數(shù)據(jù)結(jié)構(gòu)。它們是可變的(可更新的)。

列表由整數(shù)索引。

字典

字典是編程世界中最重要的數(shù)據(jù)結(jié)構(gòu)之一。它的功能是存儲(chǔ)鍵/值對(duì)對(duì)象,可以優(yōu)化數(shù)據(jù)檢索功能。

15.編譯和鏈接

這些特征可用于使用以另一種語(yǔ)言編寫的文件,例如C或C ++等

將代碼寫入文件后,可以將文件放在Modules目錄中。

在Setup.local文件中添加一行非常重要,以確??梢约虞d新創(chuàng)建的文件。

16. 迭代器

迭代器可以遍歷集合,所有迭代器都包含__iter __()和__next __()函數(shù)

只需在列表,字典,字符串或集合上執(zhí)行iter(x)即可。

如果我們?cè)诩现杏写罅宽?xiàng)目,而且不打算一次加載內(nèi)存中的所有文件,那么迭代器就是很有用的。一些通用迭代器讓開(kāi)發(fā)人員能夠?qū)崿F(xiàn)函數(shù)式編程語(yǔ)言實(shí)例。

17.面向?qū)ο蟮脑O(shè)計(jì):類

Python允許創(chuàng)建自定義類型。由用戶定義的類型稱為類。這些類可以具有自定義屬性和函數(shù)。

面向?qū)ο蟮脑O(shè)計(jì)允許程序員將其業(yè)務(wù)模型定義為具有所需屬性和功能的對(duì)象。

屬性也可以引用另一個(gè)對(duì)象。

Python類可以引用其他類。

Python支持封裝,即實(shí)例函數(shù)和變量。

Python支持繼承。

18.面向?qū)ο蟮脑O(shè)計(jì):繼承

Python支持對(duì)象的繼承。因此,對(duì)象可以繼承其父級(jí)對(duì)象的函數(shù)和屬性。

繼承的類可以在其函數(shù)中包含不同的邏輯。

如果一個(gè)類ParentClass有兩個(gè)子類:SubClass1,SubClass2

因此,兩個(gè)子類都將包含函數(shù)my_function()。

繼承可以鼓勵(lì)代碼重用和維護(hù)。

一些常見(jiàn)問(wèn)題指引

我為什么要使用Python?

簡(jiǎn)單的編碼和學(xué)習(xí)

面向?qū)ο缶幊陶Z(yǔ)言

偉大的分析和ML包

更快地開(kāi)發(fā)并將我的解決方案推向市場(chǎng)

提供內(nèi)置內(nèi)存管理功能

提供巨大的社區(qū)支持和應(yīng)用程序

無(wú)需編譯,因?yàn)樗且环N解釋性語(yǔ)言

動(dòng)態(tài)輸入 - 無(wú)需聲明變量

如何讓Python快速運(yùn)行?

Python是一種高級(jí)語(yǔ)言,不適合訪問(wèn)系統(tǒng)級(jí)程序或硬件。

此外,Python不適用于跨平臺(tái)應(yīng)用程序。事實(shí)上,Python是一種動(dòng)態(tài)類型的解釋語(yǔ)言,與低級(jí)語(yǔ)言相比,它的優(yōu)化和運(yùn)行速度較慢。

實(shí)現(xiàn)基于C語(yǔ)言的擴(kuò)展。

使用Spark或Hadoop創(chuàng)建多進(jìn)程

利用Cython,Numba和PyPy來(lái)加速Python代碼,或用C語(yǔ)言編寫代碼,再像在NumPy中那樣在Python中公開(kāi)

現(xiàn)在有哪些常用的IDE?

Spyder,PyCharm。另外,使用各種筆記本電腦, Jupyter

有哪些頂級(jí)Python框架和包?

Python有大量必備的包:

PyUnit(單元測(cè)試),PyDoc(文檔),SciPy(algebera和數(shù)字),Pandas(數(shù)據(jù)管理),Sci-Kit學(xué)習(xí)(ML和數(shù)據(jù)科學(xué)),Tensorflow(AI),Numpy(數(shù)組和數(shù)字),BeautifulSoap(web)頁(yè)面報(bào)廢),F(xiàn)lask(微框架),Pyramid(企業(yè)應(yīng)用程序),Django(UI MVVM),urllib(網(wǎng)頁(yè)抓?。?,Tkinter(GUI),mock(模擬庫(kù)),PyChecker(bug檢測(cè)器),Pylint(模塊代碼分析))

Python和R可以合并嗎?

R中編寫了大量豐富的統(tǒng)計(jì)庫(kù)

可以使用Rpy2 python包或在Juputer中使用beaker筆記本或IR內(nèi)核在Python中執(zhí)行R代碼。

有沒(méi)有辦法在運(yùn)行Python之前捕獲錯(cuò)誤?

在運(yùn)行代碼之前,我們可以使用PyChecker和PyLink來(lái)捕獲錯(cuò)誤。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1930

    瀏覽量

    34540
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376

原文標(biāo)題:無(wú)需編程基礎(chǔ),Python從入門到進(jìn)階大法

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手如何快速學(xué)Python編程語(yǔ)言?

      Python是一門語(yǔ)法簡(jiǎn)潔、功能強(qiáng)大、上手簡(jiǎn)單的計(jì)算機(jī)編程語(yǔ)言,根據(jù)TIOBE最新排名,Python已超越C#,與Java,C,C++成為全球4大流行
    發(fā)表于 12-20 16:05

    Python與其他編程語(yǔ)言有何不同?

    ,那是個(gè)壞主意  Python旨在成為一種易于閱讀的語(yǔ)言。格式正確的Python代碼干凈整潔。  它通常使用英語(yǔ)關(guān)鍵字,而其他編程
    發(fā)表于 09-16 15:54

    Python編程實(shí)用指南

    Python 是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語(yǔ)言。通過(guò) Python 編程,我們能夠解決現(xiàn)實(shí)生活中的很多任務(wù)。本書是一本面向?qū)嵺`的
    發(fā)表于 09-27 06:21

    最流行的編程語(yǔ)言java,python

    世界上最大的編程相關(guān)書籍出版商Packt Publishing進(jìn)行的市場(chǎng)研究顯示,Java和Python是當(dāng)今最流行的編程語(yǔ)言,Java流行程度位居第3。 該公司通過(guò)調(diào)查11000受訪
    發(fā)表于 09-26 10:22 ?0次下載
    最流行的<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>java,<b class='flag-5'>python</b>

    編程語(yǔ)言首推Python,掌握了Python就是掌握了未來(lái)

    從 2018 年 9 月起,編程將成為所有高中生學(xué)習(xí)和掌握的內(nèi)容。不僅如此, 編程語(yǔ)言 Python 還被納入高考科目,甚至進(jìn)入到小學(xué)生的教
    的頭像 發(fā)表于 05-07 10:34 ?6994次閱讀
    <b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>首推<b class='flag-5'>Python</b>,掌握了<b class='flag-5'>Python</b>就是掌握了未來(lái)

    最紅編程語(yǔ)言Python的入門學(xué)習(xí)方法資料概述

    最近由于人工智能的大熱,Python成為網(wǎng)紅編程語(yǔ)言。其就業(yè)方向和就業(yè)前景是非常大的。所以一些想要轉(zhuǎn)行的人紛紛表示想要學(xué)Python。那這里就介紹一下
    發(fā)表于 01-02 14:40 ?18次下載
    最紅<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>Python</b>的入門學(xué)習(xí)方法資料<b class='flag-5'>概述</b>

    Python成為2018年度編程語(yǔ)言,理由如下

    2018 年,Python 語(yǔ)言上升了 3.62% ,其次是 Visual Basic .NET(+3.20%) 和 Java(+2.69%) 。Python 已成為當(dāng)今大學(xué)中最常被教授的首選
    的頭像 發(fā)表于 01-10 15:32 ?2629次閱讀
    <b class='flag-5'>Python</b>成為2018年度<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>,理由如下

    一個(gè)關(guān)于超越的編程大賽怎么可以專屬的編程語(yǔ)言呢?

    今天重點(diǎn)說(shuō)說(shuō)你們使用的編程語(yǔ)言,尤其值得一提的是 Python,至于為什么是 Python?這個(gè)后面再說(shuō)??傊鞔_標(biāo)注使用這一編程
    的頭像 發(fā)表于 03-15 09:40 ?3525次閱讀

    Python編程入門講解PPT

      Python是一種簡(jiǎn)單易學(xué),功能強(qiáng)大的編程語(yǔ)言。它有高效率的高層數(shù)據(jù)結(jié)構(gòu),能夠簡(jiǎn)單、有效地實(shí)現(xiàn)面向?qū)ο?b class='flag-5'>編程Python語(yǔ)法簡(jiǎn)潔,支持動(dòng)態(tài)
    發(fā)表于 07-08 10:43 ?35次下載
    <b class='flag-5'>Python</b><b class='flag-5'>編程</b>入門講解PPT

    2020年度編程語(yǔ)言再次花落Python

    近日,全球知名的編程語(yǔ)言流行度排行榜網(wǎng)站 TIOBE?公布了 1 月編程指數(shù)信息。C 第一,Java 第二,Python 第三,C++ 和 C# 位列四五。 2020?年度
    的頭像 發(fā)表于 01-12 11:32 ?1855次閱讀

    Python編程入門學(xué)習(xí)資料概述

    Python是一種簡(jiǎn)單易學(xué),功能強(qiáng)大的編程語(yǔ)言。它有高效率的高層數(shù)據(jù)結(jié)構(gòu),能夠簡(jiǎn)單、有效地實(shí)現(xiàn)面向?qū)ο?b class='flag-5'>編程Python語(yǔ)法簡(jiǎn)潔,支持動(dòng)態(tài)輸入
    發(fā)表于 02-02 14:36 ?21次下載
    <b class='flag-5'>Python</b>的<b class='flag-5'>編程</b>入門學(xué)習(xí)資料<b class='flag-5'>概述</b>

    自學(xué)python單片機(jī)編程-用Python語(yǔ)言控制單片機(jī)

    自學(xué)python單片機(jī)編程-用Python語(yǔ)言控制單片機(jī)
    發(fā)表于 11-13 17:36 ?40次下載
    自學(xué)<b class='flag-5'>python</b>單片機(jī)<b class='flag-5'>編程</b>-用<b class='flag-5'>Python</b><b class='flag-5'>語(yǔ)言</b>控制單片機(jī)

    NETWORKX Python編程語(yǔ)言軟件包概述及用途

    NetworkX 是一個(gè) Python 編程語(yǔ)言軟件包,可用于創(chuàng)建、操作和學(xué)習(xí)復(fù)雜圖形網(wǎng)絡(luò)的結(jié)構(gòu)、動(dòng)態(tài)和功能。
    的頭像 發(fā)表于 07-01 11:30 ?1323次閱讀

    如何搭建Python編程環(huán)境

    Python是一種高級(jí)編程語(yǔ)言,被廣泛用于科學(xué)計(jì)算、數(shù)據(jù)分析、人工智能、Web開(kāi)發(fā)等領(lǐng)域。想要學(xué)習(xí)Python編程,首先需要搭建一個(gè)合適的
    的頭像 發(fā)表于 04-14 12:07 ?5078次閱讀

    Python編程語(yǔ)言屬于什么語(yǔ)言

    Python編程語(yǔ)言屬于高級(jí)編程語(yǔ)言中的一種。它是一種通用、面向?qū)ο蟆⒔忉屝?b class='flag-5'>編程
    的頭像 發(fā)表于 11-22 14:31 ?1335次閱讀