




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
計算與人工智能概論第3章Python編程基礎
python編程基礎-問題求解的計算思維方法1PART3.1問題求解的計算思維方法3.1.1問題分解針對機器人投籃問題,首先,設定一個模擬籃球場的場景;然后,機器人要實現(xiàn)投籃百發(fā)百中,可以劃分為3個子問題,如表3.1所示。第1個問題是投籃機器人對模擬籃球場的“記憶”;第2個問題是探索機器人在不同情況下投籃所得到的軌跡線,第3個問題是完成拋球的動作。3.1.2模式識別籃球運動員在球對于投籃機器人而言,可以通過計算機模擬籃球軌跡建立坐標系,先計算籃球投出后某一時間的坐標點,再循環(huán)計算籃球在空中多個坐標點的位置,最后計算不同初始條件下籃球軌跡坐標點,進而找出合適的投籃角度或籃球出手速度以實現(xiàn)機器人百分百投籃,如表3.2所示。
3.1.3抽象利用計算機模擬投籃過程,首先需要建立坐標系模擬機器人投籃場景,x軸代表籃球水平方向的坐標,y軸代表籃球垂直方向的坐標,如圖3.1(a)所示;其次,機器人投籃軌跡線可通過在坐標系上繪制一條拋物線來模擬,如圖3.1(b)所示。圖3.2繪制了在不同條件下機器人投籃的籃球運動軌跡。3.1.4算法設計第1步:建立一個二維的坐標系,并計算籃球在某一時間的坐標點.第2步:在合理的范圍內(nèi)繪制籃球的一個坐標點,如圖3.1(a)所示。第3步:在合理的范圍內(nèi)繪制籃球的n個坐標點,如圖3.1(b)所示。第4步:繪制多次機器人投籃的籃球運動軌跡,如圖3.2所示。第5步:在投籃出手速度與出手高度一定的條件下,找出合適的角度,解決機器人百分百投籃問題,如圖3.3所示。
python編程基礎-基本語法2PART3.2編程的基本概念3.2.1程序=算法+數(shù)據(jù)結構數(shù)據(jù)結構是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結構是指相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。程序設計中常用的數(shù)據(jù)結構包括數(shù)組(Array)、棧(Stack)、隊列(Queue)、鏈表(LinkedList)、樹(Tree)和圖(Graph)等。Python常用的數(shù)據(jù)結構包括列表、元組、字典與集合等。算法是為解決問題而精心設計的計算步驟和方法。它代表著用系統(tǒng)的方法描述解決問題的策略機制。也就是說,能夠對一定規(guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優(yōu)劣可以用空間復雜度與時間復雜度來衡量。3.2.2
Python簡介Python安裝Python的兩個主要版本2.7和3.8如何安裝?Anaconda
Anaconda
是一個包含數(shù)據(jù)科學常用包的Python發(fā)行版本。它基于conda——一個包和環(huán)境管理器——衍生而來。你將使用conda創(chuàng)建環(huán)境,以便分隔使用不同Python版本和不同程序包的項目。你還將使用它在環(huán)境中安裝、卸載和更新包。通過使用Anaconda,處理數(shù)據(jù)的過程將更加愉快。下載地址:/distribution/
在哪寫代碼?SpyderIDLE/Jupter/pycharmVisualstudiocode13Spyder的使用:/tools/spyder開始→所有程序→Anaconda3→Spyder①
新建②編程③
運行(和保存)④運行結果143.2.3第一個python程序--計算一個坐標點的值并輸出根據(jù)公式計算坐標點math庫是Python提供的內(nèi)置數(shù)學類函數(shù)庫math庫不支持復數(shù)類型,一共提供了4個數(shù)學常數(shù)和44個函數(shù)。第一種:importmath對math庫中函數(shù)采用math.<b>()形式使用第二種,frommathimport<函數(shù)名>對math庫中函數(shù)可以直接采用<函數(shù)名>()形式使用第三種,frommathimport*對math庫中函數(shù)可以直接使用1、import導入math庫3.2.4
Python基本語法2、print()函數(shù)3、變量的賦值與變量類型name='千尋'
name='馬沖’print(name)變量:其值可以改變的量。<變量>=<表達式>命名原則:見名知義盡量不要給變量命名為a、b、c等英文字母,類似于名字=張小明,小紅,無法知義變量類型-字符型字符串:英文string,簡寫str字符串,顧名思義,就是由一個個字符串起來的組合,字符可以是一個數(shù)字、一個字母、一個文字,甚至是一個符號。字符串可以表達現(xiàn)實世界里的詞、語句、表達式等
整數(shù)類型:整數(shù)英文為integer,簡寫做int。Python的整數(shù)和現(xiàn)實世界數(shù)學中定義的一樣:是正整數(shù)、負整數(shù)和零的統(tǒng)稱,是沒有小數(shù)點的數(shù)字。整數(shù)類型:二進制:0b101、0B101,八進制:0o123,0O234,十六進制:0x123,0X234浮點數(shù)型:浮點數(shù)英文為float計算機里浮點數(shù)的運算是不精確的,會有四舍五入的誤差浮點數(shù)類型:普通表示法:1.23科學及算法:復數(shù)類型:z=a+bjz.real實部,z.imag虛部數(shù)據(jù)變量類型-數(shù)值類型4、運算符與表達式---怎么計算表達式?算術運算符:a=10,b=21表達式的表示:求一元二次方程的根y=ax2+bx+c?運算符描述實例+加-兩個對象相加a+b輸出結果31-減-得到負數(shù)或是一個數(shù)減去另一個數(shù)a-b輸出結果-11*乘-兩個數(shù)相乘或是返回一個被重復若干次的字符串a(chǎn)*b輸出結果210/除-x除以yb/a輸出結果2.1%取模-返回除法的余數(shù)b%a輸出結果1**冪-返回x的y次冪a**b為10的21次方//取整除-向下取接近商的整數(shù)9//2=4-9//2=-5print((60-4)**2-55/5)的計算順序如何?print(0.55+0.3)的結果是???試一試:5、input()函數(shù)<變量>=input(<提示性文字>)
獲得用戶輸入之前,input()函數(shù)可以包含一些提示性文字,但不管用戶輸入字符或數(shù)字,input()函數(shù)統(tǒng)一按照字符串類型返回結果22input函數(shù)作用:從鍵盤讀入一個字符串試一試:請從鍵盤給h,v0,g,
θ賦值完成:h,v0,g,θ=1.9,14,9.8,40name=input('請輸入你的姓名:')print('你的名字叫:',name)233.2.5計算并繪制坐標點案例拓展訓練python編程基礎-模塊化編程函數(shù)3PART3.3.1常用的內(nèi)置函數(shù)內(nèi)置函數(shù)的使用
函數(shù)名()形式參數(shù),即在函數(shù)體中所使用的變量函數(shù)結果的輸出并返回函數(shù)體數(shù)學上的函數(shù)只是一個符號表達,而計算機程序中的函數(shù)則是一段可以執(zhí)行的程序函數(shù)調用,實參10傳給形參C3.3.2自定義計算坐標的函數(shù)自定義函數(shù):def函數(shù)名():語句1……語句nreturn語句函數(shù)體自定義計算坐標函數(shù)3.3.3調用函數(shù)繪制坐標點3.3.4函數(shù)的參數(shù)1.形參與實參函數(shù)的參數(shù)有形式參數(shù)與實隙地參數(shù)。定義函數(shù)時函數(shù)頭中所包含的參數(shù)為形式參數(shù)(簡稱形參),而調用函數(shù)時使用的參數(shù)是實際參數(shù)(簡稱實參)。在定義函數(shù)時,形參類似于占位符,其不是擁有具體值的變量。只有在調用函數(shù)時,調用者將實參的值傳遞給形參,形參才擁有具體值。一般情況下,形參與實參的數(shù)量要相同,對應位置要一致,這樣才能正確地傳遞參數(shù)。Python對象按內(nèi)容來說可分為不可變與可變對象,不可變對象包括數(shù)字、字符串和元組,而可變對象包括列表與字典。Python參數(shù)傳遞采用的是“傳對象引用”方式,即傳遞參數(shù)時,如果參數(shù)是可變對象,則函數(shù)內(nèi)部的修改會影響到函數(shù)外部的實參;如果參數(shù)是不可變對象,則函數(shù)內(nèi)部的修改不會影響到函數(shù)外部的實參。2.默認參數(shù)、位置參數(shù)、關鍵字參數(shù)和可變參數(shù)importnumpyasnpdefsolve(a,b,c=5):d=np.sqrt(b**2-4*a*c)x1,x2=(-b+d)/(2*a),(-b-d)/(2*a)returnx1,x2a,b,c=1,0,-1x1,x2=solve(a,b)#默認第三個參數(shù)為5 print('x1=%f,x2=%f'%(x1,x2))默認參數(shù):放在所有參數(shù)的后面關鍵字參數(shù)
importnumpyasnpdefsolve(a,b,c=5):d=np.sqrt(b**2-4*a*c)x1,x2=(-b+d)/(2*a),(-b-d)/(2*a)returnx1,x2#a,b,c=1,0,-1x1,x2=solve(c=-1,b=0,a=1)#關鍵字參數(shù)
print('x1=%f,x2=%f'%(x1,x2))默認參數(shù):放在所有參數(shù)的后面在定義函數(shù)時,在參數(shù)前面加*號,表示可以接收多個位置參數(shù)并把它們放到一個元組中。可選參數(shù)和可變參數(shù)
在形參前面加兩個星號**,表示可以接受多個關鍵參數(shù)并把它們放入一個字典中。3.3.5函數(shù)返回函數(shù)返回是指返回函數(shù)的結果。與其他程序設計語言不同,Python支持函數(shù)返回0個到多個值。return返回多個值則以元組的方式保存案例拓展訓練python編程基礎-分支4PART383.4.1單分支——if語句if分支393.4.2二分支——if-else語句if-else分支若滿足條件表達式則執(zhí)行語句1~語句n,否則執(zhí)行語句n+1~語句n+mif條件表達式:語句1……語句nelse:語句n+1……語句n+m注意:if.....else.......所代表的條件是互斥的else部分有時可以省略40比較運算符(最常用),結果為True
或False>
:大于,如x>0<
:小于,如x<0>=
:大于等于,如x>=0<=
:小于等于,如x<=0==
:等于,如x==0!=
:不等于,如x!=041條件運算符的使用,結果為True
或Falseand:與(而且)例:"a>-1anda<1"表示"a>-1且a<1"注:"a>-1anda<1"也可寫成"-1<a<1"or:或(或者)例:"a>1ora<-1"表示"a>1或a<-1"not:非(不是)例:"nota>1"表示"a不大于1"42計算x的絕對值習題流程圖x>0?a=x是a=-x否輸入x開始打印a結束x=eval(input('x='))ifx>0:a=xelse:a=-xprint('|x|=',a)3.4.3多分支——if-elif-else語句44例:
分段函數(shù):
x=eval(input(‘x='))ifx<0:y=-1elifx==0:y=0else:y=1print(y)
規(guī)則嵌套例:求三個數(shù)的最大值的#求三個數(shù)的最大值1x,y,z=eval(input("enter3data:"))ifx>y:max_2=xelse:max_2=yifmax_2>z:max_3=max_2else:max_3=zprint(max_3)
#求三個數(shù)的最大值2:換一種方式x,y,z=eval(input("enter3data:"))max_2=xifx>yelsey#分支的緊湊格式max_3=max_2ifmax_2>zelsezprint(max_3)x=eval(input(‘x='))ifx<=0:ifx<0:
y=-1else:y=0else:y=1print(y)不規(guī)則嵌套3.4.4智能型計算坐標函數(shù)3.4.5在合理范圍內(nèi)繪制坐標點案例拓展訓練編程基礎-循環(huán)5PART503.5.1while循環(huán)while循環(huán)(條件循環(huán))重復執(zhí)行語句1~語句n,直到條件表達式不再成立while條件表達式:語句1……語句n條件表達式與if中的規(guī)定相同循環(huán)體51例:依次打印1~100,最后打印'end'i=1whilei<=100:print(i)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理咨詢?nèi)哼\營方案
- 設計咨詢服務招標方案
- 特色小鎮(zhèn)-ppp-咨詢-方案
- 投標造價咨詢工作方案
- 排風安裝合同7篇
- 車船使用稅委托代征協(xié)議書6篇
- 2025-2030互聯(lián)網(wǎng)法律服務平臺商業(yè)模式與競爭態(tài)勢評估報告
- 2025-2030云計算邊緣節(jié)點部署策略與延遲優(yōu)化方案研究報告
- 2025-2030二手實木家具回收再利用產(chǎn)業(yè)鏈價值挖掘研究報告
- 2025-2030乳品添加劑行業(yè)消費者健康意識與產(chǎn)品需求變化報告
- 2025四川數(shù)據(jù)集團有限公司第二批員工招聘3人筆試歷年參考題庫附帶答案詳解
- 2025年甘肅省天水市供熱有限公司招聘12人筆試歷年參考題庫附帶答案詳解
- 2025年一卷政治高考真題及答案
- 廚房火災安全培訓教材課件
- DB15∕T 3843-2025 新能源分布式電源并網(wǎng)技術規(guī)范
- 《鋰電池的制造工藝》課件
- 海上風電場安全監(jiān)測技術的現(xiàn)狀與未來發(fā)展趨勢
- 足浴前臺禮儀培訓課件
- 2025年幼兒園中、高級教師職稱考試(綜合素質)歷年參考題庫含答案詳解(5卷)
- 美術基礎 課件全套 第1-5章 美術簡介 -中國民間美術
- 2024人教版七年級生物下冊期末復習全冊考點背誦提綱
評論
0/150
提交評論