天天看點

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

一:循環語句: 

什麼是循環:重複做某一件事情。

生活中的循環:表,地球公自轉

代碼中什麼情況下會使用循環: 當一段代碼需要重複并且連續的時候需要用的循環。

循環三大條件: 1.定義循環的起始值

                          2.循環結束的條件

                          3.起始值遞增或遞減

無限循環:死循環

造成死循環的條件:1.當循環條件一直滿足的情況(大于小于寫錯了,)

                                2.遞增條件沒有寫。 

(1)while循環

while True:  #死循環

什麼情況下寫死循環:當不知道循環結束條件的時候。(就是指該過程需要重複執行而且不知道什麼時候結束時。)

注意:在程式中0代表False其他數字代表True

例如:

while 1:

      print('這是死循環')

break 結束全部循環

continue 結束本次循環,進行下次循環(能别用盡量别用,可以不寫或寫pass)

while…else…當循環正常結束時就執行else

當循環通過braek結束的時候不執行else。

i=1

while i<3:

    print('這是循環')

   # if i==2:    

   #    break    

    i+=1

else:

    print('結束了')

執行程式觀察有break和沒有的break的差別

練習題:

1.1-10之和

num = 1                              for循環:       sum=0   #注意縮進      
sum = 0                                              for i in range(1,11):
while num <= 10:                                          sum += i
    print(num)                                       print('1-10的和為:%d'%sum)
    sum += num
    num += 1
print('1到10的和為:%d'%sum)              
           
2.1-100中奇數和偶數之和
num=1                             for循環:        osum=0   #注意縮進
osum=0                                            jsum=0
jsum=0                                            for i in range(1,101):
while num<=100:                                       if i%2==0:
     if num%2==0:                                        osum+=i
         osum+=num                                    else:
     else:                                               jsum+=i
         num%2!=0                                 print('1-100奇數和為:%d,偶數和為:%d'%(jsum,osum)) 
         jsum+=num
     num=num+1
print('1-100的偶數和為:%d'%osum)
print('1-100的奇數和為:%d'%jsum)
           
3.1-100被3整除的數之和
num=1                                       for循環: sum=0   #注意縮進
sum=0                                                 for i in range(1,101):
while num<=100:                                             if i%3==0:
     if num%3==0:                                              sum+=i
         sum+=num                                     print('1-100能被3整除的數的和為:%d'%sum) 
     num=num+1
print('1-100能被3整除的數的和為:%d'%sum)
           
4.倒叙輸出1-10
num=10                               for循環:     for i in range(10,0,-1): #注意range()括号内的取值範圍                            
while 0<num<=10:                                          print(i)
      print(num)
      num-=1
           
5.輸入一個數,求它的階乘
sum=1                              for循環:     sum=1   #注意縮進
a=0                                              n=int(input('請輸入您要求階乘的數:'))
while a<n:                                       for i in range(1,n+1):   
    sum*=a+1                                          sum*=i
    a+=1                                         print(sum)
print('%d的階乘為:%d'%(n,sum))
           
6.輸出所有的三位水仙花數(例子:153=1*1*1+5*5*5+3*3*3)
n=100                                          for循環: for i in range(100,1000):  
while  n<=1000:                                              ge=n%10     
    ge=n%10                                                  shi=n//10%10
    shi=n//10%10                                             bai=n//10//10%10  
    bai=n//10//10%10                                         if ge**3+shi**3+bai**3=i:
    if ge*ge*ge+shi*shi*shi+bai*bai*bai==n:                      print(i) 
        print(n)
    n+=1
           
7.循環錄入學生的成績并求出平均分,當錄入負數時提示錄入錯誤,當輸入over時提示結束,最後輸出總成績,平均分以及錄入了多少個成績
zcj=0
n=1
while True:
    grade = input('請輸入第%d個學生的成績:'%n)                   #注意此題在輸入over是并不會計算學生數,是以在
    if grade=='over':                                           #最後計算平均成績時應減去一個輸入次數 
        print('錄入結束!')
        break
    elif int(grade)<0:
        print('錄入錯誤!')
        continue
    zcj+=float(grade)
    n += 1
print('總成績為:%.1f,平均成績為:%.1f,總共錄入%d個學生成績'%(zcj,zcj / (n-1),n-1))
           
8.while...else
num=1                         for...else  #  同樣 for循環也有 else 規則和while...else 一樣 break結束不執行else
while num<=10:                                    for i in range(1,11):
    print(num)                                         print(i) 
    num+=1                                             if i ==7:
    if num==7:                                            break
        break                                     else:
else:                                                 print('循環結束了!') 
  print('循環結束了!')           

 (2)for循環

for循環(一般結合資料結構使用)

格式:for 變量名稱 in 清單

for會結合range()函數一起使用

range():生成一堆的資料,将資料存儲在清單(容器)中    range漢語是範圍的意思,

range(1,100)   1<=x<100  1為起始值   100為最大值,取不到最大值

Range(1,100,3)  3為步長  即每次增加的值

 (3)for while雙層嵌套循環

 内層循環先結束,外層循環才結束。

 先寫内循環,再寫外循環。

練習題:星星  (興趣 思維練習題 如果你是初學者 跳過把,如果你感興趣,卻又感覺燒腦,下邊有我自己的了解)

(1)

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
(2)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
(3)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
(4)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
(5)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

       關于星星問題和for循環問題,由于這是我上課第三天,老師說先并不深入講for循環,重點在while循環上,因為班上有的學生底子比較差,照顧大衆,是以,下邊  我重點用while循環講下星星問題,以及while多層循環的使用方法

       (1)

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

            首先分析圖形:總共有5行星星,第一行可以看做是1個星星,4個空格,每行的星星數随着行數+1  相反空格-1

            是以我們應該要寫三個循環,一個循環控制輸出星星數,一個循環控制輸出空格數,一個循環控制輸出的行數。

            首先我們寫控制星星的循環:第一行1個 ,第二行2個,第三行3個..等等

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

            這時候我們就發現這個圖形5行所有的星星都在得到了,但是全在一行,這并不我們要的結果,是以我們要在每行星星循環完後把空格的循環加上,如下:

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

           當我們把5個空格循環加上之後,這時候我們發現雖然空格循環已經加在了裡邊但是所有結果還是在一行,是以我們還要在每一行的星星和空格循環結束後,加入一個print()讓每一行的星星循環和空格循環結束後進行換行,如下:

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)
Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

           至此,我們已經列印出了我們想要的圖形,但是我們會發現代碼很長,但是,最重要的一點來了,認真觀察的同學已經發現規律了,本章開頭已經說了,循環是什麼,循環是我們一直重複的做一件事,而上邊的代碼就是在重複的做兩件事,輸出第一行的星與空格,然後輸出第二行的星與空格,,,,,直到第五行,每一行的星與空格的輸出也各自是一個循環,星星數i每次循環+1,空格數j每次-1,是以我們先把輸出一行星與空格的代碼塊Ctrl+X,放到剪切闆。分析出這一點,我們來寫第三層循環:

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

          根據上邊圖檔提示我們把控制星與空格的代碼塊粘貼在此處:

Python3中循環語句while,for相關操作,代碼以及用法簡要分析(附簡單練習題)

         是以,嵌套循環就這樣完成了,先把内層循環寫完,最後寫外層循環,然後在外層循環體内粘貼我們寫好的内層循環,這裡還有一個注意點,便是z,i和j的變化,根據外層循環的變化規律,得出i,j的變化規律關系式,不同的關系式就可以得到不同的圖形,是以這一塊也是我們控制星星圖案的重點。

          作為剛剛學習python3的菜鳥,我隻是把我每天學習的内容分享出來,由于水準還有限,一些題的解題方法,用目前所學的知識解起來都顯得比較笨拙與複雜,不過也沒辦法,誰讓這是老師的要求不能用後邊的知識呢,畢竟用目前所學的知識解題有很大的局限性,随着課程的學習,我會回過頭重新來過,用新的知識去寫解題方法。如果我的筆記有任何問題,請及時與我聯系,我會及時更改,謝謝。

繼續閱讀