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

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

小白自學筆記之Python入門-第六章 循環(huán)-1

2023-07-03 08:50 作者:wangyanhpa  | 我要投稿

接著探討超市購物系統(tǒng),模擬更加真實的購物操作,購物不可能都是購買三種商品,有可能一種,有可能多種,這個怎么實現(xiàn)呢?我們捋一下,過程別亂了。

如果購買一件商品,我們的編程步驟,或者算法應(yīng)該是下面這樣的:

⑴ 輸入商品價格

⑵ 顯示應(yīng)付金額

⑶ 輸入顧客付款金額

⑷ 顯示找零信息

⑸ 打印購物小票

如果購買三件商品,我們的編程步驟,或者算法應(yīng)該是下面這樣的:

⑴ 輸入三種商品價格,累加每種商品價格(為下一步顯示應(yīng)付金額準備)

⑵ 顯示應(yīng)付金額

⑶ 輸入顧客付款金額

⑷ 顯示找零信息

⑸ 打印購物小票

?

如果購買十件商品,我們的編程步驟,或者算法應(yīng)該是下面這樣的:

⑴ 輸入十種商品價格,累加每種商品價格(為下一步顯示應(yīng)付金額準備)

⑵ 顯示應(yīng)付金額

⑶ 輸入顧客付款金額

⑷ 顯示找零信息

⑸ 打印購物小票

?

大家可以比較一下,基本是第一步有區(qū)別,第一步輸入價格我們可以使用input函數(shù)實現(xiàn),但是輸入十種商品需要寫十個input函數(shù)嗎?當然不是,計算機不會提供這么笨的方法,就像一個笑話“萬先生”里面講的,跑一下題,輕松一下。?

古時候,有一個人不識字,他不希望兒子也像他這樣,就請了個教書先生來教他兒子認字。他兒子見老師寫“一”就是一劃,“二”就是二劃,“三”就是三劃,他就跑去跟他父親說:“爸爸,我會寫字了,請你叫老師走吧!” 這人聽了很高興,就給老師結(jié)算了工錢叫他走了。 第二天,這人想請一個姓萬的人來家里吃飯,就讓他兒子幫忙寫一張請?zhí)?,他兒子從早上一直寫到中午也沒有寫好,這人覺得奇怪,就去看看,只發(fā)現(xiàn)他兒子在紙上劃了好多橫線,就問他兒子什么意思?他兒子一邊擦頭上的汗一邊埋怨道:“爸,這人姓什么不好,偏偏姓萬,害得我從早上到現(xiàn)在才劃了500劃!!"?

Ok,拉回來接著講循環(huán),我們需要采用循環(huán)結(jié)構(gòu)完成這個功能。Python有兩種循環(huán):for循環(huán)和while循環(huán)。

6.1 for循環(huán)

學習for循環(huán)之前,我們需要先復(fù)習一下range函數(shù)。range函數(shù)的語法如下:

range(stop): 0~stop-1

range(start,stop): start~stop-1

range(start,stop,step): start~stop step(步長)


range(6): 生成序列0 1 2 3 4 5

range(3,,6): 生成序列3 4 5

range(1,6,2): 生成序列1 3 5

for循環(huán)的語法如下:

for 變量 in range():

??? 循環(huán)需要執(zhí)行的代碼

?

思考:⑴編程實現(xiàn)求1~100內(nèi)偶數(shù)之和,⑵求5的階乘5!

先看⑴,首先我們需要一個變量sum用于存儲累加和,初始值為零sum=0,然后通過range函數(shù)生成100之內(nèi)的所有偶數(shù)range(0,101,2)??? #為什么用101?在循環(huán)里進行累加計算,最后輸出結(jié)果。

參考代碼

sum=0

for i in range(0,101,2):

??? sum=sum+i

print(sum)

運行結(jié)果 2550

上面程序中循環(huán)體(就是要多次執(zhí)行的語句)只有一句sum=sum+i ,如果代碼改成下面這樣,思考一下運行結(jié)果會是什么。

sum=0

for i in range(0,101,2):

??? sum=sum+i

??? print(sum)

我都不想貼運行結(jié)果了,要占用我50行空間(差一點寫成100行),但是居然50行也是錯誤的,怎么驗證到底是多少行呢?程序改成下面這樣嬸兒的:

sum=0

count=0

for i in range(0,101,2):

??? sum=sum+i

??? count+=1

??? print(count,sum)

運行結(jié)果

1 0

……??? #我真的算不出這里省略了多少行了!

51 2550

?

解釋一下上面的程序,循環(huán)體有三條語句(為什么,因為Python縮進及其嚴格,這里程序通過縮進確定循環(huán)體),三條語句是

??? sum=sum+i

??? count+=1

??? print(count,sum)

也就是每一次(當i的值分別為0,2,4,6……100)都會執(zhí)行計算和、count加1和輸出count,sum值

試著編程實現(xiàn)求100以內(nèi)奇數(shù)的和,求1+2+3+…+100的和,給你參考答案,當然不是編程代碼,而是奇數(shù)和2500,所有數(shù)的和5050,測試一下你的程序編寫是否正確吧!

?

接下來看第2個思考題:求5的階乘5! 剛才是計算累加和,這次是計算累乘積,一樣的方法。首先我們需要一個變量mul用于存儲累乘積,初始值為1,mul=1,然后通過range函數(shù)生成5之內(nèi)的所有數(shù)range(1,6)? ?注意這里是6哦,在循環(huán)里進行累乘計算,最后輸出結(jié)果。

參考代碼

mul=1

for i in range(1,6):

??? mul=mul*i

print(mul)

運行結(jié)果 120

為什么沒有計算100的階乘呢?

我倒是計算了10的階乘:3628800,似乎是對的,還試了20的階乘:2432902008176640000,可能是正確的,100的階乘也試了,一行都寫不下,誰知道是對還是錯呢:

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

?

for循環(huán)編程思考題:給小學生出10個10以內(nèi)的加減法,隨機生成兩個10以內(nèi)的整數(shù)number1和number2,提示用戶輸入兩個整數(shù)的和,判斷答案是否正確并給出分數(shù)。我不想編寫這個代碼,算了算了,還是寫吧。畢竟還是有點難度的!

參考代碼:

import random

import time

?

print("**********小學生10以內(nèi)加減法考試系統(tǒng)**********")

print("一共10道題目\n3,2,1...開始了!")

starttime=time.time()

correctNo=0

?

for i in range(10):

??? number1 = random.randint(1,10)

??? number2 = random.randint(1, 10)

??? sign=random.randint(1,2)

??? if sign==1:? #加法

??????? answer=int(input(str(number1)+"+"+str(number2)+"="))

??????? if answer==number1+number2:

??????????? correctNo = correctNo + 1

??? else:??????? #減法

??????? if number1<number2:

??????????? number1,number2=number1,number1

??????? answer = int(input(str(number1) + "-" + str(number2) + "="))

??????? if answer==number1-number2:

??????????? correctNo = correctNo + 1

endtime=time.time()

spenttime=endtime-starttime

print("你做對了",correctNo,"個題目,得分:",correctNo*10, \

"用時",format(spenttime,"0.2f"),"秒")

?

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

?

運行結(jié)果

**********小學生10以內(nèi)加減法考試系統(tǒng)**********

一共10道題目

3,2,1...開始了!

5+3=8

1-1=0

4-4=0

9+5=13

1-1=0

10+8=18

1-1=0

7+2=9

8+1=9

3+3=6

你做對了 9 個題目,得分: 90 用時 22.32 秒

bye......

?

for循環(huán)的一般形式(這個一般人我不告訴他,其它編程語言沒有else部分)

for 變量 in range():

??? 循環(huán)需要執(zhí)行的代碼

else:

??? 循環(huán)結(jié)束時(沒有通過break退出循環(huán)時),需要執(zhí)行的代碼

以用戶登錄管理系統(tǒng)為例說明。用戶登錄需求:1.輸入用戶名和密碼; 2.判斷用戶名和密碼是否正確(name=‘cup’,passwd=‘cup123’) 3.登錄僅有三次機會,超過3次會報錯。

for i in range(3):

??? user = input('請輸入用戶名:')

??? passwd = input('請輸入密碼:')

??? if user=='cup' and passwd == 'cup123 ':

??????? print('%s用戶登錄成功' %user)

??????? break

??? else:

??????? print('密碼錯誤,請重新輸入密碼,您還剩%d次機會' %(2-i))

else:

??? print('超過三次,登錄失敗')

?

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

?

運行結(jié)果1

請輸入用戶名:cup

請輸入密碼:cup123

密碼錯誤,請重新輸入密碼,您還剩2次機會

請輸入用戶名:cup

請輸入密碼:cup123

cup用戶登錄成功

welcome !

我就想問問:第一次密碼為什么還不對?請你思考,別找了,沒有參考答案

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?運行結(jié)果2

請輸入用戶名:1

請輸入密碼:1

密碼錯誤,請重新輸入密碼,您還剩2次機會

請輸入用戶名:2

請輸入密碼:2

密碼錯誤,請重新輸入密碼,您還剩1次機會

請輸入用戶名:3

請輸入密碼:3

密碼錯誤,請重新輸入密碼,您還剩0次機會

超過三次,登錄失敗

bye......

?

試著分析下面代碼運行結(jié)果:

for i in range(1,10):

??? if i%2==0:

??????? print(i)

??????? continue

??? print("%d houmian"%i)? ? #“后面的拼音

else:

??? print("for else")

print("end")

?

1 houmian

2

3 houmian

4

5 houmian

6

7 houmian

8

9 houmian

for else

end

?

for i in range(1,10):

??? if i%2==0:

??????? print(i)

??????? break

??? print("%d houmian"%i)

else:

??? print("for else")

print("end")

1 houmian

2

End

?

編程練習(就是自己試著編寫程序,獨立解決問題,我不是嚴師,希望你們是高徒):

1. 輸入一個正整數(shù),輸出這個數(shù)所有的因子。如6的因子有1,2,3,6

2. 計算從1到1000以內(nèi)所有能同時被3,5和7整除的數(shù)的和并輸出。

自己寫吧,我不想做了,現(xiàn)在太晚了,要養(yǎng)生,不熬夜。2020年7月8日星期三21時6分

?

又想起個問題,購物系統(tǒng)還沒有實現(xiàn)呢?這個……這個……購物系統(tǒng)用for循環(huán)不太適合,接著看下面的while循環(huán)吧!


小白自學筆記之Python入門-第六章 循環(huán)-1的評論 (共 條)

分享到微博請遵守國家法律
瑞安市| 清远市| 广灵县| 彰武县| 丽水市| 阳新县| 娄烦县| 西安市| 湖南省| 鄱阳县| 彰武县| 鄂尔多斯市| 江城| 普格县| 德庆县| 黔江区| 樟树市| 靖宇县| 福安市| 洮南市| 牡丹江市| 宽甸| 连平县| 杭州市| 竹溪县| 灵丘县| 仁化县| 峨边| 黄梅县| 元谋县| 随州市| 两当县| 江都市| 巫山县| 和林格尔县| 嘉峪关市| 古丈县| 江口县| 财经| 通辽市| 明光市|