1. 程式人生 > 其它 >04 python中的while for迴圈結構

04 python中的while for迴圈結構

迴圈結構

  1. for……in:知道次數時使用的迴圈,一般搭配range

  2. while:不知道迴圈次數時使用

  3. range的用法解析:特點是包頭不包尾

    ```
    range(101):指的是0-100
    range(1,101):指的是1-100
    range(1,101,2):1-100的奇數
    range(100,0,-2):100-1的偶數
    ```
    
  4. 小指令碼練習

    • 輸入一個正整數判斷是不是素數

      from math import sqrt
      
      def sushu(num):
          for i in range(2,int(sqrt(num))+1):
              if num%i==0 :
                  return False
          return True if num!=1 else False
      
      num=int(input('輸入一個數字:'))
      print(sushu(num))
      
    • 輸入兩個正整數,計算它們的最大公約數和最小公倍數

      #實現最大公約和最小公倍數的函式
      def max_gongyue(x,y):
          for i in range(x,0,-1):
              if x%i==0 and y%i==0:
                  return i
      
      def min_gongbei(x,y):
          i=max_gongyue(x,y)
          return (x*y)/i
      
      def main():
          x=int(input('請輸入正整數1:'))
          y=int(input('請輸入正整數2:'))
          print('最大公約數是%d,最小公倍數是%d'%(max_gongyue(x,y),min_gongbei(x,y)))
      
      
      if __name__ == '__main__':
          main()
      
    • 列印如下所示的三角形圖案

      '''
      *
      **
      ***
      ****
      *****
      '''
      '''
          *
         **
        ***
       ****
      *****
      '''
      '''
          *
         ***
        *****
       *******
      *********
      '''
      def xingxing1():
          #輸入要幾行
          row=int(input('請輸入要列印幾行星星'))
          #行數迴圈
          for i in range(1,row+1):
              # 列迴圈
              for j in range (i):
                  print('*',end='')
              print()
      
      def xingxing2():
          # 輸入要幾行
          row = int(input('請輸入要列印幾行星星'))
          for i in range(1,row+1):
              for j in range(row-i):
                  print(' ',end='')
              for k in range(i):
                  print('*',end='')
              print()
      
      def xingxing3():
          row = int(input('請輸入要列印幾行星星'))
          for i in range(1, row + 1):
              for j in range(row-i):
                  print(' ',end='')
              for k in range(2*i-1):
                  print('*',end='')
              for l in range(row-i):
                  print(' ',end='')
              print()
      
      if __name__ == '__main__':
          # xingxing1()
          # xingxing2()
          # xingxing3()
          pass