3分钟带你了解python中分支与循环2
上一篇文章《3分钟带你了解分支与循环1》了解了分支结构,现在,我们再来看看循环结构。
循环结构
当你想执行一段代码很多次,当然,当数量很少时,我们用Ctrl + C、Ctrl + V就可以搞定了。但是现实总是,在一个程序里面某一段代码可能动不动就需要执行几十次、几百次、甚至几千几万…次,这个时候,如果再用Ctrl + C、Ctrl + V可能手都要断掉了吧。于是,它来了,循环就是解决这个问题的,在python中有两种循环,分别是for循环和while循环
for 循环
- 基本语法:
for 变量 in 循环范围:
pass # pass表示要执行的代码块
for、in 为固定语法,i 表示每次在循环范围里取出的值,这个变量不需要定义也初始化,只要遵循命名规则即可,不了解命名规则的小白请看我之前的文章《Python中的变量》,而循环范围用得最多的是range函数,看这儿,下面看看for循环使用的几种常用情况,例如
for i in range(10)
pass
# 里面的 i 每次循环分别对应的值是0,1,2,3,4,5,6,7,8,9(程序员数数从0开始,哈哈),也就是说这个循环可以执行十次,
# 而且,i在记录循环次数时不需要像C语言那样写上 i += 1,python中的for循环里面 i 是可以自己再执行后加1的
那么,肯定有人问了,当我想要“ i += 2”时又该怎样做呢?上代码
for i in range(1,10,2):
pass
(1,10,2)中的2叫做步长,这里,它表示从1开始到9(10不能被取到,不知道的看上面链接),i 可以为1,3,5,7,9,那么在这里面,是不是此循环就只会执行5次了,实现了“i + = 2”,那么如果是
“ i -= -1“呢?这时候就是
for i in range(10,1,-1):
pass
# 相信这就不用我再赘述了吧,自己结合上面思考一下,或执行一下代码
- 下面来看看实例:
1.用for循环输出10个”Hello,World!“
for i in range(10):
print("hello, world!")
2.用for循环对1–100之间的数求和
total = 0
for i in range(1,101):
total += i
print(total)
3.用for循环实现输入一个数n,求n的阶层(n! = n * (n - 1 ) * (n - 2) * ··· * 2 * 1 )
total = 0
for i in range(2,n + 1): # 这里直接从2开始是因为任何数乘以1等于任何数
total *= i
print(total)
那么,用for循环时,我们都是已经知道代码的循环执行范围了,那么,如果需要运行一段代码时,它的循环次数我们不知道呢,这时候又该怎么办呢?这时候,就要用到了第二种循环——while循环
while循环
for循环的有点在于,在处理一个一直执行次数的循环问题的时候用它很方便,因为它的结构简单,不需要用“i += 1 ”这样的语句去控制循环的执行,但是,比如在控制用户登陆时,要想让用户在没有限制的情况下去输入用户名和密码,直到输入的用户名和密码都正确,才进入系统,否则,显示密码或者用户名错误,返回到登陆界面继续输入。于是,这个时候for循环就有心而无力了,因为我们并不知道用户会输错多少次。而对于while循环
来讲,for循环能做的事它能做,for循环不能做的事他来做。但是它需要像C语言那样用“i += 1 ”那样的语句去协助控制循环。
- while的基本语法
while 条件表达式:
pass
条件表达式
的结果是布尔值
(True或False),只有在条件表达式的结果为True时(变量之间满足条件表达式的要求)才执行循环,否则不循环。
- 实例
1.用while循环实现输出10次“Hello,world!”
i = 0
while i < 10:
print("Hello,world!")
n += 1
在不知道需要执行多少次循环时,可以直接将条件表达式写成True,这样就得到了一个死循环,可以在循环中当设置条件,当满足条件时使用break终止循环
实例2.猜随机数游戏
机器产生一个随机数(假设在1,100之间),用户每次输入一个数字,当猜对后结束,否则一直循环
# 产生随机数
import random
ran1 = random.randrange(1,101)
#用户输入数字,进行判断
n = 0
while True:
guess = int(input("请输入你猜测的数:")) #接受用户输入的数字
if guess == ran1: #判断guess是否等于随机数ran1
if n == 1:
print("天才,猜对了")
else:
n += 1 # 计数器(记录输入的次数)
print(f"恭喜你,猜对了,猜了{n}次")
break # 当guess = ran1跳出while True这个循环
elif guess > ran1:
print("猜错了,小一点,请重新输入")
n += 1
else:
print("猜错了,大一点,请重新输入")
n += 1
使用while True时一定要用break配合使用(当然,特意使用死循环除外),不然会“根本停不下来”哦
纸上得来终觉浅,绝知此事要躬行
学编程一定要都一分看,七分练,赶紧打开电脑练习吧