Python循环语句
接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次。
Python提供了for循环和while循环(在Python中没有do...while循环):
for循环
要计算1+2+3,我们可以直接写表达式:
>>>1 + 2 + 3 6
要计算1+2+3+...+10,勉强也能这样写出来,但是,如果要计算1+2+3+...+1000,直接写表达式就不可能了。
为了然计算机能成千上万次的重复运算,我们就需要循环语句。
例1、我们先来看一个最简单的循环:
for i in range(10): print("loop:",i) # 输出: loop: 0 loop: 1 loop: 2 loop: 3 loop: 4 loop: 5 loop: 6 loop: 7 loop: 8 loop: 9
例2、还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环:
for i in range (10): if i < 5: continue print("loop:",i) # 输出 loop: 5 loop: 6 loop: 7 loop: 8 loop: 9
Python continue语句跳出本次循环
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
例3、还是上面的程序,但遇到大于5的循环次数就不走了,直接退出:
for i in range (10): if i > 5: break print("loop:",i) # 输出 loop: 0 loop: 1 loop: 2 loop: 3 loop: 4 loop: 5
break语句用来终止循环语句,即循环条件没有False条件或者序列还没有被完全地硅烷,也会停止执行循环语句。
例4、还是上面的程序,但遇到等于5的循环次数,我想让它打个盹再继续执行下面的循环:
for i in range(10): if i == 5: pass print("让我打个盹") print("loop:",i) # 输出 loop: 0 loop: 1 loop: 2 loop: 3 loop: 4 让我打个盹 loop: 5 loop: 6 loop: 7 loop: 8 loop: 9
pass是空语句,是为了保持程序结构的完整性。
pass不做任何事情,一般用做占位语句
例5、回到最初的问题,让我们看看通过for循环如何实现1一直加到1000:
#!/usr/bin/env python sum = 0 for x in range (1001): sum = sum + x print(sum)
Python提供的 range()函数,可以生成一个整数序列,range(1001)就可以生成0-1000的整数序列。
while循环
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。
这里我想讲一下,有一种循环叫死循环,一经触发,就运行到天荒地老,海枯石烂。
例1、海枯石烂的代码:
count = 0 while True: print("海枯石烂的死循环。。。",count) count +=1 # 输出 海枯石烂的死循环。。。1 海枯石烂的死循环。。。2 海枯石烂的死循环。。。3 海枯石烂的死循环。。。4 海枯石烂的死循环。。。5 ......
其实除了时间,没有什么是永恒的,死loop还是少写为好
例2、上面的代码循环5次就退出吧
count = 0 while True: count += 1 print("海枯石烂的死循环。。。",count) if count == 5: print("滚") break # 输出 海枯石烂的死循环。。。 1 海枯石烂的死循环。。。 2 海枯石烂的死循环。。。 3 海枯石烂的死循环。。。 4 海枯石烂的死循环。。。 5 滚
练习题
还记得上一篇文章中遗留下来的问题吗?猜年龄的游戏,我们希望用户在输错年龄后还能继续猜,而不是退出这个程序所以我们需要用到循环:
my_age = 23 count = 10 for i in range (10): count = count - 1 user_input = int(input("input your guess num:")) #这里int函数,定义输入的是整数 if user_input == my_age: print("恭喜你,答对了!") break elif user_input > my_age: print("你猜大了!你还有",count,"次机会") else: print("你猜小了!你还有",count,"次机会")
这样一来,我们的用户就获得了10次机会,但是我们还不满意,用户希望猜3次之后有个是否要继续的交互,所以我们需要升级我们的代码:
my_age = 23 count = 10 num = 0 for i in range (10): count = count - 1 if num < 3: user_input = int(input("input your guess num:")) #这里int函数,定义输入的是整数 if user_input == my_age: print("恭喜你,答对了!") break elif user_input > my_age: print("你猜大了!你还有",count,"次机会") else: print("你猜小了!你还有",count,"次机会") else: continue_confrim = input("你已经尝试3次了,还猜不对实在是太笨了!你还有想继续吗?y:继续 n:退出:") if continue_confrim == 'y': num = 0 continue else: print("再见笨猪!") break num = num + 1
那循环就到这里结束啦!