简介:

        循环语句常被用来执行一些需要反复执行的代码

        在python中我们循环的语句有  while循环和for循环,其中while和for的循环各自的用法和用途有一定的区别

语法格式

while  循环条件:

                循环体

  • while      :命令
  • 循环条件: while循环条件 布尔类型(True  Flase)   当循环为True时继续循环

                       当条件为Flase时则中断循环  其中条件判断语句有  <, >,  ==,  <=, >=, !=等等

  • 循环体   :

  •     for    迭代的变量   in  迭代的对象

                  循环体

  • for              :命令
  • 迭代变量    :迭代的变量是根据迭代的对象来确定范围的  也可以自定义初始的范围
  • 迭代的对象 :迭代的变量可以是有序的列表 也可以是用range函数自定义范围
  • 循环体        :
  • range (初始值,最终值,步长)

    简单来说range函数就是设定一个值的范围(前闭后开)同时规定他的步长值

  • 初始值:从用户设定的值开始,默认为0为初始值
  • 最终值:表示用户生成的最多数字但不包括此数字
  • 步长:指的是初始值于最终值每一次执行的差值
  • 列如:
    x = range(1,20,3)
    for i in x:
        print(i,end=" ")
    
    1 4 7 10 13 16 19 
  •                 

    break命令

                   break命令用于结束的当前的循环体(注意只能跳出当前的循环体并不能跳出嵌套的循环体)

    continue命令

                    continue命令用于结束当前的循环并且开始下一次的循环(注意continue是结束当前循环并不会跳出循环语句而break是直接跳出循环体)

    示例:

          whlie循环:

    #求1-100的和
    i = 1
    sum = 0
    while i <= 100:
        sum += i
        i += 1
    print(sum)
    
    #死循环
    while True:
        print("循环体")
    
    #break的使用
    i = 10
    while True:
        if i == 100:
            break
        i += 10
    print(i)
    
    # continue的使用
    i = 0
    while i < 10:
        i += 1
        if i % 2 == 0:
            continue
        print(i,end=" ")
    else:
        print("当条件不在成立时我们也可以再运行一次代码")
    
    1 3 5 7 9   当条件不在成立时我们也可以再运行一次代码
    

        for循环:

    for i in range(0,6,1):
        if i == 4:
            break
        print(i,end=" ")
    
    0 1 2 3 
    
    for i in range(1,5,1):
        if i == 4 or i == 2:
            continue
        print(i,end=" ")
    
    1  3
    
    
    # for遍历字符串
    str = "abcdef"
    for i in str:
        print(i,end=" ")
    print()
    
    #for循环遍历列表
    ls = [1,3,4,6,8,2]
    for i in ls:
        print(i,end=" ")
    print()
    
    #使用range函数确定数值范围
    for i in range(1,10,2):
        print(i,end=" ")
    else:
        print("当循环执行完后执行的语句,for使用break语句跳出循环时不执行此语句")
    
    for i in range(1,10,2):
         pass #pass 当写了无内容语句时 可以用pass语句来代替循环体 从而不报错
    
    
    a b c d e f 
    1 3 4 6 8 2 
    1 3 5 7 9 

     嵌套循环:

                    使用for和while循环时可以根据具体的需求互相嵌套 列如在for循环中嵌套while  在while循环中嵌套for

                    嵌套循环是指在外层循环一次内层循环所有循环如此反复

    
    
    for i in range(1,5,1):
        for i in range(0,i,1):
            print(i,end=" ")
        print()
    
    0 
    0 1 
    0 1 2 
    0 1 2 3 
    
    for i in range(0,3,1):
        while i < 3:
            print(f"第{i}层循环",end=" ")
            i += 1
        print()
    
    第0层循环 第1层循环 第2层循环 
    第1层循环 第2层循环 
    第2层循环 
    

    案列展示:

            

    n = int(input("请输入你要打印的层数:"))
    for x in range(1,n+1,1):
        print("\t" * (n - x),end="")
        for i in range(0,x,1):
            print(f"{2 ** i}\t",end="")
        for j in range(x - 2, -1,-1):
            print(f"{2 ** j}\t", end="")
        print()

     

    num = int(input("请输入十进制数:"))
    list = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    list1 = []
    str = ''
    while True:
        if num < 16 :
            list1.append(list[num])
            break
        while True:
            if num >= 16:
                num1 = int(num % 16)
                num2 = int(num / 16)
                num = num2
                list1.append(list[num1])
                if num2 < 16:
                    list1.append(list[num2])
                    break
        break
    for i in range(len(list1), 0, -1):
        str += list1[i-1]
    print(str)
    #print(list1[::-1]

    # 计数查找
     
    ls = [1,5,4,7,8,3,4,5]       #设定一个列表
    ls1 = []                     #设立一空列表
    num = max(ls)-min(ls)+1      #统计列表的数字的范围
    # print(num)
    offset = min(ls)             #设定偏移量
    for i in range(0,num):       #循环列表统计ls列表的范围并赋值为0
        ls1.insert(i,0)
    # print(ls1)
    for i in range(len(ls)):     #对ls列表的元素计数并且赋值到ls1
        ls1[ls[i]-offset] += 1
    # print(ls1)
    for i in range(len(ls)):     #将列表ls排序后输出
        # print(i,end=" ")
        for j in range(0,ls1[i]):
            print(i+offset,end=" ")
    
    
    # #二分查找   求出列表的下标范围  并且赋值 利用代码算出中间值 并和要查找的数字比较大小 从而不断缩小范围
    
    n = int(input("请输入你要查找的数字"))
    ls = [1,4,6,7,8,9,10,11,14,16]
    left = 0
    right = len(ls)-1
    while left <= right:
        mind = (right + left) // 2       # 计算中间值的下标
        if n > ls[mind]:                 # 比较大小
            left = mind + 1
        if n < ls[mind]:
            right = mind - 1
        if n == ls[mind]:                #相等就输出并且退出循环
            print(f"你要查找的数字下标是:{mind}")
            break
    else:
        print("你所查找的数字不存在")

    物联沃分享整理
    物联沃-IOTWORD物联网 » 总结Python循环语句

    发表评论