循環與迭代

python的循環語句只有二個 while for ,所有的語句都支持嵌套

while 語句:
形式一:
    while  條件:
        代碼塊1

形式二:
    while 條件:
        代碼塊1
    else:
        代碼塊2

死循環,只要條件永遠爲真
    while True:
        代碼塊


循環控制語句:
    break  : 當循環遇到break時,則終止整個循環
    continue: 當循環遇到continue時 ,則終止當前循環開始下一次循環
    pass    :  佔位,什麼也不做
** 練習1: 求 1到100之間的和 **
        ret = 0
        i = 1
        while i<=100:
            ret = ret + i
            #i = i + 1
            i += 1

        print(ret)

** 練習2: 有一個列表 L = [12,5,65,23,68,84,26],將奇偶數分開 **
        方法一:
            L = [12,5,65,23,68,84,26]
            odd = []
            even = []

            flag = 0
            while flag < len(L):
                tmp = L[flag]
                if tmp % 2 == 0:
                    even.append(tmp)
                else:
                    odd.append(tmp)
                flag += 1

            print(odd)
            print(even)

        方法二:
            L = [12,5,65,23,68,84,26]
            odd = []
            even = []

            while L:
                tmp = L.pop(0)
                if tmp % 2 == 0:
                    even.append(tmp)
                else:
                    odd.append(tmp)

            print(odd)
            print(even)

 ** 練習3 斐波那契數列(後一位是前兩位的和: 1  1  2  3  5 ....)輸出其中的某一位,比如指定第6位,則輸出數列中的第6個數。 **
            count = 8
            fib = [1,1]

            while len(fib) < count:
                new = fib[-1] + fib[-2]
                fib.append(new)

            print(fib)
            print(fib[count-1])

** 練習4 學生信息字典 : studict = {'Tom':[18801116666,20],'Lily':[18801116688,22],'Harry':[18801117777,18]} 
    需求:用戶執行程序,輸出所有年齡大於19歲的“學生名-年齡-電話” **

            studict = {'Tom':[18801116666,20],'Lily':[18801116688,22],'Harry':[18801117777,18]}
            while studict:
                tmp = studict.popitem()
                age = tmp[1][1]
                if age > 19:
                    print('{}  {}  {}'.format(tmp[0],*tmp[1]))

** 練習5 找出所有的水仙花數(一個三位數,個位數的三次方,十位數的三次方,百位數的三次方相加等於這個數本身) **
            flag = 100
            while flag < 1000:
                bai = flag % 1000 // 100
                shi = flag % 100 // 10
                ge = flag % 10 // 1
                tmp = bai ** 3 +shi ** 3 + ge ** 3
                if tmp == flag:
                    print(tmp)

                flag += 1

** 練習6 判斷一個數是不是質數(只能被1和它本身整除的數,又稱素數) **
            num = 9
            flag = 2
            while flag < num:
                if num % flag == 0:
                    print(False)
                    break
                flag += 1
            else:
                print(True)

** 練習7 猜數遊戲,產生一個1-100之間的隨機數,讓用戶猜,如果數大了就說數太大了,如果數小了就說數小了,如果猜對了就說猜對了 **
    產生隨機數的方法
        from random import randint
        randnum = randint(1,100)

    參考:
        from random import randint
        randnum = randint(1,100)

        while True:
            guess = input('請猜一個1到100之間的整數: \n')
            guess = guess.strip()
            if not guess.isdigit():
                print('{} 不合法,必須爲一個整數'.format(guess))
                continue
            guess  = int(guess)
            if guess > randnum:
                print('{} 太大了'.format(guess))
            elif guess < randnum:
                print('{} 太小了'.format(guess))
            else:
                print('{} 猜對了'.format(guess))
                break


** 練習8 猜數遊戲,產生一個1-100之間的隨機數,讓用戶猜,如果數大了就說數太大了,如果數小了就說數小了,如果猜對了就說猜對了。
        統計用戶猜了多少次才猜對的。如果用戶猜對了,問一下用戶是否要繼續 n 爲退出,其它任意鍵爲繼續 **
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章