python基礎迴圈的學習記錄

來源:互聯網
上載者:User

一、while迴圈

如果條件成立(true),重複執行相同操作,條件不符合,跳出迴圈

  while 迴圈條件:

     迴圈操作

(1)while迴圈樣本

例:輸入王曉明5門課程的考試成績,計算平均成績

i=1                                            # 初始化迴圈計數器isum=0                                          # 初始化總成績變數while i<=5:                                    # 從i為1開始到5,重複執行一共5次接受考試成績、求和的操作        print ('請輸入第%d門課程的考試成績'%i)    # 提示使用者輸入成績,其中用到了格式化輸出,%d的取值隨i的值顯示,第1門課程,第2門課程……        sum=sum+input()                        # 把使用者輸入的成績賦值給sum,最後儲存著5次成績的和        i=i+1                                  # 每次迴圈 i 都自增1,直到大於5跳出迴圈avg=sum/(i-1)                                  # 當第五次執行完i=i+1時,i為6,跳出迴圈,計算出sum/(i-1)的值就是平均值,並賦值給avgprint ('王曉明5門課程的平均成績是%d'%avg)          # 格式化輸出avg的值,由於用了%d所以計算出的%avg的數值有小數也會省去,接收整數部分

(2)嵌套while迴圈樣本

外部迴圈滿足條件後,執行代碼開始執行內部迴圈,等內部迴圈全部執行完畢,如果還滿足外部迴圈條件,則外部迴圈再次執行,依次類推,直到跳出外層迴圈。

例:分別輸入兩個學生的5門成績,並分別計算平均成績

j=1                                         # 定義外部迴圈計數器初始值prompt='請輸入學生姓名'                       # 定義字串變數,在使用者輸入時調用此變數可以減少敲漢字的麻煩while j<=2:                                 # 定義外部迴圈為執行兩次    sum=0                                   # 定義成績初始值,之所以定義在這裡,是為了當第二個學生輸入成績時可以讓sum初始化為0,重新接收新學生的成績和    i=1                                     # 定義內部迴圈計數器初始值    name = raw_input(prompt)               # 接收使用者輸入的學生姓名,賦值給name變數    while i<=5:                             # 定義內建函式迴圈5次,就是接收5門課程的成績        print ('請輸入第%d門的考試成績: '%i)   #提示使用者輸入成績,其中用到了格式化輸出,%d的取值隨i的值顯示,第1門課程,第2門課程……        sum= sum + input()                  # 接收使用者輸入的成績,賦值給sum        i+=1                                # i變數自增1,i變為2,繼續執行迴圈,直到i等於6時,跳出迴圈    avg=sum/(i-1)                           # 計算第一個學生的平均成績 sum/(6-1),賦值給avg    print name,'的平均成績是%d\n'%avg         # 輸出學產生績平均值    j=j+1                                   # 內部迴圈執行完畢後,外部迴圈計數器j自增1,變為2,再進行外部迴圈print '學產生績輸入完成!'                     # 外部迴圈結束,提示輸入完成!

二、for迴圈

(1)使用for語句可以遍曆全部元素,例如逐個輸出字串中的字元,逐個輸出資料行表中的元素,元組中的元素,集合中的元素(注意賦值時各元素的順序),字典中的鍵……

for letter in 'Python':  print letter結果:Python
fruits=['西瓜','水蜜桃','葡萄']for fruit in fruits:    print fruit結果:西瓜水蜜桃葡萄

(2)重複執行相同操作

使用range()函數建立一個數字列表

取值範圍:從起始數字開始到結束數字之前

for i in range(0,5):  #依次把0到4儲存在變數i中    print 'Mr.Mangood最酷!'結果:Mr.Mangood最酷!Mr.Mangood最酷!Mr.Mangood最酷!Mr.Mangood最酷!Mr.Mangood最酷!

輸入王曉明的三門考試成績,並算出平均值

subjects=('linux系統','Mysql資料庫','Python語言')  # 定義一個元組,三個元素代表三門課程sum=0                                            # 定義變數num為初始化成績分數for i in subjects:                               # 把元組裡的每一個元素依次賦值給i,一共有三次    print '請輸入%s的考試成績'%i                   # 提示輸入成績,運用了格式化字串功能,用i每次取得的元素名表達出成績名字,%s的意思是字串    score = input()                              # 接收使用者輸入的成績賦值給score    sum += score                                 # 把成績賦給sum,相當於sum = sum + scoreavg= sum / len(subjects)                         # 跳出for迴圈後,計算平均值,這裡用函數len()來計算變數subjects的長度,因為subjects定義為一個元組,因此長度即為元素個數3print '王曉明的平均成績為%d'%avg                    # 輸出平均成績結果:請輸入linux系統的考試成績87請輸入Mysql資料庫的考試成績78請輸入Python語言的考試成績90王曉明的平均成績為85

(3)嵌套for迴圈

輸入黃曉鳴、楊影2位同學,每人三門課程的考試成績,計算平均成績

student = (23'黃曉鳴','楊影')                      #定義學生姓名的元組subjects=('linux系統','Mysql資料庫','Python語言')  #定義課程名字的元組for j in student:                                #把j依次取兩名學生的值進行兩次迴圈    sum=0                                        #初始化成績的值    print '%s同學的考試成績'%j                     #列印出標題    for i in subjects:                           #定義課程迴圈        print '請輸入%s的考試成績'%i               #提示輸入其中一名學生的考試成績        score = input()                          #接收考試成績賦值給score        if score<0 or score>100:                 #判斷分數取值範圍,做提醒            print '注意成績大小'            sum+=score                               #每次輸入成績後,sum值都累加    avg= sum/len(subjects)                       #求出平均成績    print j,'的平均成績是%d\n'%avg                 #列印平均成績print'完成學產生績錄入工作'                         #提示完成工作

三、迴圈控制

迴圈控制語句可以改變迴圈正常的執行順序

迴圈控制語句

break語句:跳出本次迴圈(嵌套迴圈中只跳出一層迴圈)

continue語句:跳過當前一輪迴圈體的剩餘語句,重新測試迴圈狀態,進入下一輪迴圈,比如迴圈的次數一共有5次,第四次遇到continue了,那麼不繼續執行了,直接進行第5次迴圈判斷

四、迴圈控制綜合案例

1、需求分析

顯示菜單

(N)ew User Login

(E)ntering User Login

(Q)uit

Enter choice:

註:輸入字母N,接收新的登入名稱和密碼,儲存在字典中

  輸入字母E,接收登入名稱、密碼、尋找、匹配使用者輸入是否正確

  輸入字母Q,退出

2、執行步驟

  (1)編製菜單

  (2)使用while語句實現功能表項目選擇-外層迴圈

  (3)使用while語句接收新的登入名稱-內層迴圈

  (4)使用if語句判斷菜單,執行相關操作

3、代碼架構圖

4、具體代碼

db={}           prompt='''             (N)ew user login    (E)ntering user login    (Q)uitEnter choice:'''while True:             choice = raw_input(prompt).strip()[0].lower()       #讀取控制台輸入的字串,去除其首尾多餘的空格後,將第一個字串轉換為小寫字母    print '\n--You picked:[%s]'%choice          if choice not in 'neq':        print '--invaild option:,try again--'    else:        if choice == 'n':            prompt1 = '--login desired:'            while True:                name = raw_input(prompt1)                if db.has_key(name):            #判斷字典裡的索引值是否已經有輸入的name值,如果有的話觸發continue重新執行while迴圈,因為觸發continue前prompt1被重新定義了,所以執行了新的name = raw_input(prompt1)                    prompt1 = '--name taken,try another: '                    continue                else:                    break            pwd = raw_input('password:')    #驗證字典中的鍵沒有輸入的name值後,跳出迴圈,把使用者輸入的密碼賦值給pwd            db[name] = pwd      #把值傳給字典db中的name鍵實現字典資料的完善        elif choice == 'e':            name = raw_input("login:")            pwd = raw_input('password:')            password = db.get(name)     #登入時,接收使用者輸入的登入名稱和密碼後,把字典db中name鍵的值賦給password            if password == pwd:     #比較字典中的密碼password和使用者輸入的密碼pwd是否一致                print 'welcome',name            else:                print 'shibai'        else:            print 'quit!'            break

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.