人工智能基礎(chǔ)實(shí)驗(yàn)教程_第1頁
人工智能基礎(chǔ)實(shí)驗(yàn)教程_第2頁
人工智能基礎(chǔ)實(shí)驗(yàn)教程_第3頁
人工智能基礎(chǔ)實(shí)驗(yàn)教程_第4頁
人工智能基礎(chǔ)實(shí)驗(yàn)教程_第5頁
已閱讀5頁,還剩309頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)閱讀全文

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

普通高等學(xué)?!笆奈濉毕盗薪滩?/p>

人工智能基礎(chǔ)實(shí)驗(yàn)教程

潘理虎宋婷◎主編

李建偉謝斌紅荀亞玲◎副主編

文前-05.indd12022/9/917:17:21

內(nèi)?容?簡?介

本書作為一本實(shí)驗(yàn)教程,最大的特色是簡明、實(shí)用、邏輯性強(qiáng)、可讀性好,使讀者在有限

的時間內(nèi)掌握人工智能的基本原理與應(yīng)用技術(shù)。

本書圍繞基礎(chǔ)知識點(diǎn)在前兩章介紹了Python基本開發(fā)環(huán)境及編程基礎(chǔ)語法、常用數(shù)據(jù)結(jié)構(gòu)

的使用;第3章介紹了機(jī)器學(xué)習(xí)中經(jīng)典算法及常用算法,包括邏輯回歸、決策樹、K近鄰、隨機(jī)

森林、支持向量機(jī)、樸素貝葉斯、AdaBoost、神經(jīng)網(wǎng)絡(luò)等算法的實(shí)現(xiàn);第4、5章介紹了深度學(xué)

習(xí)基礎(chǔ)知識和實(shí)現(xiàn)環(huán)境,以及深度神經(jīng)網(wǎng)絡(luò)經(jīng)典算法;第6~8章分別介紹了三大應(yīng)用領(lǐng)域——計(jì)

算機(jī)視覺的基礎(chǔ)算法及應(yīng)用實(shí)例、自然語言處理的基本應(yīng)用算法實(shí)現(xiàn)、智能機(jī)器人的基本操作

及功能實(shí)現(xiàn);最后兩章通過兩個嵌入式人工智能案例融合前面章節(jié)介紹的基礎(chǔ)算法,完整實(shí)現(xiàn)

了人工智能在實(shí)際生活中的應(yīng)用。

本書適合作為初學(xué)人工智能的本科及高職學(xué)生的專業(yè)教材,也可作為對人工智能愛好者的

參考用書。

圖書在版編目(CIP)數(shù)據(jù)

人工智能基礎(chǔ)實(shí)驗(yàn)教程/潘理虎,宋婷主編.—北京:

中國鐵道出版社有限公司,2022.9

ISBN978-7-113-29320-8

Ⅰ.①人…Ⅱ.①潘…②宋…Ⅲ.①人工智能-實(shí)驗(yàn)-

高等學(xué)校-教材Ⅳ.①TP18-33

中國版本圖書館CIP數(shù)據(jù)核字(2022)第111678號

書名:人工智能基礎(chǔ)實(shí)驗(yàn)教程

作者:潘理虎宋婷

策劃:何紅艷?????編輯部電話:(010)63560043

責(zé)任編輯:何紅艷張彤????????????????

封面設(shè)計(jì):劉莎

責(zé)任校對:孫玫

責(zé)任印制:樊啟鵬

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)址:/51eds/

印刷:北京建宏印刷有限公司

版次:2022年9月第1版2022年9月第1次印刷

開本:787?mm×1?092?mm?1/16?印張:19.5?字?jǐn)?shù):449千

書號:ISBN978-7-113-29320-8

定價:49.80元

版權(quán)所有侵權(quán)必究

凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836

打擊盜版舉報電話:(010)63549461

文前-05.indd22022/9/1316:41:47

前言

人工智能從起源至今已將近70年,它的發(fā)展過程一路荊棘,有低谷也有高潮。面對

與之相關(guān)的新理論、新技術(shù)的快速發(fā)展和經(jīng)濟(jì)社會發(fā)展的必然需求,人類社會從數(shù)字化、

網(wǎng)絡(luò)化向智能化加速躍進(jìn),生活中充斥著人工智能的概念,從而驅(qū)動人工智能的發(fā)展進(jìn)入

新的階段。正如“互聯(lián)網(wǎng)+”模式改變著我們的衣食住行各個方面一樣,人工智能模式以

同樣的方式席卷各個行業(yè)的細(xì)分領(lǐng)域,車聯(lián)網(wǎng)、家電、醫(yī)療、農(nóng)業(yè)、制造業(yè)等行業(yè)都需要

更加精準(zhǔn)的模式幫助人類處理復(fù)雜任務(wù)。

深度學(xué)習(xí)是人工智能前沿技術(shù)的核心,因此,學(xué)習(xí)和討論人工智能前沿技術(shù)必然要從

深度學(xué)習(xí)切入,其原理在于建立、模擬人腦進(jìn)行分析學(xué)習(xí),是利用人腦機(jī)制來解釋數(shù)據(jù)的

神經(jīng)網(wǎng)絡(luò)。經(jīng)過近些年的沉淀和發(fā)展,各種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和調(diào)優(yōu)方法的提出,深度學(xué)習(xí)性

能得到了大幅提升,相關(guān)的算法已經(jīng)具備了解決各種復(fù)雜問題的能力,以最低的成本使用

深度神經(jīng)網(wǎng)絡(luò)解決各個細(xì)分領(lǐng)域的問題成了人工智能爆發(fā)期的關(guān)鍵。

傳統(tǒng)的“人工智能”課程偏重理論,過于學(xué)術(shù)化

,現(xiàn)有教材中不缺乏基礎(chǔ)理論和前沿

進(jìn)展這類知識點(diǎn),但讀完之后可能仍然不知道怎么動手解決問題。本書希望在兼顧理論的

同時,在課程中強(qiáng)化實(shí)踐內(nèi)容,使理論與實(shí)踐相結(jié)合,這也成為課程發(fā)展的主要趨勢,需

要更通俗和直觀的方法引導(dǎo)零基礎(chǔ)的讀者開始人工智能的實(shí)踐學(xué)習(xí)。

從機(jī)器學(xué)習(xí)基礎(chǔ)算法開始介紹,結(jié)合相關(guān)應(yīng)用領(lǐng)域?qū)嵗约芭c生活相關(guān)的完整案例,

其中包括基于機(jī)器學(xué)習(xí)常用經(jīng)典算法的實(shí)例、基于深度神經(jīng)網(wǎng)絡(luò)的實(shí)例、計(jì)算機(jī)視覺領(lǐng)域

基礎(chǔ)應(yīng)用的算法實(shí)例、自然語言處理基礎(chǔ)應(yīng)用的算法實(shí)例及智能機(jī)器人的基本操作以及功

能實(shí)現(xiàn)。重點(diǎn)突出技術(shù)的可操作性,希望讀者在學(xué)習(xí)理論的同時,通過算法實(shí)現(xiàn)掌握人工

智能的基本方法,并能將其用于解決實(shí)際問題,實(shí)現(xiàn)更多進(jìn)展,如解決問題多樣性、提速

的同時縮減成本、不僅有好的性能指標(biāo)且方便好用等。最后兩章的完整案例通過嵌入式人

工智能呈現(xiàn)了機(jī)器如何通過學(xué)習(xí)來模擬人的智能,由此使讀者更加系統(tǒng)、深入地掌握計(jì)算

機(jī)人工智能的應(yīng)用實(shí)踐技能。

本書編寫分工如下:第1章由潘理虎編寫,第2、3、5~7章由宋婷編寫,第4章

文前-05.indd12022/9/917:17:21

II人工智能基礎(chǔ)實(shí)驗(yàn)教程

由李建偉編寫,第8章由謝斌紅編寫,第9、10章由荀亞玲編寫。全書由潘理虎統(tǒng)稿

并定稿。

在本書的成書過程中

,眾多老師和學(xué)生提供了熱心的幫助。首先要感謝太原科技大學(xué)

計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院為本書的編寫提供的良好測試環(huán)境,同時還要感謝太原科技大學(xué)計(jì)

算機(jī)科學(xué)與技術(shù)學(xué)院的所有同仁,他們?yōu)楸緯峁┝烁呶萁驳囊庖姾椭笇?dǎo)!感謝百科榮

創(chuàng)科技發(fā)展有限公司提供的實(shí)驗(yàn)設(shè)備及實(shí)驗(yàn)環(huán)境的技術(shù)支持!感謝山西省高等教育“1331

工程”立德樹人提質(zhì)增效計(jì)劃建設(shè)項(xiàng)目——太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)國家級一流本

科專業(yè)建設(shè)項(xiàng)目的支持!

由于編者水平有限,書中難免有疏漏之處

,敬請讀者批評指正。

編??者

2022年4月

文前-05.indd22022/9/917:17:21

目錄

第1章Python編程基礎(chǔ)...........13.2AdaBoost分類算法.............................63

1.1Python基礎(chǔ)語法........................................13.3KNN算法......................................................69

1.1.1基礎(chǔ)知識.............................13.4基于KD樹的KNN算法....................74

1.1.2運(yùn)算符..................................43.5支持向量機(jī)SVM....................................78

1.1.3注釋與縮進(jìn)...........................73.6樸素貝葉斯分類器..................................85

1.2Python基本語句........................................83.7決策樹.............................................................90

1.2.1條件控制語句......................93.8Kmeans算法.............................................99

1.2.2循環(huán)控制語句.....................103.9線性回歸.....................................................106

1.3Python開發(fā)環(huán)境的安裝和使用....133.10PCA降維實(shí)驗(yàn).....................................116

1.4集成開發(fā)環(huán)境PyCharm的第4章深度學(xué)習(xí)................122

安裝和使用.................................................16

4.1深度學(xué)習(xí)基礎(chǔ)知識...............................122

1.5輸出函數(shù)實(shí)驗(yàn).............................................20

4.1.1傳統(tǒng)機(jī)器學(xué)習(xí)和深度

1.6Python文件I/O實(shí)驗(yàn).........................23

學(xué)習(xí)方法...........................122

第2章Python數(shù)據(jù)結(jié)構(gòu)..........274.1.2深度學(xué)習(xí)發(fā)展階段............123

2.1基礎(chǔ)數(shù)據(jù)結(jié)構(gòu).............................................274.1.3深度學(xué)習(xí)特點(diǎn)....................124

2.2Python字符串實(shí)驗(yàn)...............................284.2TensorFlow框架...............................124

2.3Python列表實(shí)驗(yàn).....................................334.2.1TensorFlow簡介..............125

2.3.1列表的序列化操作..............334.2.2Tensor基本概念...............126

2.3.2列表推導(dǎo)式和生成器4.2.3創(chuàng)建常量與變量...............127

???表達(dá)式.................................404.3TensorFlow安裝與配置...............128

2.4Python元組實(shí)驗(yàn).....................................424.4PyTorch安裝與配置.........................131

2.5Python字典實(shí)驗(yàn).....................................474.5數(shù)據(jù)操作實(shí)驗(yàn)..........................................134

2.6類與對象........................................................51第5章神經(jīng)網(wǎng)絡(luò)構(gòu)建.............146

2.7Python函數(shù)................................................54

5.1神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)原理...............................146

第3章機(jī)器學(xué)習(xí)..................585.1.1基礎(chǔ)概念...........................146

3.1機(jī)器學(xué)習(xí)基礎(chǔ)知識..................................585.1.2神經(jīng)網(wǎng)絡(luò)的參數(shù)................147

3.1.1概述.....................................585.1.3模型訓(xùn)練...........................148

3.1.2學(xué)習(xí)形式分類......................595.2神經(jīng)網(wǎng)絡(luò)一元線性回歸....................150

文前-05.indd12022/9/917:17:21

2人工智能基礎(chǔ)實(shí)驗(yàn)教程

5.3神經(jīng)網(wǎng)絡(luò)多元線性回歸....................153第8章智能機(jī)器人..............258

5.4神經(jīng)網(wǎng)絡(luò)非線性回歸..........................1568.1機(jī)器人硬件................................................259

5.5基礎(chǔ)神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)...............................1598.2開發(fā)環(huán)境.....................................................261

5.6高級神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)...............................1628.2.1虛擬機(jī)開發(fā)環(huán)境................261

5.7卷積神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)...............................1668.2.2網(wǎng)絡(luò)配置..........................263

5.8手寫數(shù)字識別實(shí)驗(yàn)——CNN.........1758.2.3開發(fā)主機(jī)SSH登錄Nano.....264

5.9循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)...............................1808.2.4編程開發(fā)環(huán)境....................264

第6章計(jì)算機(jī)視覺..............1898.3ROS基本操作........................................265

8.4OpenCV機(jī)器人視覺開發(fā).............268

6.1圖像基礎(chǔ)知識..........................................189

8.5語音合成開發(fā)..........................................273

6.2圖像均值濾波實(shí)驗(yàn)...............................191

8.6SLAM激光雷達(dá)建圖........................275

6.3圖像中值濾波實(shí)驗(yàn)...............................196

6.4圖像分割實(shí)驗(yàn)..........................................199第9章應(yīng)用開發(fā)實(shí)訓(xùn)案例.

6.5仿射變換實(shí)驗(yàn)..........................................203——智能家居............279

6.6三角形仿射實(shí)驗(yàn).....................................2069.1基于深度卷積神經(jīng)網(wǎng)絡(luò)的

6.7基于Hopfield神經(jīng)網(wǎng)絡(luò)的...表情識別...................................................280

..圖片識別......................................................2099.2氛圍燈控制..............................................283

6.8基于支持向量機(jī)的人臉識別.........2129.3人臉表情識別模型推理功能

6.9基于隱馬爾科夫的語音識別.........217...插件構(gòu)建.....................................................284

第7章自然語言處理............2259.4氛圍燈控制系統(tǒng)功能插件構(gòu)建.....287

7.1NLP概述....................................................225第10章應(yīng)用開發(fā)實(shí)訓(xùn)案例.

7.2詞性標(biāo)注.....................................................227——智能停車場........290

7.3中文分詞——逆向最大匹配..........23110.1車牌識別模型.......................................291

7.4中文分詞——基于隱馬爾科夫10.2閘機(jī)控制系統(tǒng).......................................297

...模型................................................................23310.3車牌識別功能插件構(gòu)建.................298

7.5文本分類實(shí)驗(yàn)..........................................23710.4道閘控制功能插件構(gòu)建.................303

7.6文本模式識別實(shí)驗(yàn)...............................243

7.7GloVe詞向量模型..............................247

文前-05.indd22022/9/917:17:22

第1章

Python編程基礎(chǔ)

Python是一門編程語言,在人工智能領(lǐng)域有非常廣泛的應(yīng)用,是適合人工智能開發(fā)

的編程語言。Python語言編寫簡單,使用方便,得益于其自身的設(shè)計(jì)特點(diǎn)。人工智能包

含機(jī)器學(xué)習(xí)和深度學(xué)習(xí)兩個重要的模塊,而Python積累了大量的工具庫、架構(gòu),當(dāng)人工

智能涉及大量的數(shù)據(jù)計(jì)算時,用Python自然、簡單而高效。Python可用于數(shù)據(jù)處理、數(shù)

據(jù)分析、數(shù)據(jù)建模和繪圖,基本上機(jī)器學(xué)習(xí)中對數(shù)據(jù)的爬?。╯crapy、requests、selenium、

beautifulsoup)、對數(shù)據(jù)的處理和分析(pandas、numpy、scipy)、對數(shù)據(jù)的繪圖(matplotlib)

和對數(shù)據(jù)的建模(sklearn、nltk、keras)在Python中全都能找到對應(yīng)的庫來進(jìn)行處理。

學(xué)習(xí)Python語言可以分為三步:一是學(xué)習(xí)Python語言的基本語法,形成Python編程

思想;二是學(xué)習(xí)采用Python進(jìn)行數(shù)據(jù)分析,可以從機(jī)器學(xué)習(xí)開始;三是通過實(shí)踐來積累經(jīng)

驗(yàn),可以基于大數(shù)據(jù)平臺來完成各種開發(fā)、分析任務(wù)。

1.1Python基礎(chǔ)語法

1.1.1基礎(chǔ)知識

1.編譯方式

Python編譯方式分為交互式編譯和腳本式編譯,交互式編譯通過Python解釋器的交互

模式編寫代碼,如可以在Linux的命令行中輸入命令“Python3”啟動交互式編譯:

bkrc@bkrc:~$python3

Python3.7.3(default,Apr32020,05:39:12)

>>>

“>>>”后敲入Python代碼,輸入的代碼是立即運(yùn)行的,并且將每一行Python代碼的

運(yùn)行結(jié)果自動打印出來。

腳本式編譯將代碼寫入以py為后綴的文件中,在終端命令行中調(diào)用Python解釋器加

文前-05.indd12022/9/917:17:22

2人工智能基礎(chǔ)實(shí)驗(yàn)教程

載執(zhí)行文件中的Python代碼。下面創(chuàng)建一個sayhello.py文件,內(nèi)容是“HelloWorld!”,

分別用雙引號("?")和單引號('?')輸出,結(jié)果一致。實(shí)例如下:

bkrc@bkrc:~$cat>sayhello.py

print("HelloWorld!")

print('HelloWorld!')

運(yùn)行sayHello.py腳本,運(yùn)行結(jié)果如下:

bkrc@bkrc:~$python3sayHello.py

HelloWorld!

HelloWorld!

Python允許一行書寫多個語句,用分號“;”分開,實(shí)例如下:

>>>1+2;print("sayhello");2+4

3

sayhello

6

2.變量類型及變量定義

編程語言需要處理的數(shù)據(jù)類型有數(shù)字、字符、字符串等,可以直接使用數(shù)據(jù),也可以

將數(shù)據(jù)保存到變量(Variable)中,方便以后使用,和變量相對應(yīng)的是常量(Constant),

它們都是用來“盛裝”數(shù)據(jù)的小箱子。程序中的數(shù)據(jù)最終都存放到內(nèi)存中,變量/常量是

這塊內(nèi)存的名字,存儲在內(nèi)存中的值意味著在創(chuàng)建變量/常量時會在內(nèi)存中開辟一個空間,

給每個變量和常量定義專門的名字,通過名字引用其中的數(shù)據(jù)。區(qū)別在于變量保存的數(shù)據(jù)

可以被多次修改,而常量一旦保存某個數(shù)據(jù)之后就不能修改了。

Python中并未提供如C、C++、Java一樣的const修飾符,Python程序一般通過約定

俗成的變量名全大寫的形式表示這是一個常量,然而這種方式并沒有真正實(shí)現(xiàn)常量,其對

應(yīng)的值仍然可以被改變。Python提供了新的方法實(shí)現(xiàn)常量:即通過自定義類實(shí)現(xiàn),這要求

符合“命名全部大寫”和“值一旦被綁定便不可再修改”這兩個條件。

變量可以指定不同的數(shù)據(jù)類型,這些變量可以存儲整數(shù)、小數(shù)或字符。Python中變量

定義不需要類型聲明,由類型推斷自動完成。變量賦值使用等號(=),等號(=)運(yùn)算符

左邊是定義的變量名,右邊是存儲在變量中的值。實(shí)例如下:

#-*-coding:utf-8-*-

counter=10#整型變量

miles=10.0#浮點(diǎn)型

name="Wang"#字符串

print(counter)

print(miles)

print(name)

運(yùn)行結(jié)果如圖1.1所示。

文前-05.indd22022/9/917:17:22

第1章Python編程基礎(chǔ)3

1

圖1.1變量定義示例代碼

3.標(biāo)識符

在程序中自定義的類名、函數(shù)名、變量等符號和名稱,稱為標(biāo)識符。Python中,標(biāo)識

符由字母、數(shù)字、下畫線(_)組成,區(qū)分大小寫,命名規(guī)則如下:

(1)標(biāo)識符是由字符(A~Z和a~z)、下畫線和數(shù)字組成,第一個字符不能是數(shù)字。

(2)標(biāo)識符不能和Python中的保留字相同。

(3)Python中的標(biāo)識符,不能包含空格、@、%以及$等特殊字符。

舉例不合法的標(biāo)識符如下:

4word#不能以數(shù)字開頭

try#try是保留字,不能作為標(biāo)識符

$money#不能包含特殊字符

Python語言中,以下畫線開頭的標(biāo)識符有特殊含義,除非特定場景需要,應(yīng)避免使用

以下畫線開頭的標(biāo)識符。例如:

以單下畫線開頭的標(biāo)識符(如_width),表示不能直接訪問的類屬性,其無法通過

from...import*的方式導(dǎo)入;

以雙下畫線開頭的標(biāo)識符(如__add)表示類的私有成員;

以雙下畫線作為開頭和結(jié)尾的標(biāo)識符(如__init__),是專用標(biāo)識符。

4.Python關(guān)鍵字

Python的關(guān)鍵字是保留字,不能用作標(biāo)識符,可以使用如下命令查看Python中的所有

關(guān)鍵字:

>>>importkeyword

>>>keyword.kwlist

['False','None','True','and','as','assert','async','await','break',

'class','continue','def','del','elif','else','except','?nally','for',

'from','global','if','import','in','is','lambda','nonlocal','not',

'or','pass','raise','return','try','while','with','yield']

文前-05.indd32022/9/917:17:22

4人工智能基礎(chǔ)實(shí)驗(yàn)教程

1.1.2運(yùn)算符

Python語言支持表1.1~表1.7類型的運(yùn)算符:算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、

賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。

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

表1.1列出了常用算術(shù)運(yùn)算符及其用法,通過以下實(shí)例實(shí)現(xiàn)算術(shù)運(yùn)算符的基本操作:

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

運(yùn)算符描述實(shí)例(a=10,b=20)

+加——兩個對象相加a+b輸出結(jié)果30

-減——得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù)a-b輸出結(jié)果-10

*乘——兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串a(chǎn)*b輸出結(jié)果200

/除——b除以ab/a輸出結(jié)果2

%取?!祷爻ǖ挠鄶?shù)b%a輸出結(jié)果0

**冪——返回a的b次方a**b為10的20次方,輸出結(jié)果100000000000000000000

>>>9//2

4

//取整除——返回商的整數(shù)部分(向下取整)

>>>-9//2

-5

實(shí)例:

#-*-coding:utf-8-*-

a=25

b=10

c=0

c=a+b

print("{}+{}={}".format(a,b,c))

c=a-b

print("{}-{}={}".format(a,b,c))

c=a*b

print("{}*{}={}".format(a,b,c))

c=a/b

print("{}/{}={}".format(a,b,c))

c=a%b

print("{}%{}={}".format(a,b,c))

#修改變量a、b、c運(yùn)行結(jié)果:

a=225+10=35

b=325-10=15

c=a**b25*10=250

print("{}**{}={}".format(a,b,c))25/10=2.5

a=1025%10=5

b=52**3=8

c=a//b10//5=2

print("{}//{}={}".format(a,b,c))

文前-05.indd42022/9/1316:35:06

第1章Python編程基礎(chǔ)5

2.比較運(yùn)算符

表1.2列出了常用比較運(yùn)算符及其用法,通過以下實(shí)例實(shí)現(xiàn)比較運(yùn)算符的操作:

表1.2比較運(yùn)算符

運(yùn)算符描述實(shí)例(x=10,y=20)1

==等于——比較對象是否相等(x==y)返回False

!=不等于——比較兩個對象是否不相等(x!=y)返回True.

<>不等于——比較兩個對象是否不相等。Python3已廢棄(x<>y)返回True。這個運(yùn)算符類似!=

>大于——返回x是否大于y(x>y)返回False

小于——返回x是否小于y。所有比較運(yùn)算符返回1表示真,返

<(x<y)返回True

回0表示假。這分別與特殊的變量True和False等價

>=大于等于——返回x是否大于等于y(x>=y)返回False

<=小于等于——返回x是否小于等于y(x<=y)返回True

實(shí)例:

x=1運(yùn)行結(jié)果:

y=2

x==y:False

print("x==y:",x==y)

x!=y:True

print("x!=y:",x!=y)

x>y:False

print("x>y:",x>y)

x<y:True

print("x<y:",x<y)

print("x>=y:",x>=y)x>=y:False

print("x<=y:",x<=y)x<=y:True

3.賦值運(yùn)算符

表1.3列出了常用賦值運(yùn)算符及其用法,通過以下實(shí)例實(shí)現(xiàn)賦值運(yùn)算符的操作:

表1.3賦值運(yùn)算符

運(yùn)算符描述實(shí)例

=簡單的賦值運(yùn)算符c=a+b將a+b的運(yùn)算結(jié)果賦值為c

+=加法賦值運(yùn)算符c+=a等效于c=c+a

-=減法賦值運(yùn)算符c-=a等效于c=c-a

*=乘法賦值運(yùn)算符c*=a等效于c=c*a

/=除法賦值運(yùn)算符c/=a等效于c=c/a

%=取模賦值運(yùn)算符c%=a等效于c=c%a

**=冪賦值運(yùn)算符c**=a等效于c=c**a

//=取整除賦值運(yùn)算符c//=a等效于c=c//a

實(shí)例:

a=21

b=10

c=0

文前-05.indd52022/9/917:17:22

6人工智能基礎(chǔ)實(shí)驗(yàn)教程

c=a+b

print"1-c的值為:",c

c+=a

print"2-c的值為:",c

c*=a

print"3-c的值為:",c運(yùn)行結(jié)果:

c/=a1-c的值為:31

的值為:

print"4-c",c2-c的值為:52

c=2c%=a3-c的值為:1092

的值為:

print"5-c",c4-c的值為:52

c**=a5-c的值為:2

的值為:

print"6-c",c6-c的值為:2097152

c//=a7-c的值為:99864

print"7-c的值為:",c

4.邏輯運(yùn)算符

表1.4列出了常用邏輯運(yùn)算符及其用法,通過以下實(shí)例實(shí)現(xiàn)邏輯運(yùn)算符的操作:

表1.4邏輯運(yùn)算符

運(yùn)算符邏輯表達(dá)式描述實(shí)例(a=10,b=20)

布爾“與”——如果a為False,aandb返回False,否則它返回

andaandb(aandb)返回20

b的計(jì)算值

布爾“或”——如果a是非0,它返回a的計(jì)算值,否則它返回

oraorb(aorb)返回10

b的計(jì)算值

布爾“非”——如果a為True,返回False。如果a為False,它

notnotanot(aandb)返回False

返回True

實(shí)例:

a=True

b=False

ifaandb:

print("1-變量a和b都為true")

else:

print("1-變量a和b至少有一個不為true")

ifaorb:

print("2-變量a和b至少有一個為True")

else:

變量和都為

print("2-abfalse")運(yùn)行結(jié)果:

ifnota:

變量和至少有一個不為

print("3-變量a為false")1-abtrue

變量和至少有一個為

else:2-abTrue

變量為

print("3-變量a為true")3-atrue

5.其他運(yùn)算符

位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計(jì)算的,見表1.5。

文前-05.indd62022/9/917:17:22

第1章Python編程基礎(chǔ)7

表1.5位運(yùn)算符

運(yùn)算符描述實(shí)例(x=60,y=13)

按位與運(yùn)算符:參與運(yùn)算的兩個值,如果兩個相應(yīng)位都為1,則該(x&y)輸出結(jié)果12,二進(jìn)制解釋:

&

位的結(jié)果為1,否則為000001100

按位或運(yùn)算符:只要對應(yīng)的兩個二進(jìn)位有一個為1時,結(jié)果位就(x|y)輸出結(jié)果61,二進(jìn)制解釋:0011

|1

為11101

(x^y)輸出結(jié)果49,二進(jìn)制解釋:0011

^按位異或運(yùn)算符:當(dāng)兩對應(yīng)的二進(jìn)位相異時,結(jié)果為1

0001

按位取反運(yùn)算符:對數(shù)據(jù)的每個二進(jìn)制位取反,即把1變?yōu)?,把(~x)輸出結(jié)果-61,二進(jìn)制解釋:1100

~

0變?yōu)?。~x類似于-x-10011,在一個有符號二進(jìn)制數(shù)的補(bǔ)碼形式

左移動運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由<<右邊x<<2輸出結(jié)果240,二進(jìn)制解釋:

<<

的數(shù)字指定了移動的位數(shù),高位丟棄,低位補(bǔ)011110000

右移動運(yùn)算符:把>>左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,x>>2輸出結(jié)果15,二進(jìn)制解釋:0000

>>

>>右邊的數(shù)字指定了移動的位數(shù)1111

成員運(yùn)算符用來判斷一個對象是否包含另一個對象,見表1.6。

表1.6成員運(yùn)算符

運(yùn)算符描述實(shí)例

in如果在指定的序列中找到值返回True,否則返回Falsex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論