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

条件表达式的结果是布尔值(TrueFalse),只有在条件表达式的结果为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配合使用(当然,特意使用死循环除外),不然会“根本停不下来”哦

纸上得来终觉浅,绝知此事要躬行
学编程一定要都一分看,七分练,赶紧打开电脑练习吧