最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

小白自學(xué)筆記之Python入門-第三章 內(nèi)置函數(shù) & 算法-2

2023-06-30 08:50 作者:wangyanhpa  | 我要投稿

本章就這么多內(nèi)容,簡單吧!下面舉個(gè)例子鞏固一下。

DIY做一做

1.編寫程序?qū)崿F(xiàn)輸入長方形的長和寬,計(jì)算長方形的面積。?

這個(gè)題目我猜你自己目前做不出來,因?yàn)槟氵€沒有學(xué)習(xí)一個(gè)非常重要的概念(故弄玄虛),除非你參考了網(wǎng)絡(luò)資料,那就要恭喜你,你會(huì)自學(xué)了,能自己解決問題了。

用計(jì)算機(jī)解決問題需要有方法,在咱們IT界有一個(gè)專門的名詞——“算法”。算法的定義為解決問題具體的方法和步驟,這個(gè)概念似乎不是那么高大上,似乎跟日常生活比較接近,但是在計(jì)算機(jī)中算法是一個(gè)非常重要的概念,我們有必要認(rèn)真研究一下。嚴(yán)肅起來?。?/p>

算法著名的一個(gè)例子就是古希臘數(shù)學(xué)家歐幾里得(Euclid)發(fā)現(xiàn)的求兩個(gè)正整數(shù) A 和 B 的最大公約數(shù)(Greatest Common Divisor,GCD)問題。描述如下:

第 1 步:比較 A 和 B 這兩個(gè)數(shù),將 A 設(shè)置為較大的數(shù),B 為較小的數(shù)。

第 2 步:A 除以 B,得余數(shù) R(Remainder)。

第 3 步:如果 R=0,則最大公約數(shù)就是 B;否則將 B 賦值給 A,R賦值給 B,重復(fù)進(jìn)行前兩步。

我們暫且不管為什么通過上面的算法就能求出最大公約數(shù),因?yàn)檫@是數(shù)學(xué)家研究的問題(數(shù)學(xué)很難的,特別是高數(shù)對(duì)吧?所以我們要避重就輕,冠冕堂皇的接著往下挑簡單的說),我們要做的是將算法轉(zhuǎn)換為計(jì)算機(jī)能夠理解的語句。

不管是復(fù)雜的算法還是簡單的算法,都具有5個(gè)特性:

確定性。算法中的每個(gè)步驟都應(yīng)是確定的。就是你要描述清楚,想好到底要干啥,不要產(chǎn)生二義性。你不能跟計(jì)算機(jī)說如果電影好看我就去看,對(duì)于好看不好看每個(gè)人有每個(gè)人的理解,計(jì)算機(jī)不知道什么叫“電影好看”,應(yīng)該描述成“如果豆瓣評(píng)分大于9.9我就去看”。

有窮性。算法中的步驟應(yīng)是有限的且在有限的時(shí)間內(nèi)能夠執(zhí)行完畢。如果執(zhí)行一個(gè)計(jì)算任務(wù)要數(shù)年才能做完,等的花兒都謝了,它就不是一個(gè)算法,不能子子孫孫無窮匱也。

有效性。算法中的每個(gè)步驟都應(yīng)該被有效地執(zhí)行,并能得到一個(gè)明確的結(jié)果。比如數(shù)學(xué)里規(guī)定除數(shù)不能為零,如果在算法里出現(xiàn)了除數(shù)為零的情況就不符合有效性了。

可有零個(gè)或多個(gè)輸入。針對(duì)具體問題,有時(shí)候需要輸入,有時(shí)不需要輸入的。

有一個(gè)或多個(gè)輸出。輸出就是看問題是否被解決,算法必須有輸出,沒有輸出的算法是沒有意義的。這里的輸出不能簡單理解為屏幕輸出,只要問題解決了就是有輸出。

算法涉及的對(duì)象是數(shù)據(jù),算法有兩類:數(shù)值算法和非數(shù)值算法。數(shù)值算法是對(duì)數(shù)值進(jìn)行求解,是傳統(tǒng)意義上的計(jì)算。由于數(shù)值運(yùn)算的模型比較成熟,因此對(duì)數(shù)值算法的研究是比較深入的。非數(shù)值運(yùn)算包含的面很廣,如圖書管理、物流管理、信息系統(tǒng)等,其計(jì)算問題涉及更多的是“處理”,包括排序、檢索、變換和分析等,非數(shù)值運(yùn)算是整個(gè)計(jì)算任務(wù)的主要部分。

Dijkstra (荷蘭的計(jì)算機(jī)科學(xué)家)提出算法具有三種基本控制結(jié)構(gòu)順序分支循環(huán),這三種基本結(jié)構(gòu)能夠解決任何問題。順序結(jié)構(gòu)(Sequence)是算法中最簡單的一種結(jié)構(gòu),表示問題求解過程按照順序由上至下執(zhí)行。事實(shí)上,程序的主結(jié)構(gòu)都是順序的:從一個(gè)入口開始,到一個(gè)出口結(jié)束。順序結(jié)構(gòu)如下圖所示:

圖 ?順序結(jié)構(gòu)及舉例

比如,把大象關(guān)進(jìn)冰箱一共分幾步?就是按照下面的步驟一步一步進(jìn)行,做完1接著2然后3。

⑴ 打開冰箱門

⑵ 把大象關(guān)進(jìn)去

⑶ 關(guān)上冰箱門

分支結(jié)構(gòu)(Alteration)也稱為條件結(jié)構(gòu)、判斷結(jié)構(gòu)、選擇結(jié)構(gòu),如下圖所示,若條件成立,則執(zhí)行分支 A,否則執(zhí)行 B。

圖 ?分支結(jié)構(gòu)及舉例

比如有錢買什么?那得要看我有多少錢,如果我的錢小于1角,如果我的錢小于5角,如果我有一個(gè)億,所以需要看看哪個(gè)條件滿足,滿足哪個(gè)條件就做哪個(gè)價(jià)位的事情。所以我現(xiàn)在要想一想我的一個(gè)億怎么花了。

第三個(gè)控制結(jié)構(gòu)是循環(huán)(Loop)結(jié)構(gòu),算法中的重復(fù)操作通過循環(huán)結(jié)構(gòu)表示。循環(huán)有兩種結(jié)構(gòu):while 結(jié)構(gòu)和 do-while結(jié)構(gòu),如圖所示,A 是循環(huán)體(Loop Body),即重復(fù)操作的那部分。

圖 ?循環(huán)結(jié)構(gòu)及舉例

比如每天早晨鍛煉跑3200米,在紅旗操場一圈一圈的跑,跑完一圈看看夠8圈了嗎?沒夠繼續(xù)跑,夠了就停下。每一次都是在做重復(fù)的操作,但是這個(gè)重復(fù)的操作不是沒完沒了的,只要滿足條件就可以停下來,否則還不得累死了。

Ok,到這兒介紹完了算法的概念,但是編程不僅要懂算法,在解決具體問題時(shí)還要理解程序設(shè)計(jì)的IPO模式,I是input,P是Process,O是output。在解決具體問題時(shí),首先要考慮問題的輸入是什么,然后考慮輸出是什么,對(duì)數(shù)據(jù)如何處理。不管用什么語言編程,前面講的算法和程序設(shè)計(jì)模式的原理都是通用的,不同編程語言的區(qū)別主要是語法不同而已。

?

以我們現(xiàn)在這個(gè)題目輸入長方形的長和寬,計(jì)算長方形的面積為例,這里明確說明了輸入是長和寬,輸出或者說計(jì)算結(jié)果是面積,處理是面積求法為長*寬。按照這個(gè)思路,查閱前面函數(shù)表,我們編寫程序如下,stop,自己想一想去編程吧。?

參考答案:

length = float(input('輸入長方形長: '))

width = float(input('輸入長方形寬: '))

# 計(jì)算面積

area = length * width

print('長方形的面積為', area)

2.編寫程序?qū)崿F(xiàn)輸入三邊長計(jì)算三角形面積。

思考:輸入是 ???三角形三邊長?? ??,輸出是 ??三角形面積? ??,處理是啥呢?怎么根據(jù)三角形的三條邊長計(jì)算面積,不會(huì)的話問問百度,或者我給個(gè)提示“海倫公式”。好了,自己編程去吧!

?參考答案:

a = float(input('輸入三角形第一邊長: '))

b = float(input('輸入三角形第二邊長: '))

c = float(input('輸入三角形第三邊長: '))

?

# 計(jì)算半周長

s = (a + b + c) / 2

?

# 計(jì)算面積

area = (s * (s - a) * (s - b) * (s - c)) ** 0.5

print('三角形面積為 %0.2f' % area)

?

3.編寫程序?qū)崿F(xiàn)輸入分鐘數(shù)折算成小時(shí)和分鐘輸出,如輸入68分鐘,輸出1小時(shí)8分鐘。

思考:輸入是 ?????????????,輸出是 ????????????,處理是 ??????????。

我不再提示了,use your head!?

參考答案:

minutes=int(input("minutes:"))

hour=minutes//60

minute=minutes%60

print(hour,"小時(shí)",minute,"分鐘")

參照這個(gè)例題我們還可以試著做輸入用分表示的錢數(shù)(不到一元),輸出最小數(shù)目的硬幣數(shù)目。如輸入86分,輸出1個(gè)五角硬幣,3個(gè)一角硬幣,1個(gè)5分硬幣,1個(gè)1分硬幣。這里我們考慮硬幣類型為:五角、一角、5分、2分和1分這幾種類型。試著完成這個(gè)程序吧。

?參考答案:

The furthest distance in the world is not between life and death but when I stand in front of you yet you don't know that I love you.

Let life be beautiful like summer flowers and death like autumn leaves.

From Tagore

?

哈哈哈,這個(gè)參考答案是假的!自己動(dòng)手,迎接挑戰(zhàn),祝你成功!

好,本章內(nèi)容就到這里,到這里吧!


Quiz考一考

這里是通過學(xué)習(xí),自己總結(jié)知識(shí)點(diǎn)和要點(diǎn),設(shè)計(jì)3個(gè)本章內(nèi)容相關(guān)的題目并提供參考答案。題目類型編程題。

最好你設(shè)計(jì)的題目能夠有特點(diǎn)、夠經(jīng)典,這樣就有機(jī)會(huì)作為最后的考題。

?

編程題

1.編寫程序?qū)崿F(xiàn)輸入出生年月日,輸出年齡和幸運(yùn)數(shù)字。其中幸運(yùn)數(shù)字為月日的數(shù)字累加和。如輸入year=2000,month=8,day=12。則年齡20,幸運(yùn)數(shù)字計(jì)算方法為2+0+0+0+8+1+2=13? 1+3=4,最終幸運(yùn)數(shù)字為4。?

參考答案:

year=int(input("year:"))

month=int(input("month:"))

day=int(input("day:"))

y1=year//1000

y2=year%1000//100

y3=year%100//10

y4=year%10

sum=y1+y2+y3+y4+month//10+month%10+day//10+day%10

luckyNo=sum//10+sum%10

print("你2020年",2020-year,"歲了")

print("你的幸運(yùn)數(shù)字是..")

print("..............")

print("..............",luckyNo)?

2.還沒記住呢?現(xiàn)在該你了!


你的筆記

The end.

小白自學(xué)筆記之Python入門-第三章 內(nèi)置函數(shù) & 算法-2的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
枣强县| 梧州市| 台北县| 休宁县| 永清县| 陕西省| 洛隆县| 奉新县| 额尔古纳市| 江达县| 营口市| 大庆市| 临漳县| 宝坻区| 应用必备| 中阳县| 东乌珠穆沁旗| 东源县| 镇康县| 安宁市| 郁南县| 郸城县| 广州市| 鱼台县| 嘉定区| 庆阳市| 长葛市| 临朐县| 泗洪县| 灵川县| 尚志市| 灌阳县| 松阳县| 蒙自县| 修武县| 健康| 凤山县| 如皋市| 茶陵县| 突泉县| 浏阳市|