資源簡介 (共29張PPT)第二章 算法與問題解決引入一個農夫要將一匹狼、一只羊和一筐菜運到河對岸。但他的船太小,一次只能帶一樣。當他不在時,狼要吃羊、羊會吃菜。怎樣乘船才能安全地把這些東西運過河?分析問題食物鏈解決問題第一次:先帶羊過去;第二次:把狼帶過去,返程時再把羊帶回來;第三次:把蔬菜帶過去;第四次:最后把羊帶過去。尋找解決問題方法,可以稱之為算法解決問題第一次:先帶羊過去;第二次:把狼帶過去,返程時再把羊帶回來;第三次:把蔬菜帶過去;第四次:最后把羊帶過去。尋找解決問題方法,可以稱之為算法算法的概念算法的特征問題:1、判斷拋物線y=5x2 +4x+6與X軸是否有交點。2、設計一個算法,要求輸入X的一個值后,輸出相應的絕對值 。算法:1、計算 =42-4*5*6;2、如果 >0,執行步驟3,否則執行步驟4;3、輸出有交點,結束;4、輸出無交點,結束。分析項目 拋物線 絕對值執行步驟個數每一步是否明確可執行是否有輸入是否有輸出4是否是4是是是算法的特征有窮性:計算步驟是有限的確定性:每一個步驟必須有確切的定義數據輸入:必須有0個或多個數據輸入數據輸出:必須有1個或多個數據輸出可行性:每個步驟都可以在有限時間內完成死循環?隨便進行?大致就行?0個輸入是算法本身給出了初始條件無功而返?可以得出結果。算法的要素如何確定工作多久?如何記錄進水量的 如何記錄工作時間?時間達標了會干嘛?不達標會干嘛?數據運算控制轉移算法的描述我們剛剛是如何描述一個算法的?文字描述→自然語言流程圖算法的描述流程圖偽代碼算法的描述算法的描述用計算機程序設計語音描述算法基本結構—順序結構算法描述的方法 優勢 不足自然語言表示法 用人們日常所用的語言,比較容易掌握。 當算法中含有多分支或循環操作較多時很難清晰地表示出來,由于自然語言的歧義性,容易導致算法執行的不確定性。流程圖表示法 用程序框圖來描述,流程描述清晰簡潔。 所占篇幅較大,由于允許使用流程線,過于靈活,不受約束。偽代碼表示法 用介于自然語言和計算機語言之間的文字和符號來描述,書寫方便,格式緊湊,易于理解,便于向計算機程序設計語言過渡。 由于編程語言的種類繁多,偽代碼的語句不容易規范,有時會產生誤解。計算機程序設計語言 用計算機專門的語言來描述,精確性高,計算機可以直接運行。可移植,不同設備對于相同的代碼都能運行 計算機語言的學習成本高3.2 Python語言程序設計3.2.1 Python語言基礎編程環境圖3.2.1 IDLE的操作界面解釋器操作界面編輯器操作界面編程環境解釋器操作界面編輯器操作界面敲一次回車運行一行代碼編輯完成后,運行所有代碼拓展鏈接集成開發環境(IDE) 是提供程序開發環境的應用程序,一般包括代碼編輯器、調試器和圖形用戶界面工具。目前,用于編寫Python程序的IDE較多,如IDLE、Spyder、Wing、PyCharm等。如圖3. 2. 2是Spyder的操作界面。圖3.2.2 spyder的操作界面編輯器解釋器數據類型與表達式表3.2.1 Python常見數據類型42.0是什么類型呢?“42.0”是什么類型呢?python 是弱類型語言,相對于強類型語言,它不需要聲明變量的類型。甚至粗暴到連聲明關鍵字都省略了。數據按照其本身特征可以分為若干類型,常見的Python基本數據類型如表所示。數據類型與表達式數據信息分析運算010203Python算術運算符Python關系運算符Python邏輯運算符算術運算符算術運算是運用算術運算符進行數的加、減、乘、除等數學運算。優先程度最高級別為1,級別數字越大,優先級越低。a.2**10b.3*4–5*6c.123-123//100*100d. "Who " + "Am " + "I "字符串運算符:”*” 用于重復字符串關系運算符關系運算的結果是一個布爾值,若兩個數據之間指定的關系成立,則結果為真(True),否則為假(False)。關系運算符的優先級全部相同,但低于算術運算符,優先級為4關系運算符表3.2.3 Python 關系運算符邏輯運算法表3.2.4 Python 邏輯運算符邏輯運算符經常用于描述復雜情況的判斷。邏輯運算符的優先級各不相同:not 優先級為5,and 優先級為6,or優先級為7。運算符的優先級優先程度最高級別為1,級別數字越大,優先級越低。和數學一樣,括號的優先級最高,高于任何運算符,有括號先算括號變量和賦值語句運算符 描述 實例= 基本賦值運算符 c=a+b將a+b的運算結果賦值給c+= 加法賦值運算符 c+=a等效于c=c+a = 減法賦值運算符 c =a等效于c=c a*= 乘法賦值運算符 c*=a等效于c=c*a/= 除法賦值運算符 c/=a等效于c=c/a%= 取模賦值運算符 c%=a等效于c=c%a**= 冪賦值運算符 c**=a等效于c=c**a//= 取整除賦值運算符 c//=a等效于c=c//aa = 160 ----變量為整型b = “test” ----變量為字符型x = y = z =1 ----多重賦值x, y, z, = 1, 2, “string” ----多元賦值abx = y = z =x, y, z,變量在首次賦值時產生,沒賦值即不存在a35a5變量就是存放值的一段內存空間a = 5a = 31.變量名通常由字母,數字,下劃線(_)組成;2.數字不能作為變量名開頭;3.不能以python中的關鍵字命名(False、and、if); 3.help('keywords')查看4.建議變量名要有意義;5.不建議用漢字和拼音去命名;6.變量名要區分大小寫(A和a是兩個不同的變量);7.建議使用駝峰型(GuessAge或guessAge)和下3. 3.劃線(guess_ age)來命名;8.常量通常使用全部大寫來命名.課堂小練在Python Shell中輸入:2+3*7,按回車鍵后,輸出的結果是 ( )A.35 B.33C.23 D.2+3*7AAA選項錯誤BBB選項錯誤CCC選項正確,本題考查算術運算符,即數學中的運算DDD選項錯誤2. 已知 x="20",y="21",z=x+y,則 print (z)的結果是 ( )A.41 B.2021C. ''41'' D. ''20"''21"AAA選項錯誤BBB選項正確,本題考查算術運算符在字符串中的運算CCC選項錯誤DDD選項錯誤課堂小練3. 下列Python表達式能正確表示數學表達式的是A.(-b+b**2-4*a*c**0.5)/(2*a)B.(-b+(b**2-4*a*c)**0.5)/(2*a)C.-b+(b**2-4*a*c)**0.5/(2*a)D.-b+(b**2-4*a*c**0.5)/(2*a)AAA錯誤,其表示BBB正確,本題考查算術運算符CCC錯誤,其表示DDD錯誤,其表示4. 下列表達式的值為False的是 ( )A.0 or True B.True or FalseC.2<1 and 2<3 D. 10%3==6//5 and 6/2==3AAA錯誤,or運算符只需要一側有True就為TrueBBB錯誤,or運算符只需要一側有True就為TrueCCC選項正確,and運算符有一側為False則為FalseDDD選項錯誤,and運算符兩側都True則為True感謝一路有你 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫