python 循环总结

简介:

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

        在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层循环 

案列展示:

        python 循环总结_第1张图片

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("你所查找的数字不存在")

你可能感兴趣的:(python,开发语言)