Python深度學(xué)習(xí)及智能車競賽實踐 課件匯總 第0-5章 緒論、Python基本語法元素和數(shù)據(jù)類-組合數(shù)據(jù)類型_第1頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件匯總 第0-5章 緒論、Python基本語法元素和數(shù)據(jù)類-組合數(shù)據(jù)類型_第2頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件匯總 第0-5章 緒論、Python基本語法元素和數(shù)據(jù)類-組合數(shù)據(jù)類型_第3頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件匯總 第0-5章 緒論、Python基本語法元素和數(shù)據(jù)類-組合數(shù)據(jù)類型_第4頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件匯總 第0-5章 緒論、Python基本語法元素和數(shù)據(jù)類-組合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩404頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Python深度學(xué)習(xí)及智能車競賽實踐課程內(nèi)容及學(xué)習(xí)要求簡介課程教學(xué)目標(biāo)第2頁基于Python養(yǎng)成計算思維,學(xué)會Python編程求解問題;能用Python做數(shù)據(jù)分析,完成深度學(xué)習(xí)數(shù)據(jù)預(yù)處理;掌握深度學(xué)習(xí)基礎(chǔ)理論及實踐方法,能設(shè)計深度學(xué)習(xí)模型解決工程問題;能創(chuàng)新性完成智能車競賽中圖像處理和深度學(xué)習(xí)相關(guān)任務(wù)(拓展內(nèi)容)。課程教材推薦第一單元第二單元第三單元第四單元1~5章Python基礎(chǔ)知識體系:Python基本語法與數(shù)據(jù)類型、程序結(jié)構(gòu)、函數(shù)和類、Python組合數(shù)據(jù)類型基于Python養(yǎng)成計算思維能用Python做數(shù)據(jù)分析6~7章Python文件處理及數(shù)據(jù)分析,OS庫、ZipFile庫、json庫、PIL庫和OpenCV庫,Python計算生態(tài)與機器學(xué)習(xí)庫10~11章智能汽車競賽圖像處理和深度學(xué)習(xí)相關(guān)任務(wù):智能車自動巡航任務(wù)、智能車目標(biāo)檢測CNN模型設(shè)計與及部署等8~9章深度學(xué)習(xí)基礎(chǔ)及實踐:神經(jīng)網(wǎng)絡(luò)基本概念、單層感知器、全連接神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)理論及實踐學(xué)懂AI:掌握深度學(xué)習(xí)理論及實踐方法創(chuàng)新性解決智能車競賽中圖像處理和深度學(xué)習(xí)相關(guān)任務(wù)課程教學(xué)內(nèi)容Python基本語法及數(shù)據(jù)類型程序控制結(jié)構(gòu)函數(shù)和類組合數(shù)據(jù)類型ReLU激活函數(shù)智能車差速轉(zhuǎn)向智能車電池電壓檢測智能車自動循跡類創(chuàng)建單層感知器模型設(shè)計用類創(chuàng)建智能車自動循跡字典IIIIVVIVIIIIIPython機器學(xué)習(xí)庫線性回歸方法

智能車行駛路徑擬合

loss和acc曲線繪制深度學(xué)習(xí)方法DNN和CNN實踐

基于DNN的車輛識別基于CNN的斑馬線檢測知識點逐步深入

課程知識點案例和作業(yè)難度逐步提高

智能車競賽凝練教學(xué)案例V文件及數(shù)據(jù)格式化

賽車道自動繪制、車輛圖片數(shù)據(jù)集處理、車輛圖片json文件處理VIII數(shù)據(jù)采集、處理CNN模型基于競賽場景的智能車自動巡航、目標(biāo)檢測任務(wù)完成課程與競賽融合第6頁循序漸進,先打好基礎(chǔ),再逐步提高;理論與實踐緊密結(jié)合,不能只聽視頻講解,一定要自己動手編寫、調(diào)試程序,到課程后期能自己搭建深度學(xué)習(xí)模型;建議學(xué)有余力同學(xué)報名參加全國大學(xué)生智能汽車競賽百度智慧交通創(chuàng)意賽和完全模型組競賽,用所學(xué)知識解決實際問題。課程學(xué)習(xí)方法教育部倡導(dǎo)的大學(xué)生A類科技競賽;中國高等教育學(xué)會將其列為含金量最高的大學(xué)生競賽之一;已成功舉辦十八屆,比賽每年吸引了包括清華、上交、復(fù)旦、北航等500多所高校參加。全國大學(xué)生智能汽車競賽百度智慧交通創(chuàng)意組百度完全模型競速組第一章緒論Python深度學(xué)習(xí)及智能車競賽實踐010203人工智能的發(fā)展及基本概念智能汽車及全國大學(xué)生智能汽車競賽程序設(shè)計語言及Python語言簡介目錄第10頁010203人工智能的發(fā)展及基本概念智能汽車及全國大學(xué)生智能汽車競賽程序設(shè)計語言及Python語言簡介目錄第11頁第12頁人工智能概念首次于1956年夏由麥肯錫(MCKINSEY)、明斯基(MINSKY)、羅切斯特(ROCHESTER)和香農(nóng)(SHANNON)等科學(xué)家在美國達特茅斯學(xué)院(DartmouthCollege)首次提出,開會研討“如何用機器模擬人的智能”,這標(biāo)志著人工智能學(xué)科的誕生。01—人工智能的發(fā)展及基本概念01—人工智能的發(fā)展及基本概念人工智能的曲折發(fā)展歷程圖靈測試195019601970198019902000201020202030達特茅斯會議感知機SOM自組織映射網(wǎng)絡(luò)Hopfield映射網(wǎng)絡(luò)BP神經(jīng)網(wǎng)絡(luò)IBM深藍(lán)戰(zhàn)勝國際象棋冠軍深度學(xué)習(xí)多層表征學(xué)習(xí)Google大腦AlphaGo擊敗李世石、柯潔AI助力疫情防控、碳中和邏輯推理專家系統(tǒng)機器學(xué)習(xí)深度學(xué)習(xí)大數(shù)據(jù)受限于計算機算力專家系統(tǒng)應(yīng)用領(lǐng)域狹窄等問題計算驅(qū)動知識驅(qū)動數(shù)據(jù)驅(qū)動ChatGPT文心一言知識圖譜01—人工智能的發(fā)展及基本概念中國人工智能研究的發(fā)展歷程曲折認(rèn)識艱難起步、迎來曙光快速發(fā)展國家戰(zhàn)略1980年代初期國家形式動蕩、偽科學(xué)觀念盛行1978年全國科學(xué)大會召開,1981年中國人工智能學(xué)會成立,人工智能項目開始納入國家科技計劃1986年智能計算系統(tǒng)、智能機器人和智能信息處理等重大項目列入“國家863計劃”1993年智能控制和智能自動化等項目開始陸續(xù)列入國家科技攀登計劃2009年中國人工智能學(xué)會向國家學(xué)位委員會和國家教育部提出設(shè)立“智能科學(xué)與技術(shù)”一級學(xué)科2016年國務(wù)院發(fā)布《中國制造2025》;國家發(fā)改委和科技部等4部門聯(lián)合發(fā)布《“互聯(lián)網(wǎng)”+人工智能”三年行動實施方案》2017年2017年國務(wù)院印發(fā)《新一代人工智能發(fā)展規(guī)劃的通知》;

2018年教育部印發(fā)《高等學(xué)校人工智能創(chuàng)新行動計劃》國家十三五規(guī)劃:面向2030年,確定了15個重大項目的立項建議,醞釀“人工智能2.0”推動中國高新技術(shù)發(fā)展及產(chǎn)業(yè)化水平1950年代初期二十大報告:構(gòu)建新一代信息技術(shù)、人工智能等新增長引擎符號主義學(xué)派,人工智能早期學(xué)派,又稱為邏輯主義、心理學(xué)派或計算機學(xué)派,其原理主要為物理符號系統(tǒng)假設(shè)和有限合理性原理,代表性成果有專家系統(tǒng)和推理機。連接主義學(xué)派,又稱仿生學(xué)派或生理學(xué)派,基于神經(jīng)網(wǎng)絡(luò)和網(wǎng)絡(luò)間的連接機制與學(xué)習(xí)算法的智能模擬方法。強調(diào)智能活動是由大量簡單單元通過復(fù)雜連接后并行運行的結(jié)果。代表性成果有感知器、反向傳播網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等。行為主義學(xué)派,又稱進化主義或控制論學(xué)派,是一種基于“感知—行動”的行為智能模擬方法。行為主義認(rèn)為智能取決于感知和行為,取決于對外界復(fù)雜環(huán)境的適應(yīng),而不是表示和推理。代表性成果有六足行走機器人等。抽象思維形象思維感知思維求同存異、相互融合01—人工智能的發(fā)展及基本概念人工智能是一種廣泛的概念,指的是使計算機系統(tǒng)具備模擬人類智能的能力,以便解決復(fù)雜問題或執(zhí)行各種任務(wù)。深度學(xué)習(xí)人工智能機器學(xué)習(xí)深度學(xué)習(xí)是通過構(gòu)建和訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)來實現(xiàn)對數(shù)據(jù)的學(xué)習(xí)和理解,深度學(xué)習(xí)沒有超出機器學(xué)習(xí)的范疇。機器學(xué)習(xí)是通過讓計算機從歷史經(jīng)驗中學(xué)習(xí)以改善系統(tǒng)自身性能的方式來達成這個目標(biāo),一般來說就是基于數(shù)據(jù)的訓(xùn)練。01—人工智能的發(fā)展及基本概念010203人工智能的發(fā)展及基本概念智能汽車及全國大學(xué)生智能汽車競賽程序設(shè)計語言及Python語言簡介目錄第17頁02—智能汽車及全國大學(xué)生智能汽車競賽汽車智能駕駛系統(tǒng)目標(biāo)物體識別攝像頭激光雷達超聲波雷達毫米波雷達V2X4G/5G車聯(lián)網(wǎng)信息GPS/北斗INS車姿信息高精度定位、地圖多源傳感器數(shù)據(jù)融合路徑規(guī)劃行為決策運動規(guī)劃車輛狀態(tài)動力學(xué)模型閉環(huán)控制車輛穩(wěn)定性冗余控制橫向和縱向控制器轉(zhuǎn)向制動加速減速其他環(huán)境感知決策規(guī)劃控制執(zhí)行全國大學(xué)生智能汽車競賽是教育部倡導(dǎo)的大學(xué)生科技A類競賽中國高等教育學(xué)會將其列為含金量最高的大學(xué)生競賽之一比賽每年吸引了包括清華、上交、復(fù)旦、北航等500多所高校參加02—智能汽車及全國大學(xué)生智能汽車競賽全國大學(xué)生智能汽車競賽至今已成功舉辦十八屆,參賽學(xué)生總規(guī)模超過35萬人次,學(xué)生收獲和競賽聲譽保持高位。賽段時間進程線上資格賽1~2月線上資格賽報名3月線上賽評測入口開放6月初線上賽評測入口關(guān)閉,線上賽結(jié)束6月上旬線上賽成績公布車模制作3-6月核心硬件發(fā)放制作車模,備戰(zhàn)線下賽線下分區(qū)賽6月上旬線下賽啟動報名6月底線下賽參賽隊伍確定7月線下分區(qū)賽8月初線下分區(qū)賽成績公布全國總決賽8月底全國總決賽02—智能汽車及全國大學(xué)生智能汽車競賽賽事時間大致安排全國大學(xué)生智能汽車競賽創(chuàng)意組中的一個組別;比賽全程使用百度飛槳深度學(xué)習(xí)框架;含線上賽和線下賽;在無人的環(huán)境下,實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)模型構(gòu)建、自主識別賽道、無人駕駛驗證等多種技術(shù)融合的場景。02—智能汽車及全國大學(xué)生智能汽車競賽百度智慧交通組介紹02—智能汽車及全國大學(xué)生智能汽車競賽賽事規(guī)則要點利用指定的數(shù)據(jù)集,在統(tǒng)一的計算資源下,創(chuàng)建能夠識別交通標(biāo)志狀態(tài)及其具體位置和類別的深度學(xué)習(xí)模型;不限制深度學(xué)習(xí)任務(wù),推薦使用PaddleDetection開發(fā)套件;提供基線教程baseline,輕松上手:https:///aistudio/projectdetail/3507517?contributionType=1&shared=1;根據(jù)精度(F1-Score)和FPS進行線上打榜排名,占總成績10%百度智慧交通組線上賽小車從起點出發(fā),利用前置攝像頭獲得圖像,沿著車道線巡航一周,要求不出界,不超時(5min)即完成巡航任務(wù);設(shè)計AI模型識別沿途地面圖標(biāo)對應(yīng)的任務(wù),調(diào)用側(cè)面攝像頭識別任務(wù)類型,通過電機和舵機動作完成擊打、舉旗、交換貨物等多個任務(wù)。02—智能汽車及全國大學(xué)生智能汽車競賽百度智慧交通組線下賽賽事鼓勵DIY,盡情發(fā)揮你的創(chuàng)意02—智能汽車及全國大學(xué)生智能汽車競賽百度智慧交通組線下賽車模全國大學(xué)生智能汽車競賽競速組中的一個組別;賽事設(shè)計更符合真實自動駕駛場景,具有更加復(fù)雜的機器視覺處理和模型車運動控制任務(wù);含線上賽和線下賽,要求使用統(tǒng)一指定的競賽車模套件、微控制器平臺,自主構(gòu)思車??刂品桨高M行系統(tǒng)設(shè)計,同時,將AI視覺模型引入傳統(tǒng)控制算法中,在賽道上完成相應(yīng)的任務(wù)。02—智能汽車及全國大學(xué)生智能汽車競賽百度完全模型組組介紹賽事規(guī)則要點基于給定數(shù)據(jù)集,在統(tǒng)一的計算資源下,設(shè)計識別道路車道線的深度學(xué)習(xí)模型;數(shù)據(jù)集:16000張可直接用于訓(xùn)練的車載影像,圖像標(biāo)注為四類:背景、虛/實車道線、斑馬線;該深度學(xué)習(xí)任務(wù)屬于語義分割,使用PaddleSeg開發(fā)套件,提供基線教程baseline,輕松上手;根據(jù)精度(mIoU)和FPS進行線上打榜排名,占總成績10%。語義分割結(jié)果示例:02—智能汽車及全國大學(xué)生智能汽車競賽百度完全模型組線上賽小車從起點出發(fā),利用前置攝像頭獲得信息,控制車輛沿車道線巡航兩周;在巡航過程中的相應(yīng)點位,使用目標(biāo)檢測模型識別地面圖標(biāo),明確該點位需要完成的任務(wù),控制車輛完成正確出入加油站、躲避障礙物、繞過施工區(qū)等任務(wù),完成相應(yīng)任務(wù)獲得獎勵時間。02—智能汽車及全國大學(xué)生智能汽車競賽百度完全模型組線上賽賽事鼓勵DIY車殼,最帥車殼等你創(chuàng)作I車模實拍I車模機械結(jié)構(gòu)爆炸圖02—智能汽車及全國大學(xué)生智能汽車競賽百度完全模型組線下賽車模010203人工智能的發(fā)展及基本概念智能汽車及全國大學(xué)生智能汽車競賽程序設(shè)計語言及Python語言簡介目錄第29頁程序設(shè)計語言是用于書寫計算機程序的語言按照特定規(guī)則組織計算機指令,使計算機能夠自動進行各種運算處理;按照程序設(shè)計語言規(guī)則組織起來的一組計算機指令稱為計算機程序。03—程序設(shè)計語言及Python語言簡介程序設(shè)計語言的定義機器語言匯編語言高級語言03—程序設(shè)計語言及Python語言簡介程序設(shè)計語言類型機器語言機器語言是一種二進制語言,它直接使用二進制代碼表達指令,是計算機硬件可以直接識別和執(zhí)行的程序設(shè)計語言;例如:執(zhí)行數(shù)字2和3的加法,16位計算機上的機器指令為:1101001000111011,不同計算機結(jié)構(gòu)的機器指令會有所不同;可讀性差,可移植性差,編程難度大。03—程序設(shè)計語言及Python語言簡介程序設(shè)計語言類型匯編語言使用助記符與機器語言中的指令進行一一對應(yīng),在計算機發(fā)展早期幫助程序員提高編程效率;例如:執(zhí)行數(shù)字2和3的加法,匯編語言代碼為:add2,3,result,運算結(jié)果寫入result。機器語言和匯編語言直接操作計算機硬件,稱為低級語言。03—程序設(shè)計語言及Python語言簡介程序設(shè)計語言類型高級語言是接近自然語言的一種計算機程序設(shè)計語言,結(jié)合了數(shù)學(xué)表達式和英語符號)更容易地描述計算問題并利用計算機解決計算問題;

例如:執(zhí)行數(shù)字2和3加法的高級語言代碼為:result=2+3。03—程序設(shè)計語言及Python語言簡介程序設(shè)計語言類型計算機執(zhí)行源程序的兩種方式:編譯和解釋

-源代碼:采用某種編程語言編寫的計算機程序,人類可讀

例如:result=2+3

-目標(biāo)代碼:計算機可直接執(zhí)行,人類不可讀(專家除外)

例如:110100100011101103—程序設(shè)計語言及Python語言簡介高級編程語言的執(zhí)行方式執(zhí)行編譯過程的程序叫作編譯器源代碼目標(biāo)代碼編譯器程序輸入結(jié)果輸出程序執(zhí)行03—程序設(shè)計語言及Python語言簡介編譯:將源代碼一次性轉(zhuǎn)換成目標(biāo)代碼的過程高級編程語言的執(zhí)行方式解釋:將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時逐條運行的過程。執(zhí)行解釋過程的程序叫作解釋器源代碼解釋器程序輸入結(jié)果輸出03—程序設(shè)計語言及Python語言簡介高級編程語言的執(zhí)行方式根據(jù)執(zhí)行方式不同,編程語言分為兩類

-靜態(tài)語言:使用編譯執(zhí)行的編程語言 C/C++語言、Java語言

-

腳本語言:使用解釋執(zhí)行的編程語言 Python語言、JavaScript語言、PHP語言03—程序設(shè)計語言及Python語言簡介高級編程語言的執(zhí)行方式執(zhí)行方式不同,優(yōu)勢各有不同

-靜態(tài)語言:編譯器一次性生成目標(biāo)代碼,優(yōu)化更充分

程序運行速度更快

-

腳本語言:執(zhí)行程序時需要源代碼,維護更靈活

源代碼方便維護、適用于跨多個操作系統(tǒng)平臺03—程序設(shè)計語言及Python語言簡介高級編程語言的執(zhí)行方式GuidovanRossumPython語言創(chuàng)立者,1989為了打發(fā)圣誕節(jié)時間而設(shè)想開發(fā)的,誕生于1990年,正式的發(fā)布在1991年。2002年,Python2.x2008年,Python3.x03—程序設(shè)計語言及Python語言簡介Python語言的誕生Python的設(shè)計混合了傳統(tǒng)語言的軟件工程的特點和腳本語言的易用性:開源、易于維護可移植易于使用、簡單優(yōu)雅廣泛的標(biāo)準(zhǔn)庫、功能強大可擴展、可嵌入…工欲善其事、必先利其器03—程序設(shè)計語言及Python語言簡介Python語言的優(yōu)勢運行速度慢Python是解釋型語言,運行時翻譯為機器碼比較耗時,而C語言是運行前直接編譯成CPU能執(zhí)行的機器碼。代碼不能加密解釋型語言發(fā)布程序就是發(fā)布源代碼,而C語言是把編譯后的機器碼發(fā)布出去,從機器碼反推出C代碼是不可能的。03—程序設(shè)計語言及Python語言簡介Python語言的缺點常規(guī)軟件開發(fā)支持函數(shù)式編程和OOP面向?qū)ο缶幊蹋m用于常規(guī)的軟件開發(fā)、腳本編寫、網(wǎng)絡(luò)編程科學(xué)計算隨著NumPy,SciPy,Matplotlib等眾多庫的開發(fā),Python非常適合于做科學(xué)計算、繪制高質(zhì)量的2D和3D圖像WEB開發(fā)基于Python的Web開發(fā)框架很多,如Django,F(xiàn)lask網(wǎng)絡(luò)爬蟲大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心工具。Python是編寫網(wǎng)絡(luò)爬蟲的主流編程語言,Scrapy爬蟲框架應(yīng)用非常廣泛數(shù)據(jù)分析對數(shù)據(jù)進行清洗、去重、規(guī)格化和針對性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語言之一人工智能Python在人工智能大范疇領(lǐng)域內(nèi)的機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面都是主流的編程語言,得到廣泛的支持和應(yīng)用03—程序設(shè)計語言及Python語言簡介Python典型應(yīng)用更高級別的3.0系列不兼容早期2.0系列2008年至今,版本更迭帶來大量庫函數(shù)的升級替換,Python語言的版本更迭痛苦且漫長Python3.x系列已經(jīng)成為主流03—程序設(shè)計語言及Python語言簡介Python語言的版本更迭只有一行代碼

第一行的“>>>”是Python語言運行環(huán)境的提示符第二行是Python語句的執(zhí)行結(jié)果>>>print("HelloWorld")HelloWorld03—程序設(shè)計語言及Python語言簡介Python語言的的Hello程序一般來說,同樣功能的程序,Python語言實現(xiàn)的代碼行數(shù)僅相當(dāng)于C語言的1/5至1/10;簡潔程度取決于程序的復(fù)雜度和規(guī)模。#include<stdio.h>intmain(void){printf("HelloWorld\n");

return0;}03—程序設(shè)計語言及Python語言簡介C語言的Hello程序Python支持中文等非西文字符的直接使用:>>>print(“全國大學(xué)生智能汽車競賽?!?全國大學(xué)生智能汽車競賽。>>>print(“百度智慧交通創(chuàng)意賽!”)百度智慧交通創(chuàng)意賽!03—程序設(shè)計語言及Python語言簡介Python處理中文靈活下載并安裝IDLE,網(wǎng)址:

/downloads/

根據(jù)操作系統(tǒng)不同選擇不同版本下載相應(yīng)的Python3.0系列版本程序03—程序設(shè)計語言及Python語言簡介Python集成開發(fā)環(huán)境IDLEIDLE中集成有:?編輯器:編輯和修改程序?解釋器:執(zhí)行程序?程序調(diào)試:查找程序03—程序設(shè)計語言及Python語言簡介Python集成開發(fā)環(huán)境IDLEIDLE中有兩種程序設(shè)計運行方式:

交互式和文件式03—程序設(shè)計語言及Python語言簡介啟動IDLE交互式指Python解釋器即時響應(yīng)用戶輸入的每條代碼,給出輸出結(jié)果;對每個輸入語句即時運行結(jié)果,適合語法練習(xí)。03—程序設(shè)計語言及Python語言簡介IDLE交互式也稱為批量式,打開IDLE,按鍵Ctrl+N打開一個新窗口,輸入語句并保存,使用快捷鍵F5即可運行該程序,或者在IDLE菜單欄中選擇相應(yīng)的命令;批量執(zhí)行一組語句并運行結(jié)果,編程的主要方式。03—程序設(shè)計語言及Python語言簡介IDLE文件式交互式:>>>velocity=80>>>time=2>>>mileage=velocity*time>>>print(mileage)16003—程序設(shè)計語言及Python語言簡介實例:汽車行駛里程的計算文件式(打開IDLE,新建文件):運行結(jié)果:160velocity=80time=2mileage=velocity*timeprint(mileage)03—程序設(shè)計語言及Python語言簡介實例:汽車行駛里程的計算PyCharm:官方下載地址/pycharm/download/PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。03—程序設(shè)計語言及Python語言簡介其他的PYTHON開發(fā)環(huán)境Anaconda:官方下載地址/download/Anaconda的下載文件比較大,集成了200+的科學(xué)包,進行Python的高級使用(爬蟲,大數(shù)據(jù)分析,AI...)時可以直接使用。anaconda是在conda的基礎(chǔ)上發(fā)展的,conda(包管理器)可以很好的安裝和管理這些包,包括安裝、卸載和更新包。03—程序設(shè)計語言及Python語言簡介其他的PYTHON開發(fā)環(huán)境實例1.1正方形面積的計算實例1.2人名對話實例1.3求數(shù)的平方實例1.4同心圓的繪制03—程序設(shè)計語言及Python語言簡介PYTHON小程序示例交互式:>>>length=10

#正方形邊長>>>

area=length*length

#求正方形面積>>>

print(area)

#輸出正方形面積值10003—程序設(shè)計語言及Python語言簡介實例1.1正方形面積的計算文件式(打開IDLE,新建文件):運行結(jié)果:100#實例1.1正方形面積計算,文件模式代碼length=10

#正方形邊長area=length*length

#求正方形面積print(area)

#輸出正方形面積值03—程序設(shè)計語言及Python語言簡介實例1.1正方形面積的計算交互式:>>>name=input("請輸入姓名:")請輸入姓名:孔明

>>>print("{}同學(xué),選修該課程,學(xué)會Python編程".format(name))

孔明同學(xué),選修該課程,學(xué)會Python編程>>>print("{}同學(xué),選修該課程,能用Python做數(shù)據(jù)分析".format(name))孔明同學(xué),選修該課程,能用Python做數(shù)據(jù)分析>>>print("{}同學(xué),選修該課程,學(xué)懂AI".format(name))孔明同學(xué),選修該課程,學(xué)懂AI03—程序設(shè)計語言及Python語言簡介實例1.2人名對話numbers=[1,2,3,4,5]

#列表數(shù)據(jù)squared_numbers=[num**2fornuminnumbers]

#遍歷列表中每個元素求平方print(squared_numbers)

#輸出求平方后的列表03—程序設(shè)計語言及Python語言簡介文件式:實例1.3求數(shù)的平方importturtle#引用turtle庫turtle.circle(50)

#繪制半徑為50像素的圓turtle.penup()

#抬起畫筆,移動不劃線turtle.goto(0,-50)

#畫筆移到(0,-50)像素turtle.pendown()

#放下畫筆turtle.circle(100)

#繪制半徑為100像素的圓turtle.penup()

#抬起畫筆,移動不劃線turtle.goto(0,-100)#畫筆移到(0,-100)像素turtle.pendown()

#放下畫筆turtle.circle(150)

#繪制半徑為150像素的圓03—程序設(shè)計語言及Python語言簡介實例1.4同心圓的繪制本章總結(jié)了解人工智能基本概念及發(fā)展;了解智能汽車及全國大學(xué)生智能汽車競賽;高級程序設(shè)計語言的編譯和解釋執(zhí)行方式;了解PYTHON的IDLE集成開發(fā)環(huán)境應(yīng)用;體會python編寫簡單小程序。第二章Python基本語法元素和數(shù)據(jù)類型Python深度學(xué)習(xí)及智能車競賽實踐010203程序基本設(shè)計方法python基本語法結(jié)構(gòu)python基本數(shù)據(jù)類型目錄第65頁010203程序基本設(shè)計方法python基本語法結(jié)構(gòu)python基本數(shù)據(jù)類型目錄第66頁第67頁計算機編程求解問題的過程分析問題,抽象內(nèi)容之間的交互關(guān)系;設(shè)計利用計算機求解問題的確定性方法(IPO);編寫、調(diào)試、測試程序;

這是從抽象問題到解決問題的完整過程。01—程序基本設(shè)計方法第68頁程序的基本設(shè)計方法I:Input輸入數(shù)據(jù),程序的輸入P:Process處理數(shù)據(jù),程序的主要邏輯O:Output輸出數(shù)據(jù),程序的輸出

—IPO程序設(shè)計方法01—程序基本設(shè)計方法第69頁理解IPOI-程序的輸入——文件輸入、網(wǎng)絡(luò)輸入、控制臺輸入、交互界面輸入、內(nèi)部參數(shù)輸入;

輸入是一個程序的開始

O-程序的輸出

——控制臺輸出、圖形輸出、文件輸出、網(wǎng)絡(luò)輸出、操作系統(tǒng)內(nèi)部變量輸出等;

輸出是程序展示運算結(jié)果的方式

P-處理方法

——

處理是程序?qū)斎霐?shù)據(jù)進行計算產(chǎn)生輸出結(jié)果的過程,處理方法統(tǒng)稱為算法,它是程序最重要的部分;算法是一個程序的靈魂01—程序基本設(shè)計方法第70頁激活函數(shù)(ActivationFunction)是一種用于人工神經(jīng)網(wǎng)絡(luò)中的函數(shù),旨在實現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的非線性輸出。

實例2.1:RELU激活函數(shù)IPO程序設(shè)計方法01—程序基本設(shè)計方法第71頁問題分析:劃分邊界

輸入:數(shù)值x;

處理:算法

f(x);

輸出:x或0

實例2.1:RELU激活函數(shù)設(shè)計程序IPO程序設(shè)計方法01—程序基本設(shè)計方法第72頁IPO程序設(shè)計方法在全國大學(xué)生智能汽車競賽智慧交通創(chuàng)意賽中,可以通過深度學(xué)習(xí)模型得到智能車轉(zhuǎn)角預(yù)測值,這個值的大小是在[-1,1]之間,大于0表示右轉(zhuǎn)彎,小于0表示左轉(zhuǎn)彎。智能車轉(zhuǎn)向是可以通過左右輪差速實現(xiàn)轉(zhuǎn)向如需要右轉(zhuǎn)彎,右輪減速,左輪速度不變;如需要左轉(zhuǎn)彎,左輪減速,右輪速度不變。實例2.2:智能車差速轉(zhuǎn)向01—程序基本設(shè)計方法第73頁問題分析:劃分邊界

輸入:車輪直行速度speed,深度學(xué)習(xí)模型得到的歸一化轉(zhuǎn)向角度angle,調(diào)節(jié)系數(shù)

kx;

處理:算法f(x);

輸出:左、右輪速度。IPO程序設(shè)計方法實例2.2:智能車差速轉(zhuǎn)向01—程序基本設(shè)計方法第74頁問題分析:劃分邊界

輸入:speed、angle、kx;

處理:算法f(x);

輸出:左、右輪速度。問題:如何利用Python程序?qū)崿F(xiàn)智能車差速轉(zhuǎn)向控制?IPO程序設(shè)計方法實例2.2:智能車差速轉(zhuǎn)向01—程序基本設(shè)計方法第75頁#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向right_wheel=(1-angle*kx)*speed

print("right_speed:",right_wheel,"left_speed:",left_wheel)elif

-1<=angle<=0:#左轉(zhuǎn)向left_wheel=(1-abs(angle*kx))*speed

print("right_speed:",right_wheel,"left_speed:",left_wheel)else:

print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")IPO程序設(shè)計方法01—程序基本設(shè)計方法第76頁程序運行和測試使用IDLE打開文件,按F5運行(推薦)輸入數(shù)值,觀察輸出或者:在系統(tǒng)命令行運行如下命令(需要進入程序所在目錄):D:\pycodes\2\python2.2steer.py請輸入歸一化后的角度:01—程序基本設(shè)計方法010203程序基本設(shè)計方法python基本語法結(jié)構(gòu)python基本數(shù)據(jù)類型目錄第77頁?注釋:comment?縮進:indent?標(biāo)識符:identifier?常量:constant?變量:variable?表達式:expression?輸入:input?輸出:output?分支:Selection02—Python基本語法元素注釋:用于提高代碼可讀性的輔助性文字,不被執(zhí)行#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:#左轉(zhuǎn)向left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")-單行注釋:以#開頭,其后內(nèi)容為注釋02—Python基本語法元素注釋:用于提高代碼可讀性的輔助性文字,不被執(zhí)行'''實例2.2Steer.py智能車差速轉(zhuǎn)向本實例用于全國大學(xué)生智能汽車競賽'''left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:

passelif-1<=angle<=0:passelse:

pass-

多行注釋:以'''開頭和結(jié)尾

02—Python基本語法元素#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:

right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:

left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:

print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")縮進:一行代碼開始前的空白區(qū)域,表達程序的格式框架02—Python基本語法元素#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if-1<=angle<=1:if0<angle<=1:

right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:

left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:

print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")多層縮進:表示程序語句多層從屬關(guān)系02—Python基本語法元素縮進表達程序的格式框架-嚴(yán)格明確:縮進是語法的一部分,縮進不正確程序運行錯誤-

所屬關(guān)系:表達代碼間包含和層次關(guān)系的唯一手段-

長度一致:程序內(nèi)一致即可,一般用4個空格或1個TAB縮進:02—Python基本語法元素變量是保存和表示數(shù)據(jù)值的一種語法元素,在程序中十分常見。變量的值是可以改變的,能夠通過賦值(使用“=”

表達)方式被修改,例如:speed=20kx=0.85left_wheel=speedright_wheel=speed變量:02—Python基本語法元素用來保存和表示數(shù)據(jù)的占位符號-變量采用標(biāo)識符(名字)來表示,關(guān)聯(lián)標(biāo)識符的過程叫命名

“speed“是變量名字-

可以使用等號(=)給變量賦值或修改值,=被稱為賦值符號

angle

=0.5#給變量angle賦值0.5變量:02—Python基本語法元素關(guān)聯(lián)標(biāo)識符的過程-命名規(guī)則:大小寫字母、數(shù)字、下劃線和中文等字符及組合

如:right_wheel,Python_Great,這是門Python好課-

注意事項:大小寫敏感、首字符不能是數(shù)字、不與保留字相同

Right_wheel和right_wheel是不同變量,123Python是不合法的命名:02—Python基本語法元素#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向

right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:#左轉(zhuǎn)向

left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")命名:程序中用于保存和表示數(shù)據(jù)的占位符號02—Python基本語法元素保留字:被編程語言內(nèi)部定義并保留使用的標(biāo)識符-Python語言有35個保留字(也叫關(guān)鍵字)

if,elif,else,in……-

保留字是編程語言的基本單詞,大小寫敏感

if

是保留字,If

是變量02—Python基本語法元素andelifimportraiseglobalaselseinreturnnonlocalassertexceptistryTruebreakfinallylambdawhileFalseclassfornotwithNonecontinuefromoryieldasyncdefifpassdelawait(27/35)保留字:被編程語言內(nèi)部定義并保留使用的標(biāo)識符02—Python基本語法元素

Python語言中,=表示“賦值”,即將等號右側(cè)的值計算后將結(jié)果值賦給左側(cè)變量,包含“=”

的語句稱為“賦值語句”;同步賦值語句:同時給多個變量賦值

<變量1>,…,<變量N>=<表達式1>,…,<表達式N>

如:a,b=3,5賦值語句語句元素:02—Python基本語法元素例:將變量x和y交換采用單個賦值,需要3行語句:即通過一個臨時變量t緩存x的原始值,然后將y值賦給x,再將x的原始值通過t賦值給y。采用同步賦值語句,僅需要一行代碼:賦值語句語句元素:02—Python基本語法元素分支語句是控制程序運行的一類重要語句,它的作用是根據(jù)判斷條件選擇程序執(zhí)行路徑;分支語句包括:單分支、二分支和多分支;

單分支語句是最簡單的分支語句,使用方式如下:if<條件>:<語句塊>>>>

x=18>>>ifx>0:

output=x分支語句語句元素:02—Python基本語法元素二分支語句:分支語句語句元素:02—Python基本語法元素多分支語句#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:#左轉(zhuǎn)向left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")02—Python基本語法元素作用:獲得用戶輸入input()函數(shù)可以包含一些提示性文字

<變量>=input(<提示性文字>)input()函數(shù)>>>ang=input("請輸入歸一化后的角度:")請輸入歸一化后的角度:0.1>>>

ang‘0.1’>>>float(

ang)0.1#如果沒有輸入任何信息,直接按回車鍵,則把空字符串賦給ang基本輸入輸出函數(shù):02—Python基本語法元素input()函數(shù)#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向right_wheel=(1-angle*kx)*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:#左轉(zhuǎn)向left_wheel=(1-abs(angle*kx))*speedprint("right_speed:",right_wheel,"left_speed:",left_wheel)else:print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")02—Python基本語法元素-eval()函數(shù)的基本使用格式:

eval(<字符串或字符串變量>)

去掉參數(shù)最外側(cè)引號>>>

eval('"1+2"')"1+2">>>

eval('print("Hello")')Hello>>>

eval("1")1>>>

eval("1+2")3eval()評估函數(shù)02—Python基本語法元素eval()函數(shù)經(jīng)常和input()函數(shù)一起使用,用來獲取用戶輸入的數(shù)字,使用方式如下:<變量>=eval(input(<提示性文字>))a=eval(input("請輸出考試分?jǐn)?shù):"))ifa>=60:

print("及格")else:

print("不及格")input()函數(shù)也可以和int()、float()函數(shù)結(jié)合使用eval()評估函數(shù)02—Python基本語法元素print()函數(shù)用于輸出運算結(jié)果print()函數(shù)print(*objects,sep='',end='\n',file=sys.stdout,flush=False)objects:可選參數(shù),表示要輸出的對象,可以是各種數(shù)據(jù)類型的變量、常量;sep:可選參數(shù),表示分隔符,默認(rèn)為

‘’(空格);end:可選參數(shù),表示輸出結(jié)束后要添加的字符,默認(rèn)為

‘\n’(換行符);file:可選參數(shù),表示要寫入的文件對象,默認(rèn)為sys.stdout(標(biāo)準(zhǔn)輸出);flush:可選參數(shù),表示是否強制刷新輸出,默認(rèn)為False。*objects前面的*表示可以有可變數(shù)量對象個數(shù)基本輸入輸出函數(shù):02—Python基本語法元素>>>

print("強國有我")強國有我>>>

value

=

123.456>>>print(value,value,value)123.456

123.456

123.456print()函數(shù)基本輸入輸出函數(shù):02—Python基本語法元素end參數(shù)print(<待輸出內(nèi)容>,end="<增加的輸出結(jié)尾>")>>>a=54

>>>print(a,

end=".")54.>>>print(a,

end="%")54%print()函數(shù)基本輸入輸出函數(shù):02—Python基本語法元素#實例2.2Steer.py智能車差速轉(zhuǎn)向speed=20#設(shè)定車輪直線行駛速度kx=0.85

#調(diào)節(jié)參數(shù)left_wheel=speedright_wheel=speedangle=eval(input("請輸入歸一化后的角度:"))if0<angle<=1:#右轉(zhuǎn)向right_wheel=(1-angle*kx)*speed

print("right_speed:",right_wheel,"left_speed:",left_wheel)elif-1<=angle<=0:#左轉(zhuǎn)向left_wheel=(1-abs(angle*kx))*speed

print("right_speed:",right_wheel,"left_speed:",left_wheel)else:

print("輸入轉(zhuǎn)角信息不是歸一化數(shù)據(jù)")02—Python基本語法元素Python程序會經(jīng)常使用當(dāng)前程序之外已有的功能代碼,這個過程叫“引用”。Python語言使用import保留字引用當(dāng)前程序以外的功能庫,使用方式如下:

import<功能庫名稱>功能庫引用:02—Python基本語法元素第一種:import<庫名>使用庫中函數(shù)格式:<庫名>.<函數(shù)名>(<函數(shù)參數(shù)>)第二種:from<庫名>import<函數(shù)名,函數(shù)名,…>from<庫名>import*#*是通配符,表示所有函數(shù)。使用庫中函數(shù)格式:<函數(shù)名>(<函數(shù)參數(shù)>)02—Python基本語法元素功能庫引用:010203程序基本設(shè)計方法python基本語法結(jié)構(gòu)python基本數(shù)據(jù)類型目錄第105頁3.1數(shù)字類型3.2math庫3.5time庫3.3字符串類型03python基本數(shù)據(jù)類型目錄第106頁3.4字符串類型格式化控制3.1數(shù)字類型3.2math庫3.5time庫3.3字符串類型03python基本數(shù)據(jù)類型目錄第107頁3.4字符串類型格式化控制Python語言支持多種數(shù)據(jù)類型最簡單的包括數(shù)字類型、字符串類型;復(fù)雜的包括元組類型、集合類型、列表類型、字典類型等(第5章內(nèi)容)。03—Python基本數(shù)據(jù)類型Python語言包括三種數(shù)字類型整數(shù)類型浮點數(shù)類型復(fù)數(shù)類型1010是一個整數(shù)類型,10.10是一個浮點數(shù)類型,10+10j是一個復(fù)數(shù)類型。3.1數(shù)字類型整數(shù)類型與數(shù)學(xué)中整數(shù)的概念一致-可正可負(fù),沒有取值范圍限制-

pow(x,y)函數(shù):計算xy,想算多大算多大>>>

pow(2,100)1267650600228229401496703205376>>>

pow(2,pow(2,15))1415461031044954789001553……3.1數(shù)字類型整數(shù)類型有4種進制表示:十進制、二進制、八進制和十六進制。默認(rèn)情況,整數(shù)采用十進制,其他進制需要增加引導(dǎo)符號。不同進制的整數(shù)之間可以直接運算3.1數(shù)字類型整數(shù)類型浮點數(shù)兩種表示方法:小數(shù)點一般形式;科學(xué)計數(shù)法表示。例如:浮點數(shù)123.456,兩種表示方式如下:一般形式:123.456科學(xué)計數(shù)法:1.23456e23.1數(shù)字類型浮點數(shù)類型與數(shù)學(xué)中實數(shù)的概念一致帶有小數(shù)點及小數(shù)的數(shù)字Python語言中的浮點數(shù)類型必須帶有小數(shù)部分,小數(shù)部分可以是0。例如:1010是整數(shù),1010.0是浮點數(shù)。3.1數(shù)字類型浮點數(shù)類型-

浮點數(shù)取值范圍和小數(shù)精度都存在限制,

取值范圍數(shù)量級約-10307至10308,精度數(shù)量級10-16,滿足大部分常規(guī)計算要求。浮點數(shù)間運算存在不確定尾數(shù),不是bug>>>0.1+0.30.4>>>0.1+0.20.30000000000000004不確定尾數(shù)3.1數(shù)字類型浮點數(shù)類型浮點數(shù)間運算存在不確定尾數(shù),不是bug0.1用二進制表示是一個無限的小數(shù),計算機只能截取其中的53位,無限接近0.1,但并不真正等于0.10.00011001100110011001100110011001100110011001100110011010(二進制表示)Python用53位二進制表示小數(shù)部分0.1000000000000000055511151231257827021181583404541015625(十進制表示)0.1+0.2二進制表示小數(shù),可以無限接近,但不完全相同結(jié)果無限接近0.3,但可能存在尾數(shù)3.1數(shù)字類型浮點數(shù)類型-round(x,d):對x四舍五入,d是小數(shù)截取位數(shù)-浮點數(shù)間運算與比較用round()函數(shù)輔助-

不確定尾數(shù)一般發(fā)生在10-16左右,round()十分有效>>>

round(0.1+0.2,1)==0.3True3.1數(shù)字類型浮點數(shù)類型浮點數(shù)間運算存在不確定尾數(shù)>>>0.1+0.2==0.3False科學(xué)計數(shù)法使用字母e或者E作為冪的符號,以10為基數(shù),含義如下:

<a>e<b>=a*10b

1.02e3值為1020.0;1.02E-3值為0.00102。Python浮點數(shù)類型的數(shù)值范圍和小數(shù)精度受不同計算機系統(tǒng)的限制。除高精度科學(xué)計算外的絕大部分運算來說,浮點數(shù)類型的數(shù)值范圍和小數(shù)精度是滿足要求的。3.1數(shù)字類型浮點數(shù)類型與數(shù)學(xué)中的復(fù)數(shù)概念一致,z=a+bj,

a是實數(shù)部分,b是虛數(shù)部分,a和b都是浮點類型,虛數(shù)部分用j或者J標(biāo)識。

示例:12.3+4j,-5.6+7j,2.0+1j

當(dāng)b為1時,1不能省略,即1j表示復(fù)數(shù),而j則表示Python程序中的一個變量。3.1數(shù)字類型復(fù)數(shù)類型z=1.14e-4+3.6e+76j(實部和虛部?)對于復(fù)數(shù)z,可以用z.real獲得實數(shù)部分,z.imag獲得虛數(shù)部分。>>>z=1.14e-4+3.6e+76j>>>z.real0.000114>>>

z.imag3.6e+763.1數(shù)字類型復(fù)數(shù)類型操作符描述x+yx與y之和x-yx與y之差x*yx與y之積x/yx與y之商,(10/3=3.3333333333333335)x//yx與y之整數(shù)商,即:不大于x與y之商的最大整數(shù)10//3=3x%yx與y之商的余數(shù),也稱為模運算10%3=1-xx的負(fù)值,即:x*(-1)+xx本身x**yx的y次冪,即:xy9個基本的數(shù)值運算操作符3.1數(shù)字類型操作符描述x+=yx=x+yx-=yx與y之差,x=x-yx*=yx與y之積,x=x*yx/=yx與y之商,x=x/yx//=yx與y之整數(shù)商,x=x//yx%=yx與y之商的余數(shù),也稱為模運算,x=x%yx**=yx的y次冪,即:xy增強賦值操作符簡化了代碼。3.1數(shù)字類型二元增強運算操作符三種類型存在一種逐漸“擴展”的關(guān)系:

整數(shù)->浮點數(shù)->復(fù)數(shù)(整數(shù)是浮點數(shù)特例,浮點數(shù)是復(fù)數(shù)特例)不同數(shù)字類型之間可以進行混合運算,運算后生成結(jié)果為最寬類型。

123+4.0=127.0(整數(shù)+浮點數(shù)=浮點數(shù))3.1數(shù)字類型三種類型的混合運算數(shù)字類型之間相互運算所生成的結(jié)果是“更寬”的類型,基本規(guī)則是:整數(shù)之間運算,如果數(shù)學(xué)意義上的結(jié)果是小數(shù),結(jié)果是浮點數(shù);整數(shù)之間運算,如果數(shù)學(xué)意義上的結(jié)果是整數(shù),結(jié)果是整數(shù);整數(shù)和浮點數(shù)混合運算,輸出結(jié)果是浮點數(shù);整數(shù)或浮點數(shù)與復(fù)數(shù)運算,輸出結(jié)果是復(fù)數(shù)。3.1數(shù)字類型三種類型的混合運算函數(shù)描述abs(x)x的絕對值

abs(-8.01)=8.01divmod(x,y)(x//y,x%y),輸出為二元組形式(也稱為元組類型),divmod(10,3)=3,1pow(x,y[,z])冪余:(x**y)%z,[..]表示該參數(shù)可以省略,即:pow(x,y),它與x**y相同,pow(2,9,10)=2round(x[,ndigits])對x四舍五入,保留ndigits位小數(shù)。round(x)返回四舍五入的整數(shù)值round(-9.4531)=-9,round(-9.4531,2)=-9.45max(x1,x2,…,xn)x1,x2,…,xn的最大值,n沒有限定min(x1,x2,…,xn)x1,x2,…,xn的最小值,n沒有限定3.1數(shù)字類型Python內(nèi)置數(shù)值運算函數(shù)函數(shù)描述int(x)將x轉(zhuǎn)換為整數(shù),舍棄小數(shù)部分,x可以是浮點數(shù)或字符串,int(100.65)=100,int("100")=100float(x)將x轉(zhuǎn)換為浮點數(shù),x可以是整數(shù)或字符串,float(10)=10.0,float("10")=10.0,float("10.01")=10.01complex(re[,im])生成一個復(fù)數(shù),實部為re,虛部為im,re可以是整數(shù)、浮點數(shù),im可以是整數(shù)或浮點數(shù)但不能為字符串,complex(4)=4+0J數(shù)值運算操作符可以隱式地轉(zhuǎn)換輸出結(jié)果的數(shù)字類型;例如,兩個整數(shù)采用運算符“/”的除法將可能輸出浮點數(shù)結(jié)果。通過內(nèi)置的數(shù)字類型轉(zhuǎn)換函數(shù)可以顯式地在數(shù)字類型之間進行轉(zhuǎn)換。

3.1數(shù)字類型數(shù)字類型的轉(zhuǎn)換函數(shù)type(x):

返回x的類型,適用于所有類型的判斷。>>>

type(100)<class'int'>>>>

type(50.0)<class'float'>>>>

type(80+0j)<class'complex'>>>>

z=20-1j>>>

type(z)<class'complex'>3.1數(shù)字類型數(shù)字類型的判斷3.1數(shù)字類型3.2math庫3.5time庫3.3字符串類型03python基本數(shù)據(jù)類型目錄第127頁3.4字符串類型格式化控制math庫是Python提供的內(nèi)置數(shù)學(xué)類函數(shù)庫;math庫不支持復(fù)數(shù)類型;math庫一共提供了4個數(shù)學(xué)常數(shù)和44個函數(shù);44個函數(shù)共分為4類,包括:16個數(shù)值表示函數(shù)、8個冪對數(shù)函數(shù)、16個三角對數(shù)函數(shù)和4個高等特殊函數(shù)。3.2math庫第一種方法:

importmath

對math庫中函數(shù)采用math.<b>()形式使用第二種方法:frommathimport<函數(shù)名>對math庫中函數(shù)可以直接采用<函數(shù)名>()形式使用>>>importmath>>>math.ceil(10.2)11>>>frommathimportceil>>>ceil(10.2)11>>>frommathimport*>>>ceil(10.2)113.2math庫math庫引用常數(shù)數(shù)學(xué)表示描述math.pi

π圓周率,值為3.141592653589793math.ee自然對數(shù),值為2.718281828459045math.inf?正無窮大,負(fù)無窮大為-math.infmath.nan

非浮點數(shù)標(biāo)記,NaN(NotaNumber)3.2math庫math庫包含4個常用常數(shù)math庫包括16個數(shù)值表示函數(shù)函數(shù)數(shù)學(xué)表示描述math.fabs(x)返回x的絕對值math.fmod(x,y)x%y返回x與y的模math.fsum([x,y,…])x+y+…浮點數(shù)精確求和math.ceil(x)向上取整,返回不小于x的最小整數(shù)math.floor(x)向下取證,返回不大于x的最大整數(shù)math.factorial(x)x!返回x的階乘,如果x是小數(shù)或負(fù)數(shù),返回ValueErrormath.gcd(a,b)

返回a與b的最大公約數(shù)math.frexp(x)x=m*2e返回(m,e),當(dāng)x=0,返回(0.0,0)math.ldexp(x,i)x*2i返回x*2i運算值,math.frepx(x)函數(shù)的反運算math.modf(x)

返回x的小數(shù)和整數(shù)部分math.trunc(x)

返回x的整數(shù)部分math.copysign(x,y)用數(shù)值y的正負(fù)號替換數(shù)值x的正負(fù)號math.isclose(a,b)

比較a和b的相似性,返回True或Falsemath.isfinite(x)

當(dāng)x為無窮大,返回True;否則,返回Falsemath.isinf(x)

當(dāng)x為正數(shù)或負(fù)數(shù)無窮大,返回True;否則,返回Falsemath.isnan(x)

當(dāng)x是NaN,返回True;否則,返回False3.2math庫函數(shù)數(shù)學(xué)表示描述math.pow(x,y)xy返回x的y次冪math.exp(x)ex返回e的x次冪,e是自然對數(shù)

math.expm1(x)ex-1返回e的x次冪減1math.sqrt(x)返回x的平方根math.log(x[,base])logbasex返回x的對數(shù)值,只輸入x時,返回自然對數(shù),即lnxmath.log1p(x)ln(1+x)返回1+x的自然對數(shù)值math.log2(x)logx返回x的2對數(shù)math.log10(x)log10x返回x的10對數(shù)值3.2math庫math庫包括8個冪對數(shù)函數(shù)函數(shù)數(shù)學(xué)表示描述math.degrees(x)

角度x的弧度值轉(zhuǎn)角度值math.radians(x)

角度x的角度值轉(zhuǎn)弧度值math.hypot(x,y)返回(x,y)坐標(biāo)到原點(0,0)的距離math.sin(x)sinx返回x的正弦函數(shù)值,x是弧度值math.cos(x)cosx返回x的余弦函數(shù)值,x是弧度值math.tan(x)tanx返回x的正切函數(shù)值,x是弧度值math.asin(x)arcsinx返回x的反正弦函數(shù)值,x是弧度值math.acos(x)arccosx返回x的反余弦函數(shù)值,x是弧度值

math.atan(x)arctanx返回x的反正切函數(shù)值,x是弧度值math.atan2(y,x)arctany/x返回y/x的反正切函數(shù)值,x是弧度值math.sinh(x)sinhx返回x的雙曲正弦函數(shù)值math.cosh(x)coshx返回x的雙曲余弦函數(shù)值math.tanh(x)tanhx返回x的雙曲正切函數(shù)值math.asinh(x)arcsinhx返回x的反雙曲正弦函數(shù)值math.acosh(x)arccoshx返回x的反雙曲余弦函數(shù)值math.atanh(x)arctanhx返回x的反雙曲正切函數(shù)值3.2math庫math庫包括16個三角運算函數(shù)函數(shù)數(shù)學(xué)表示描述math.erf(x)高斯誤差函數(shù),應(yīng)用于概率論、統(tǒng)計學(xué)等領(lǐng)域math.erfc(x)余補高斯誤差函數(shù),math.erfc(x)=1-math.erf(x)math.gamma(x)伽瑪(Gamma)函數(shù),也叫歐拉第二積分函數(shù)math.lgamma(x)ln(gamma(x))伽瑪函數(shù)的自然對數(shù)3.2math庫math庫包括4個高等特殊

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論