1. 程式人生 > 實用技巧 >Python_note_005(Python中的迴圈結構,內建函式range()、while迴圈語句、for迴圈語句、巢狀迴圈、列印99乘法表)

Python_note_005(Python中的迴圈結構,內建函式range()、while迴圈語句、for迴圈語句、巢狀迴圈、列印99乘法表)

內建函式range()

  • 用於生成一個整數序列

  • 三種建立方式

    # range()的三種建立方式
    r1=range(2,10,2)#起始值,終止值,步長
    r2=range(5,20)#起始值,終止值
    r3=range(5)#起始值
    print('三種建立方式結果:+++'+'\n',list(r1),'\n',list(r2),'\n',list(r3))
    print(8 in r1)
    
  • 返回值是一個迭代器物件

  • range型別的特點

    不管range物件表示的整數序列有多長,所有range物件佔用的記憶體空間都是相同的,因為僅僅需要儲存start,stop和step,只有當用到range物件時,才會計算序列中的相關元素

  • in和not in可以判斷整數序列中是否存在或不存在指定的整數


迴圈結構分類為(while,for in)

  • while迴圈

    # 迴圈結構
    '''
    4步迴圈法
    1.初始化變數
    2.條件判斷
    3.條件執行體
    4.改變變數
    總結:初始化的變數與條件判斷的變數與改變的變數為同一個
    '''
    n=1
    sum=0
    while n<=10:
        sum+=n
        n+=1
    print(sum)
    
    # 練習題 計算1到1w00之間的偶數
    a=1
    sum2=0
    while a<=100:
        if not bool(a%2):#a%2==0
            sum2 += a
        a+=1
    print(sum2)
    
  • for in迴圈

    # for in 迴圈
    for i in '12345678':
        print(i)
    for i2 in range(2,10,2):
        print(i2)
    for _ in range(5):
        print('我要學python')
    
    print('for迴圈計算1到100的偶數和')
    sum_for=0
    for item in range(0,101,2):
        sum_for+=item
    print(sum_for)
    
    # 練習題,,計算100到999之間的水仙花數
    for item in range(100,1000):
        g=item%10
        s=item//10%10
        b=item//100
        if g**3+s**3+b**3==item:
            print(item)
    

流程控制語句

  • break語句(跳出迴圈)

    # 從鍵盤錄入密碼,最多錄入3次,如果正確就結束迴圈
    print('for迴圈方式++++++++++++++++++++')
    a=0;#記錄輸入密碼的次數
    for item in range(3):
        i=input('請輸入密碼')
        a+=1
        if i=='888888':
            print('密碼正確')
            break
        else:
            if a==3:
                print('以輸錯超過三次,賬號已鎖定')
            else:
                print('密碼錯誤')
    
    print('while迴圈方式+++++++++++++++++++')
    w=0
    while w<3:
        i2=input('請輸入密碼')
        if i2 =='888888':
            print('密碼正確')
            break
        else:
            if a == 3:
                print('以輸錯超過三次,賬號已鎖定')
            else:
                print('密碼錯誤')
        w+=1
    
  • continue語句(跳出當前,從頭執行)

    # 要求輸出1到50之間所有5的倍數,5,10,15等
    for item in range(1,51):
        if item % 5 ==0:
            print(item)
    print('continue語法實現方式++++++++++')
    for item in range(1,51):
        if item %5!=0:
            continue
        print(item)
    

else語句

  • while 或者 for和else一起用時,如果沒有break時就執行else中的語句

    print('for  else迴圈方式++++++++++++++++++++')
    for item in range(3):
        i=input('請輸入密碼')
        if i=='888888':
            print('密碼正確')
            break
        else:
            print('密碼錯誤')
    else:
        print('以輸錯超過三次,賬號已鎖定')
    
    print('while else迴圈方式+++++++++++++++++++')
    w=0
    while w<3:
        i2=input('請輸入密碼')
        if i2 =='888888':
            print('密碼正確')
            break
        else:
            print('密碼錯誤')
        w+=1
    else:
        print('以輸錯超過三次,賬號已鎖定')
    

巢狀迴圈

  • 在迴圈裡還有個迴圈

    #輸出99乘法表+++++++++++++
    for i in range(1,10):
        for j in range(1,i+1):
            #print(str(j)+'*'+str(i)+'='+str(i*j),end='\t')
            print(j,'*',i,'=',j*i, end='\t')
        print()
    

二重迴圈中的break和continue

  • 用於控制本層的迴圈

    # 二重迴圈中的break和continue的使用
    for i in range(1,6):
        for j in range(1,20):
            if j%2==0:
                #break
                continue
            print(j,end='\t')
        print()