根据输入的条件,判断下面的代码需不需要反复执行,这一过程称为循环。

示例:

计算1+2+3+4+5+……+1000

这一过程如果全手写,那会非常的痛苦,这时就需要引用到循环。

1、While循环

语法:

while 循环条件:
    循环执行动作

执行逻辑:while的循环条件为真时,会执行循环执行动作,直到循环条件为假,才会跳出循环执行动作。

示例:

int_value = 5
while int_value > 0:
    print(int_value)
    int_value -= 1
print("我跳出while循环了")

根据示例,while有个非常重要的条件。循环执行动作的内容一定跟循环条件相关,至少某一行代码是跟其有联系的,确保while循环的条件执行到某一步为假。若没有任何代码与循环条件有联系,则会出现:死循环

示例:

此示例看看即可,不要运行,伤害电脑。

int_value = 5
count1 = 1
while int_value > 0:
    print(int_value)
    print(f"我执行了{count1}次")
    count1 += 1
print("我跳出while循环了")

从示例中可见,瞬间的时间代码被执行了几十万次,并且没有跳出while循环。

切记:写循环时千万关注代码执行体内的逻辑有没有与循环条件建立联系,若没有,千万不要运行,否则很有可能对电脑造成破坏。

几个例子:

1、计算1-1000的和。

2、输出1-1000内的偶数。

示例1:

count1 = 0
index = 1
while index <= 1000:
    count1 += index
    index += 1
print(f"1-1000的和为:{count1}")

示例2:

count1 = 1
while count1 <= 1000:
    if count1 % 2 == 0:
        print(f"偶数为:{count1}\n")
    count1 += 1

2、for循环

语法:

for 变量 in 序列:
    循环执行动作

for循环的变量大多为临时变量,只在for循环内使用。列表、字符串、元组等都可以是序列。

执行逻辑:先从序列中取出一个值放到变量中,然后执行循环执行动作,里面的循环执行动作逻辑大多跟变量有关。执行结束后,再从序列中取值,再次执行循环执行动作。直到序列的值取完,for循环也就结束了。

示例:

for str1 in "abcdefg":
    print(str1)
print("for循环执行完毕")
for list1 in [1,2,3,4,5]:
    print(list1)
print("for循环执行完毕")
for tuple1 in (1,2,3,4):
    print(tuple1)
print("for循环执行完毕")

2.1、range

range:[start,end,step)

解释:range函数是一个前闭后开的数字区间。其功能跟while循环类似,是从start开始到end-1结束。

示例:

for i in range(1,5):
    print(i)
print("for循环执行完毕")

其可以设定步长,按照步长(可选)的方式遍历值。

示例:

for i in range(1,10,2):
    print(i)
print("for循环执行完毕")

2.2、in的用法

in也可以用来判断字符串、列表、元组、集合、字典等元素是否在其内部。

示例:

str1 = "abcd"
print('abcd' in str1)
list1 = [1,2,3,4]
print(1 in list1)
tuple1 = (1,2,3)
print(1 in tuple1)
set1 = {1,2,3}
print(1 in set1)
dict1 = {0:1,1:2}
print(0 in dict1.keys())
print(2 in dict1.values())
print((0,1) in dict1.items())

3、循环跳出

无论是for循环还是while循环都可以提前跳出循环,并不是非要根据条件或取值。

3.1、break

break只能作用于循环中,其作用是直接打破本层的循环条件和取值条件,从而退出本层循环。

示例:

for i in range(1,10):
    if i == 5:
        break
    print(i)
print("for循环执行完毕")
count1 = 10
while count1 > 0:
    if count1 == 5:
        break
    print(count1)
    count1 -= 1
print("while循环执行完毕")

3.2、continue

continue与break类似但不完全相同,continue的作用是跳过某次循环执行动作,开始下一次新的循环。

示例:

for i in range(1,3):
    if i == 5:
        continue
    print(i)
print("for循环执行完毕")
count1 = 3
while count1 > 0:
    if count1 == 2:
        count1 -= 1
        continue
    print(count1)
    count1 -= 1
print("while循环执行完毕")

break用于当循环满足某个条件直接退出本层循环,而continue是循环满足某个条件直接开启下一次新的循环。

4、循环嵌套

循环和if判断一样,同样可以嵌套。

示例:

for i in range(2):
    for j in range(2):
        print(f"i的值为{i},j的值为{j}")
print("for循环执行完毕")
i = 2
while i >= 0:
    for j in range(2):
        print(f"i的值为{i},j的值为{j}")
    i -= 1
print("while循环执行完毕")

while循环和for循环也可嵌套循环。

所以,上述break和continue结束的是本层循环,多层循环可能需要多个break和continue。

示例:

for i in range(2):
    for j in range(2):
        if j == 1:
            break
        print(f"i的值为{i},j的值为{j}")
print("for循环执行完毕")
i = 2
while i >= 0:
    for j in range(2):
        print(f"i的值为{i},j的值为{j}")
    if i == 1:
        break
    i -= 1
print("while循环执行完毕")

5、else

else除了用于if判断,也可用于循环结束后。

语法:

for 变量 in 序列:
    执行
else:
    循环结束执行
    
while 条件真:
    执行
else:
    循环结束执行

示例:

for i in range(3):
    print(i)
else:
    print("for循环执行完毕")
    print(i+1)
i = 3
while i > 0:
    print(i)
    i -= 1
else:
    print("while循环执行完毕")
    print(i)

这个用到的地方较少,正常情况不需要写else,直接写逻辑即可。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐