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

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

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

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

DPVg_AI_era ? 來源:lp ? 2019-03-29 11:14 ? 次閱讀

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

本文試圖概述Python編程語言的所有關(guān)鍵點,并專注于絕對需要理解的最重要的主題。完全零基礎(chǔ),你不需要具備任何先前的編程知識,并且可以非常快速地掌握所有必需的概念。

好,接下來我們開始。

1. Python簡介

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

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

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

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

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

變量來源于數(shù)學(xué),是計算機語言中能儲存計算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的。而在Python中,變量等同于names。

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

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

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

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

L (Local) 局部作用域

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

G (Global) 全局作用域

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

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

3. 運算符

Python語言支持以下類型的運算符:

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

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

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

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

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

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

身份運算符:is(判斷兩個標(biāo)識符是不是引用自一個對象);is not(判斷兩個標(biāo)識符是不是引用自不同對象)

4. 注釋

單行注釋:

#this is a single line comment

多行注釋:

```thisisamultilinecomment```5. Pickling

將對象轉(zhuǎn)換為字符串并將字符串轉(zhuǎn)儲到文件中稱為酸洗。 反過來被稱為unpickling。

6. 函數(shù)

函數(shù)是組織好的,可重復(fù)使用的,用來實現(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()

查看字符串長度

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

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

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

8. 模塊

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

導(dǎo)入模塊:

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

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

module1.function1

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

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

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

from modname import *9. 包

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

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

from packageroot.packagefolder.mod import my_object

PIP是Python的包管理器,未來你將會頻繁的用到他:

pip install package_name10. 條件語句

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

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

條件語句是可以嵌套的:

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

11. 循環(huán)語句

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

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

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)嵌套語法:

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

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

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

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

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

break語法:

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

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

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

舉個例子,我們來計算階乘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時需要特殊處理。

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

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

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

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

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

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

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

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

14、列表和庫

列表

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

列表由整數(shù)索引

字典

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

15.編譯和鏈接

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

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

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

16. 迭代器

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

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

如果我們在集合中有大量項目,而且不打算一次加載內(nèi)存中的所有文件,那么迭代器就是很有用的。一些通用迭代器讓開發(fā)人員能夠?qū)崿F(xiàn)函數(shù)式編程語言實例。

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

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

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

屬性也可以引用另一個對象。

Python類可以引用其他類。

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

Python支持繼承。

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

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

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

如果一個類ParentClass有兩個子類:SubClass1,SubClass2

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

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

一些常見問題指引

我為什么要使用Python?

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

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

偉大的分析和ML包

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

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

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

無需編譯,因為它是一種解釋性語言

動態(tài)輸入 - 無需聲明變量

如何讓Python快速運行?

Python是一種高級語言,不適合訪問系統(tǒng)級程序或硬件。

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

實現(xiàn)基于C語言的擴展。

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

利用Cython,Numba和PyPy來加速Python代碼,或用C語言編寫代碼,再像在NumPy中那樣在Python中公開

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

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

有哪些頂級Python框架和包?

Python有大量必備的包:

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

Python和R可以合并嗎?

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

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

有沒有辦法在運行Python之前捕獲錯誤?

在運行代碼之前,我們可以使用PyChecker和PyLink來捕獲錯誤。

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

    關(guān)注

    10

    文章

    1949

    瀏覽量

    34869
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4804

    瀏覽量

    84910

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    Python與其他編程語言有何不同?

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

    Python編程實用指南

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

    最流行的編程語言java,python

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

    編程語言首推Python,掌握了Python就是掌握了未來

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

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

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

    Python成為2018年度編程語言,理由如下

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

    Python編程入門講解PPT

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

    2020年度編程語言再次花落Python

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

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

    Python是一種簡單易學(xué),功能強大的編程語言。它有高效率的高層數(shù)據(jù)結(jié)構(gòu),能夠簡單、有效地實現(xiàn)面向?qū)ο?b class='flag-5'>編程Python語法簡潔,支持動態(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單片機編程-用Python語言控制單片機

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

    NETWORKX Python編程語言軟件包概述及用途

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

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

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

    Python編程語言屬于什么語言

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

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性
    的頭像 發(fā)表于 11-15 09:31 ?388次閱讀