久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

學(xué)習(xí) Python

 東西二王 2018-12-10

導(dǎo)讀:Python 簡史

在正式學(xué)習(xí) Python 之前,,我們應(yīng)該對以下內(nèi)容有所了解。

Python 讀音

Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/),,是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)程序設(shè)計語言,,由荷蘭人 Guido van Rossum 于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年,。

Python 命名

Python 命名的由來頗具感性色彩,,1989年圣誕節(jié)期間,在阿姆斯特丹,,Guido 為了打發(fā)圣誕節(jié)的無趣,,決心開發(fā)一個新的腳本解釋程序,作為 ABC 語言的一種繼承,。之所以選中 Python(意為大蟒蛇)作為該編程語言的名字,,是因為他是一個叫 Monty Python 的喜劇團(tuán)體的愛好者。

Python 特點

若有人問我 Python 最大的特點是什么,,我會毫不猶豫的告訴他:簡單易學(xué),,功能強(qiáng)大。作為一款純粹的自由軟件,,Python 有很多優(yōu)點:

  1. 簡單,,基于“優(yōu)雅”,、“明確”,、“簡單”的設(shè)計哲學(xué),Python 設(shè)計時盡量使用其它語言經(jīng)常使用的標(biāo)識符號和英文單詞,,優(yōu)秀的 Python 程序具有如同英文般的易讀性,,這使得學(xué)習(xí) Python 變得容易;
  2. 高級,,Python 是一種高層次的編程語言,,與 Java,,C/C++ 相比,Python 距離真實的機(jī)器更遠(yuǎn),,它使你能夠?qū)W⒂诮鉀Q問題而無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層實現(xiàn)細(xì)節(jié),;
  3. 易移植,正因為脫離了底層細(xì)節(jié)的約束,,Python 非常易于移植,,無需修改便可以在各個平臺運(yùn)行,包括:Linux,、Windows,、FreeBSD、Macintosh,、Solaris,、AROS 等等。
  4. 解釋性,,Python 在執(zhí)行時,,首先會將 .py 文件中的源代碼編譯成 Python 的 Byte Code(字節(jié)碼),然后再由 Python Virtual Machine(Python 虛擬機(jī))來執(zhí)行這些編譯好的 Byte Code,。用戶不需要擔(dān)心如何編譯程序,,如何確保連接裝載正確的庫等等。
  5. 強(qiáng)大而豐富的庫:Python 具有豐富和強(qiáng)大的庫,,它可以幫助你處理各種工作,,包括數(shù)據(jù)庫、網(wǎng)頁瀏覽器,、CGI,、FTP、電子郵件,、XML,、XML-RPC、HTML,、WAV 文件,、密碼系統(tǒng)、GUI,、Tk 等標(biāo)準(zhǔn)庫,。除此以外,還有許多高質(zhì)量的庫,,如十分經(jīng)典的科學(xué)計算擴(kuò)展庫:NumPy,、SciPy 和 matplotlib。
  6. 面向?qū)ο?,Python 既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語言中,,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的,。與其他主要的語言如 C++ 和 Java 相比,Python 以一種非常強(qiáng)大又簡單的方式實現(xiàn)面向?qū)ο缶幊蹋篜ython 是完全面向?qū)ο蟮恼Z言,,函數(shù),、模塊、數(shù)字,、字符串都是對象,,并且完全支持繼承、重載,、派生,、多繼承,有益于增強(qiáng)源代碼的復(fù)用性,。Python 支持重載運(yùn)算符和動態(tài)類型,。
  7. 可擴(kuò)充,Python 提供了豐富的 API 和工具,,以便程序員能夠輕松地使用 C 語言,、C++、Cython 來編寫擴(kuò)充模塊,。Python 編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi),。因此,很多人還把 Python 作為一種“膠水語言”(Glue Language)使用,。使用 Python 將其他語言編寫的程序進(jìn)行集成和封裝,。

Python 發(fā)展

Python 誕生至今已經(jīng)成為最受歡迎的程序設(shè)計語言之一。自2004年以后,,Python 的使用率一直呈線性增長,。根據(jù) TIOBE 編程語言社區(qū)發(fā)布的2018年1月排行榜,Python 已經(jīng)超過 C# 躍居熱門編程語言的第四位,。

由于 Python 語言的簡潔性,、易讀性以及可擴(kuò)展性,在國外用 Python 做科學(xué)計算的研究機(jī)構(gòu)日益增多,,一些知名大學(xué)已經(jīng)采用 Python 來教授程序設(shè)計課程,。例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計算機(jī)科學(xué)及編程導(dǎo)論就使用 Python 語言講授,。眾多開源的科學(xué)計算軟件包都提供了 Python 的調(diào)用接口,,例如著名的計算機(jī)視覺庫 OpenCV,、三維可視化庫 VTK,、醫(yī)學(xué)圖像處理庫 ITK,。而 Python 專用的科學(xué)計算擴(kuò)展庫就更多了,例如十分經(jīng)典的科學(xué)計算擴(kuò)展庫:NumPy,、SciPy 和 Matplotlib,,它們分別為 Python 提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能,。因此 Python 語言及其眾多的擴(kuò)展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù),、科研人員處理實驗數(shù)據(jù)、制作圖表,,甚至開發(fā)科學(xué)計算應(yīng)用程序,。

Python 前景

未來是人工智能的時代,有理由相信 Python 將發(fā)揮更大的作用,。經(jīng)過多年的演進(jìn),,人工智能發(fā)展進(jìn)入了新階段。為搶抓人工智能發(fā)展的重大戰(zhàn)略機(jī)遇:

  • 2017年7月20日,,國務(wù)院印發(fā)了《新一代人工智能發(fā)展規(guī)劃》,,提出了面向2030年我國新一代人工智能發(fā)展的指導(dǎo)思想、戰(zhàn)略目標(biāo),、重點任務(wù)和保障措施,。
  • 2017年 10 月 11 日,教育部考試中心發(fā)布了“關(guān)于全國計算機(jī)等級(NCRE)體系調(diào)整”的通知,,決定自 2018 年 3月起,,在計算機(jī)二級考試加入了“Python 語言程序設(shè)計”科目。
  • 2018年1月16日上午,,教育部召開新聞發(fā)布會,,介紹了《普通高中課程方案和語文等學(xué)科課程標(biāo)準(zhǔn)(2017年版)》的有關(guān)情況,在此次“新課標(biāo)”改革中,,正式將人工智能,、物聯(lián)網(wǎng)、大數(shù)據(jù)處理劃入新課標(biāo),,這也就意味著今年秋季入學(xué)的高中生,,將要開始學(xué)習(xí) Python 了。

學(xué)習(xí) Python

當(dāng)前,,Python 已經(jīng)成為人工智能領(lǐng)域最流行的編程語言,,而人工智能的火熱又反過來促進(jìn)了 Python 的發(fā)展。在國家層面力量的大力推動下,,Python 普及的速度定將大大加快,,無論是作為輔助工具還是跟隨時代步伐,學(xué)習(xí) Python 都是很有意義的。

兩年前,,因項目需要,,作者首次接觸 Python,從此便一發(fā)不可收,,基于 Python 完成了一系列項目的開發(fā),。一路走來,深感書本與實踐脫離之痛,,市面上種類繁多的編程輔導(dǎo)書,,大都力求面面俱到,動輒數(shù)百頁,,難免令初學(xué)者望而生畏,。鑒于此,作者寫了本課程,,試圖以一種簡明的形式,,帶領(lǐng)讀者走近 Python。


第01課:Python 開發(fā)環(huán)境搭建及預(yù)備知識

特別說明

如果讀者已經(jīng)搭建了 Python 開發(fā)環(huán)境,,可跳過本章第一部分,,但需要注意,本課程列舉的實例代碼中部分有中文注釋,,有些集成開發(fā)環(huán)境可能不支持中文注釋,,因此,運(yùn)行本課程實例時請注意將注釋去掉,。另外,,如果讀者覺得搭建開發(fā)環(huán)境比較繁瑣,可采用 Python 自帶的 IDLE 作為開發(fā)環(huán)境,,安裝方法請訪問:《Python3入門筆記》,。

Python 開發(fā)環(huán)境搭建

開發(fā) Python 的 IDE 有很多,本文介紹基于 Eclipse+PyDev+Python 搭建開發(fā)環(huán)境的方法,。

  • Eclipse 簡介

Eclipse 是一款基于 Java 的可擴(kuò)展開發(fā)平臺,。其官方下載中包括 J2EE 方向版本、Java 方向版本,、C/C++ 方向版本,、移動應(yīng)用方向版本等諸多版本。除此之外,,Eclipse 還可以通過安裝插件的方式進(jìn)行諸如 Python,、Android、PHP 等語言的開發(fā),。本文將要介紹的就是使用 Eclipse 與 PyDev 插件,,安裝 Python 開發(fā)環(huán)境的方法,。

  • 環(huán)境

OS:Windows 7

Python:3.6.2

Java:8u31

Win7 32位,Mac OS 操作系統(tǒng)同下述安裝方法,。

軟件下載

Eclipse 下載

我們可以進(jìn)入 Eclipse 官網(wǎng)下載界面下載 Eclipse 軟件,。在該頁面,可以看到針對不同開發(fā)需求的 Eclipse 版本,,本文采用的是 Eclipse IDE for Java and DSL Developers。目前,,最新的版本是 Eclipse Oxygen.2 (4.7.2) Release,,為2017年10月放出的版本。另外,,還需要注意的是,,需要根據(jù)自己的操作系統(tǒng)選擇正確的系統(tǒng)位數(shù)(32/64bits)。

PyDev 離線下載

我們可以在 PyDev 項目下載頁面看到一些有價值的信息:

  1. Eclipse,、Java,、PyDev 的版本對應(yīng)關(guān)系;
  2. Eclipse 在線安裝 PyDev 的 URL,;
  3. 離線安裝 PyDev 下載地址(Get zip releases),,點擊可以進(jìn)入 SourceForge 的下載頁面。本文介紹離線下載方法,。

enter image description here

Eclipse 安裝

這里要注意,,Eclipse 安裝需要 Java 環(huán)境,如果還沒有安裝 Java 環(huán)境,,請先去下載安裝 JDK(點擊這里),。

Eclipse 實際上是一個基于 OSGI 框架的軟件,在 Windows 系統(tǒng)上無需安裝,,只需要將其解壓,,雙擊打開 eclipse.exe 即可。在 Mac OS 上則有所不同,,需要雙擊 .dmg 文件安裝,。在第一次運(yùn)行時,會要求你輸入工作路徑,,你可以自定義也可以接受默認(rèn)路徑,。

PyDev 插件安裝

Eclipse 插件的安裝方式有離線和在線兩種,本文介紹在線安裝方法,。

打開 Eclipse,,選擇“Help”->“Install New Software”。在彈出的對話框中,,點擊 Add 按鈕,,添加新的安裝源,,如下圖所示。

enter image description here

在 Location 處填寫安裝源的網(wǎng)址:http://www./updates/(很多博客中寫的是http:///updates),,這個地址并非一成不變,,因此,最好到官網(wǎng)確認(rèn)一下,。確認(rèn)方法在上面“軟件下載”小節(jié)中已有說明,。

此外,需取一個名字填寫在 Name 處,,比如我這里寫的是 PyDev,。把“connect all update sites during install to find required software”的勾選去掉,否則在安裝新插件時會聯(lián)網(wǎng)尋找所有可能的更新站點搜索,,導(dǎo)致安裝時間不可預(yù)估,,并可能導(dǎo)致安裝失敗。確定后可以看到一個 Pending 過程,,然后得到如下圖所示的插件,,一般來說,我們只需選擇 PyDev 即可,,這里我兩個都安裝了(不推薦):

enter image description here

勾選后,,點擊 Next 進(jìn)行安裝。不過,,由于網(wǎng)絡(luò)的原因,,這種方法安裝 PyDev 極有可能失敗,提示網(wǎng)絡(luò)連接錯誤等,。

Python 安裝

Python 的安裝比較簡單,,前往 Python 官網(wǎng)下載安裝包。進(jìn)入官網(wǎng)之后,,官網(wǎng)會根據(jù)你的計算機(jī)操作系統(tǒng)推薦 Python 安裝包的版本,,如下圖所示,你可以根據(jù)推薦下載最新的安裝包,,需要注意的是,,Python 目前有 Python2 和 Python3 兩個大版本,差異顯著,,本課程基于 Python3 編寫,,因此,請讀者選擇 Python3.X 安裝包,,具體內(nèi)容安裝步驟可參考博文《Python3 入門筆記——Windows 安裝與運(yùn)行》,。

enter image description here

PyDev 插件配置

安裝好 PyDev 插件后,并不能正常使用,,還需要配置 Python 的解釋器,。

打開Eclipse,,選擇“Window” -> “Preferences”(如果是 Mac,則同時按下 Command 和 ,, 鍵喚出 Preference),,找到“PyDev”,選擇其中的“Interpreter” –> “Python”,。點擊“New”,,添加一個系統(tǒng)里已有的 Python 解釋器的路徑(根據(jù)自己安裝的路徑確定)。確定后會經(jīng)過短暫的處理,,得到它的 Libraries,、Buildins 等。當(dāng)然,,還可以根據(jù)自己的編程習(xí)慣對 PyDev 進(jìn)行一些其他的配置,,這里就不再說了,。

enter image description here

創(chuàng)建一個 Python 項目

前面就已經(jīng)配置好了 Python 的開發(fā)環(huán)境,,下面新建一個項目,來測試一下,,確實可以運(yùn)行,。

點擊“File” -> “New” -> “Other”,找到“PyDev”,,選擇“PyDev Project”,,點擊“Next”。取一個項目名稱,,比如 helloPython,,此外,還可以選擇 Python 的語言版本和解釋器版本,,如下圖所示:

enter image description here

點擊“Finish”,,完成項目創(chuàng)建,。然后你會進(jìn)入 PyDev 視圖,,進(jìn)行 Python 開發(fā)。這里,,我們就寫一個最簡單的程序,,進(jìn)行測試,。右鍵項目的 src 目錄,選擇“New” -> “PyDev Package”,,創(chuàng)建一個 Python 包,,此處也命名為 helloPython。再右鍵該 package,,“New” -> “PyDev Module”,,此處也命名為 helloPython,。雙擊打開 helloPython.py,添加如下代碼,。

if __name__ == '__main__': 
    print("hello world!")  

右鍵項目,,選擇“Run As” -> “Python Run”,或 Ctrl+F11 運(yùn)行項目,。此時,,可以在下方的 Console 窗口,看到項目的運(yùn)行結(jié)果:hello world!,。

Python 預(yù)備知識

編程語言

編程語言(Programming Language),,是用來定義計算機(jī)程序的形式語言。它是一種被標(biāo)準(zhǔn)化的交流技巧,,用來向計算機(jī)發(fā)出指令,。計算機(jī)語言讓程序員能夠準(zhǔn)確地定義計算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動,。

解釋

上面的定義讀起來比較晦澀,,下面我通俗的解釋一下。

在人類發(fā)展史上,,一般將文字的出現(xiàn)視為文明的標(biāo)志,,無論是漢語,英語還是法語,,它們都是人類交流溝通的工具,。文字使得人類之間的溝通和交流變得有章可循,極大的提高了信息傳播的效率,。自計算機(jī)誕生之后,,人們一直希望給計算機(jī)賦予語言的特性,使計算機(jī)像人一樣的溝通,,而編程語言則可看作人與計算機(jī)之間“交流溝通”的工具,,它使得人類和計算機(jī)之間的高效交流得以實現(xiàn)。

高級編程語言

在實踐中,,人們意識到人和計算機(jī)直接“交流”相當(dāng)困難,,計算機(jī)能夠直接理解的語言是0和1構(gòu)成的機(jī)器碼,而這種機(jī)器碼并不符合人類的認(rèn)知習(xí)慣,,因此,,高級編程語言應(yīng)運(yùn)而生。

何為高級呢,?指的是符合人類的理解習(xí)慣和思維方式,,遠(yuǎn)離計算機(jī)底層。高級編程語言(如 Java,,Python)使得人們能夠以相對容易的方式將期望計算機(jī)執(zhí)行的指令表達(dá)成文,。但是,,這種高級語言寫成的“文章”,計算機(jī)是無法直接理解的,,因此,,還需要一個“翻譯”,將人們編寫的高級語言按照規(guī)則翻譯成計算機(jī)能夠理解的機(jī)器語言,。根據(jù)編程語言的不同,,這里的“翻譯”也有顯著區(qū)別。關(guān)于人與計算機(jī)之間的“交流”,,簡略的示意圖如下:

enter image description here

與 Java 和 C++ 差別顯著

學(xué)習(xí)過 C/C++,、Java 的讀者一定還記得定義變量的方法,如下例子,,定義 a,、b、c,、d 四個變量,,其數(shù)值類型分別為 int、double,、long,、float,,定義變量的時候,,我們需要“顯式”的聲明變量的類型,以便在內(nèi)存中為該變量開辟空間,,不同的數(shù)據(jù)類型占用的內(nèi)存空間是不同的,,所以必須要聲明。

int a;
double b;
long c;
float d;

與 C++ 和 Java 不同,,Python 中變量沒有類型,,更談不上聲明變量類型,變量只是對象的引用,,而 Python 的所有類型都是對象,,包括函數(shù)、模塊,、數(shù)字,、字符串、列表,、元組,、字典等等。

如下所示,,定義變量 a 并賦值,,同一個變量在同一段程序中三次被賦值不同的類型,,之所以能如此操作,就是因為變量沒有類型,,它可以指向任何類型,,單從這一點來看,Python 與 C++,、Java 差別是很明顯的,。

# -*- coding: UTF-8 -*

a = 12
print("a=", a)
a = "ABCDE"
print("a=", a)
a = 1 + 4j
print("a=", a)

執(zhí)行結(jié)果: a= 12 a= ABCDE a= 1+4j

本課程實例的說明

為了便于讀者更好的理解,本課程列舉了很多程序?qū)嵗?,其中部分程序涉及中文注釋,,另外,為了直觀的展現(xiàn)程序執(zhí)行的結(jié)果,,課程中的實例大量使用 print 語句將結(jié)果打印到控制臺,,便于讀者觀察。

關(guān)于本課程的實例風(fēng)格,,這里舉一個簡單的例子:

# -*- coding: UTF-8 -*

#自定義函數(shù),,求兩個數(shù)的和
def add(a, b):
    return a + b;

#直接調(diào)用內(nèi)建函數(shù)pow(x,y),計算x的y次方
print('10的3次方 = %d' %pow(10,3))
print('1 + 2 = %d' %add(1,2))

執(zhí)行結(jié)果:
103次方 = 1000
1 + 2 = 3
特別說明

上面例子中,有兩點需要解釋一下,。

  • # -*- coding: UTF-8 -*

Python 默認(rèn)是以 ASCII 作為編碼方式的,,如果在自己的 Python 源碼中包含了中文(或者其他非英語系的語言),即使你把自己編寫的 Python 源文件以 UTF-8 格式保存了,,運(yùn)行時仍可能會報錯:SyntaxError: Non-ASCII character '\xe5' in file XXX.py on line YY, but no encoding declared;

解決辦法:在每一個包含中文或其它語言注釋的 Python 腳本文件的第一行,,加入以下聲明:

# -*- coding: UTF-8 -*-
  • #

“#”表示注解,在代碼中輸入它的時候,,它右邊的所有內(nèi)容都將被忽略,,注解是極為有用的,不僅有助于別人理解自己的代碼,,也可以提示自己,。

通過命令運(yùn)行 Python 腳本

上面的例子中,我們運(yùn)行 Python 腳本都是通過 Eclipse IDE(集成開發(fā)環(huán)境)完成的,,事實上運(yùn)行程序的方法很多,,對于 Python 語言而言,我們可以直接以命令的方式運(yùn)行,。

Windows 系統(tǒng)

進(jìn)入 Python 腳本 test.py 所在路徑下,,鍵入命令:Python test.py。

注意:Python 首字母大寫,。

Linux 或 Unix 系統(tǒng):

進(jìn)入 Python 腳本 test.py 所在路徑下,,鍵入命令:python test.py。

注意:Python 首字母小寫。


第02課:數(shù)字和運(yùn)算符

數(shù)字

Python 提供了三種數(shù)字類型,,即 int(整型),,float(浮點型),complex(復(fù)數(shù)),。

  1. int:通常被稱為整型或者整數(shù),,如100、99,、1,、3都屬于整型;
  2. float:浮點數(shù)包含整數(shù)和小數(shù)部分,,如3.1415,,12.578712;
  3. complex:復(fù)數(shù)包含實數(shù)部分和虛數(shù)部分,,形如 a+bj,,其實部和虛部都是浮點類型。

需要注意的是,,Python3 已經(jīng)廢棄了 Python2 的 Long(長整型),,在 Python3 中,int 的大小沒有限制,,可以作為 Long 使用,。

數(shù)字類型轉(zhuǎn)換

Python 的三種數(shù)字類型可以進(jìn)行相互轉(zhuǎn)換,轉(zhuǎn)換方式為:數(shù)字類型+圓括號,,如下實例:

a = 123
b = 3.1415926

print("int(b)=",int(b))
print("float(a)=",float(a))
print("complex(a)=",complex(a))
print("complex(a,b)=",complex(a,b))

執(zhí)行結(jié)果:

int(b)= 3
float(a)= 123.0
complex(a)= (123+0j)
complex(a,b)= (123+3.1415926j)

常用的數(shù)學(xué)函數(shù)

Python 提供了豐富的數(shù)學(xué)函數(shù)以降低編程實現(xiàn)的難度,,本節(jié)將介紹一些常用的函數(shù)。

import math
#求絕對值:abs(x)
print("abs(-12)=",abs(-12))

#向上取整:ceil(x)
print("ceil(3.1415)=",math.ceil(3.1415))

#向下取整:floor(x)
print("floor(3.678)=",math.floor(3.678))

#四舍五入:round(x)
print("round(3.678)=",round(3.678))

#乘方運(yùn)算:pow(x,y),x的y次方
print("pow(3,4)=",pow(3,4))

#求平方根:sqrt(x)
print("sqrt(144)=",math.sqrt(144))

執(zhí)行結(jié)果:

abs(-12)= 12
ceil(3.1415)= 4
floor(3.678)= 3
round(3.678)= 4
pow(3,4)= 81
sqrt(144)= 12.0

運(yùn)算符

計算機(jī)的最基本用途之一就是執(zhí)行數(shù)學(xué)運(yùn)算,,作為一門計算機(jī)語言,,Python 也提供了一套豐富的運(yùn)算符來滿足各種運(yùn)算需求,。

Python 運(yùn)算符大致可分為7種,,即算術(shù)運(yùn)算符、比較運(yùn)算符,、賦值運(yùn)算符,、邏輯運(yùn)算符、位運(yùn)算符,、成員運(yùn)算符以及身份運(yùn)算符,。

算術(shù)運(yùn)算符

對算術(shù)運(yùn)算,大家并不陌生,,常用的加減乘除就是算術(shù)運(yùn)算,。不過,在編程語言里,,算術(shù)運(yùn)算的符號特殊一些,,Python 中的算術(shù)運(yùn)算有7種:加(+),、減(-)、乘(),、除(/),、取模(%)、冪運(yùn)算(*)和取整預(yù)算(//),。以下通過實例演示算術(shù)運(yùn)算符的用法,。

#初始化測試數(shù)據(jù)
X = 24
Y = 5
Z = 0
#分別進(jìn)行7種算術(shù)運(yùn)算
Z = X + Y 
print("X + Y =", Z)
Z = X - Y 
print("X - Y =", Z)
Z = X * Y 
print("X * Y =", Z)
Z = X / Y 
print("X / Y =", Z)
Z = X % Y 
print("X % Y =", Z)
Z = X ** Y 
print("X ** Y =", Z)
Z = X // Y 
print("X // Y =", Z)

執(zhí)行結(jié)果:

X + Y = 29
X - Y = 19
X * Y = 120
X / Y = 4.8
X % Y = 4
X ** Y = 7962624
X // Y = 4

比較運(yùn)算符

比較無處不在,大于,、小于,、等于、不等于……和 C/C++,、Java 等編程語言一樣,,Python 也提供了6種比較運(yùn)算符:>(大于),<(小于),,==(等于),,!=(不等于),,>=(大于等于),,<=(小于等于)。比較運(yùn)算的結(jié)果是一個布爾值,,True 或者 False,,如下實例:

#初始化測試數(shù)據(jù)
X = 24
Y = 5
#分別進(jìn)行7種比較運(yùn)算
print("X == Y:", X == Y)
print("X != Y:", X != Y)
print("X > Y:", X > Y)
print("X < Y:", X < Y)
print("X >= Y:", X >= Y)
print("X <= Y:", X <= Y)

執(zhí)行結(jié)果:

X == Y: False
X != Y: True
X > Y: True
X < Y: False
X >= Y: True
X <= Y: False

賦值運(yùn)算

在前文的實例中已經(jīng)用到賦值運(yùn)算,如 X = 25,,就是一個最簡單的賦值運(yùn)算,,“=”就是最簡單的賦值運(yùn)算符。將簡單的賦值運(yùn)算與算術(shù)運(yùn)算結(jié)合,,Python 形成了豐富的賦值運(yùn)算符:+=,、-=、=,、/=,、%=、*=,、//=,。實例如下:

#初始化測試數(shù)據(jù)
X = 2
Y = 3
#分別進(jìn)行7種賦值運(yùn)算
Y = X 
print("Y = X, Y =", Y)
Y += X 
print("Y += X, Y =", Y)
Y -= X 
print("Y -= X, Y =", Y)
Y *= X 
print("Y *= X, Y =", Y)
Y /= X 
print("Y /= X, Y =", Y)
Y **= X 
print("Y **= X, Y =", Y)
Y //= X 
print("Y //= X, Y =", Y)

執(zhí)行結(jié)果:

Y = X, Y = 2
Y += X, Y = 4
Y -= X, Y = 2
Y *= X, Y = 4
Y /= X, Y = 2.0
Y **= X, Y = 4.0
Y //= X, Y = 2.0

邏輯運(yùn)算

所謂邏輯運(yùn)算,就是:與,、或,、非。Python 中3種邏輯運(yùn)算符分別為:and(與),or(或),,not(非),,邏輯運(yùn)算的結(jié)果是布爾值:True 或者 False。

  1. A and B:當(dāng) A 為 False 時,,運(yùn)算結(jié)果為 False,;否則返回 B 的值;
  2. A or B:當(dāng) A 為 True 時,,運(yùn)算結(jié)果為 A 的值,,否則返回 B 的值;
  3. not A:當(dāng) A 為 True 時,,返回 False,,否則返回 True。

如下實例:

#初始化測試數(shù)據(jù)
X = 2
Y = 3
Z = 5
#分別執(zhí)行3種邏輯運(yùn)算
print("X>Y and X<Z :", X>Y and X<Z)
print("X<Y and Z :", X<Y and Z)
print("X>Y or Z :", X>Y or X<Z)
print("X<Y or Z :", X<Y or Z)
print("X or X<Z :", X or X<Z)
print("not X :", not X)
print("not X<Y :", not X<Y)

執(zhí)行結(jié)果:

X>Y and X<Z : False
X<Y and Z : 5
X>Y or Z : True
X<Y or Z : True
X or X<Z : 2
not X : False
not X<Y : False

位運(yùn)算

程序中的所有數(shù)在計算機(jī)內(nèi)存中都是以二進(jìn)制的形式儲存的,。位運(yùn)算就是直接對整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作,。Python 中有6種位運(yùn)算符:

  1. &:按位與運(yùn)算符,參與運(yùn)算的兩個值,,如果兩個相應(yīng)位都為1,,則該位的結(jié)果為1,否則為0,;
  2. |:按位或運(yùn)算符,,只要對應(yīng)的二個二進(jìn)位有一個為1時,結(jié)果位就為1,;
  3. ^:按位異或運(yùn)算符,,當(dāng)兩對應(yīng)的二進(jìn)位相異時,結(jié)果為1,;
  4. ~:按位取反運(yùn)算符,,對數(shù)據(jù)的每個二進(jìn)制位取反,即把1變?yōu)?,,把0變?yōu)?,;
  5. >>:右移動運(yùn)算符,把 >> 左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,,>> 右邊的數(shù)指定移動的位數(shù),;
  6. <<:左移動運(yùn)算符,運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,,由 << 右邊的數(shù)指定移動的位數(shù),高位丟棄,,低位補(bǔ)0,。

舉個例子:a=21,b=6,將兩個數(shù)轉(zhuǎn)換為二進(jìn)制形式進(jìn)行位運(yùn)算,。

a = 0001 0101
b = 0000 0110

a&b = 0000 0100
a|b = 0001 0111
a^b = 0001 0011
~a = 1110 1010
a<<2 = 01010100
a>>2 = 0000 0101

成員運(yùn)算

除了上文介紹的5種運(yùn)算符,,Python 還支持成員運(yùn)算符。介紹成員運(yùn)算符之前,,我們需要提前了解一個概念:數(shù)據(jù)結(jié)構(gòu),,如字符串、列表,、元組,、字典。在接下來的章節(jié)中我們將詳細(xì)介紹這些基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),。字符串,、列表、字典,,它們就像一個集合,,其中包含若干元素,這些元素就是集合的成員,;對于一個給定的元素,,它有可能在一個給定的集合中,也可能不在,,Python 中采用成員運(yùn)算符來判斷元素是否屬于成員,,成員運(yùn)算的結(jié)果為布爾值,True 或者 False,。

如下實例:

#初始化一個字符串和列表
temp1 = "ABCDEFG"
temp2 = [4,2,3,5,8,9]
a = "CDE"
b = 5
c = "CDF"
print("a in temp1?", a in temp1)
print("b in temp2?", b in temp2)
print("c in temp1?", c in temp1)

執(zhí)行結(jié)果:

a in temp1? True
b in temp2? True
c in temp1? False

身份運(yùn)算符

身份運(yùn)算符用于比較兩個標(biāo)識符所引用對象的存儲單元,,計算結(jié)果為布爾值,包含兩個運(yùn)算符:is 和 is not,,分別用于判斷兩個標(biāo)識符是否引用自一個對象,。關(guān)于存儲單元的比較,涉及到對內(nèi)存模型的理解,,本節(jié)不做詳述,,留到后面章節(jié)介紹。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多