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
      
上一篇:04-数组函数


下一篇:2021-11-04