資源簡介 (共19張PPT)while 條件循環while 條件循環:在規定的條件內,循環執行某個程序塊。基本結構:while 循環條件:循環體程序塊條件為True,重復執行循環體程序塊;條件為False,結束循環。流程圖:例1:輸出小于10的正奇數a=1while a<10:print(a)a=a+2運行程序觀察:while語句的執行過程例2:程序在1~100之間取隨機數作為神秘數字,請玩家猜是什么數字。如果沒猜中:猜大了,顯示提示信息“你的數字大了,請重猜!”,并且讓用戶繼續猜;猜小了,顯示提示信息“你的數字小了,請重猜!”,并且讓用戶繼續猜;如果猜中了,就結束游戲。思考:什么條件下用戶需要重復猜?用戶猜的數字不是神秘數字random()生成0~1之間的隨機小數。[0,1),大于等于0.0小于1.0語法格式為:random.random()random:生成隨機數import random可導入random模塊。randint(a,b)生成a~b之間的隨機整數。[a,b],大于等于a小于等于b。語法格式為:random.randint(a,b)import randomsecret_number=random.randint(1,100)your_number=int(input("請輸入你猜的數字"))while your_number!=secret_number:if your_number>secret_number:print("你的數字大了,請重猜")else:print("你的數字小了,請重猜")your_number=int(input("請輸入你猜的數字"))print("猜中啦!你真聰明!")例3:任意輸入一個除了1以外的正整數,判斷它是否為質數。思考:什么是質數?即這個數只能被1和自己整除,若這個正整數為x,即只能被1和x整除。如果被2~(x-1)中任意一個整數整除了,這個正整數就不是質數。除了1以外的只能被1和本身整除的正整數被稱為質數讓這個正整數x分別除以2~x中的每一個整數,如果只有x能被整除,即說明x是質數;正整數x重復除以i,直到i和x相等,結束循環2~x設置變量i,為變量累加:i=i+1x=int(input("輸入一個不是1的正整數"))i=2while x%i!=0:i=i+1if x==i:print(str(x)+"是質數")else:print(str(x)+"不是質數")手持一枚硬幣,拋向空中,讓硬幣自由下落,硬幣落地后正面朝上和反面朝上的概率各是多少?隨機現象:在一定條件下,在個別試驗或觀察中呈現不確定性,但在大量重復試驗或觀察中其結果又具有一定規律性的現象,稱為隨機現象。概率各為50%主題:編寫程序,模擬擲硬幣后出現正面朝上和反面朝上的結果1.問題需求:統計給定次數條件下,正面朝上和反面朝上的出現的次數,并輸出統計結果。2.輸入和輸出:輸入:程序本身限定次數;增加交互性和趣味性:由用戶輸入次數。輸出:分別打印正面朝上和反面朝上的次數。實現相關功能的思路方法:因為投擲硬幣正面朝上和反面朝上是隨機出現的,即1和0是隨機出現的,因此可用random()函數生成0和11.如何表示正面朝上和反面朝上?用1表示正面朝上,用0表示反面朝上,使用變量賦值2.如何生成1和0?需要重復擲骰子,統計正面朝上和反面朝上的次數,因此需要重復生成隨機數,用while條件循環在給定的次數范圍內,重復統計1和0出現的次數。3.如何統計1和0出現的次數?import randomn=int(input("請輸入擲硬幣的次數:"))i=1x=0y=0while(i<=n):if (random.randint(0,1)==1):x=x+1else:y=y+1i=i+1print("正面朝上的次數是:",x)print("反面朝上的次數是:",y)分別輸入擲硬幣的次數10、100、1000、10000、100000、1000000,你發現了什么?擲硬幣次數越多,實驗所得頻率趨近于理論概率值。擴展練習:編寫程序,模擬擲骰子出現1、2、3、4、5、6點的結果1.問題需求:統計給定次數條件下,擲骰子出現1、2、3、4、5、6點的次數,并輸出統計結果。2.輸入和輸出:輸入:程序本身限定次數;增加交互性和趣味性:由用戶輸入次數。輸出:分別打印1、2、3、4、5、6點的出現的次數和概率。import randomn=int(input("請輸入擲骰子的次數:"))i=1a=0b=0c=0d=0e=0f=0while(i<=n):if (random.randint(1,6)==1):a=a+1if (random.randint(1,6)==2):b=b+1if (random.randint(1,6)==3):c=c+1if (random.randint(1,6)==4):d=d+1if (random.randint(1,6)==5):e=e+1if (random.randint(1,6)==6):f=f+1i=i+1print("擲骰子1朝上的次數是:",a,"概率為",a/n)print("擲骰子2朝上的次數是:",b,"概率為",b/n)print("擲骰子3朝上的次數是:",c,"概率為",c/n)print("擲骰子4朝上的次數是:",d,"概率為",d/n)print("擲骰子5朝上的次數是:",e,"概率為",e/n)print("擲骰子6朝上的次數是:",f,"概率為",f/n)for遍歷循環和while 條件循環的區別while循環用于控制條件,它并不關注程序循環了多少次,更多希望的是程序能一直循環,直到發生某個事件才結束循環。for循環用于控制次數,要求事先知道要進行多少次循環,或者說需要有個非常明確的列表范圍循環大測試:1.用for循環打印出1~100的所有奇數;2.用for循環制作倒計時,從10倒數到1;3.用for循環計算1*2*3*…*20的值;4.用for循環遍歷“family”,打印其中的字母;5.一次考試中,老師把所有成績存入了一個列表,列表為[65,75,78,98,56,90,45,59,88,87],請打印出所有不及格的成績;6. 從列表[46,67,34,56,48,90,300,233,566]中找出一個大于80的數字。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫