1.3循环语句

while循环的基础语法

程序当中的while循环的基本格式:

while 条件:
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……

样例:(比如我们要输出10次hello world)

i=0
while i<10:
    print("hello world")
    i+=1

输出结果:
在这里插入图片描述
只截取部分,输出的是十次hello world。

但值得注意的是在Python当中,不存在着++i或者i++这种写法,切勿将其和其他的语言搞混。

其中值得注意的点:

  1. while的条件需要是布尔类型,不论是直接的布尔类型,还是说是比较运算符得到的布尔类型,当值为True的时候,就是运行该循环,当值为False的时候就是结束该循环。
  2. 需要设置循环终止条件,例如i+=1,和i<10,确保循环可以停止。(除非你真实的需要无限循环)
  3. 空格缩进和if一样都需要设置。

最后的样例大家分析一下,看看得能不能理解并自行写出下面的这个小代码块:

import random
num = random.randint(1,10)
sum=1
guess_number=int(input("请输入您猜测的数字:"))
while guess_number!=num :
    if guess_number<num :
        print(f"您第{sum}次猜测错误了!猜测的值小于真实的值")
    elif guess_number>num :
        print(f"您第{sum}次猜测错误了!猜测的值大于真实的值")
    sum+=1
    guess_number = int(input("请输入您猜测的数字:"))
print(f"恭喜你,你第{sum}次就猜对了,正确的值为{num}")

输出结果:
在这里插入图片描述

while循环的嵌套应用

程序当中的while嵌套循环的基本格式:

while 条件:
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……
while 条件:
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……

样例:(我们要连续3天,每天打印3次hello world)

day = 1
while day<=3 :
    num = 1
    while num<=3 :
        print(f"这是第{day}天的第{num}次hello world")
        num+=1
    day+=1

输出结果:
在这里插入图片描述
注意事项:

  1. 同判断语句一样,while的循环嵌套,要注意空格缩进。这是基于空格缩进来进行决定层次关系的。
  2. 注意条件的设置,避免出现无限循环(除非就是想出现无限循环)

关于一些杂项小知识

  1. 有时候我们并不希望print帮助我们换行,我们可以在print(字面值,end=" 尾部加的内容" ),来进行调控比如下面:
print("hello")
print("world")

print("hello",end=" ")
print("world")

运算结果:
在这里插入图片描述
2. 我们有时候在输出的时候希望对齐,可以使用\t,横向制表符。

样例:

print("hello world")
print("good job")

print("hello\tworld")
print("good\tjob")

输出结果:
在这里插入图片描述
如图在使用\t之前,结果是没有进行对齐的,但是\t可以帮助我们进行对齐操作。

最后便是写一个经典的9 9乘法表,这边给出笔者写的,有兴趣的读者也可以自己尝试一下:

i=1
while i<10 :
    j=1
    while j<=i :
        print(f"{i}*{j}={i*j}",end='\t')
        j+=1
    print("")
    i+=1

输出结果:
在这里插入图片描述

for循环的基础语法

对于while和for循环的差别分析:

  1. while的循环条件是自定义的,自行控制循环的条件。
  2. for循环则是采用一种穷举的方式,是对一批内容进行逐个处理。

基础语法

程序当中的for循环的基本格式:

for 临时变量 in 待处理的数据集(序列):
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……

样例:(比如我们要输出hello)

str="hello"
for i in str:
    print(i)

输出结果:
在这里插入图片描述
整个过程就比较像C++当中的范围for循环,有学过的可以相关一起理解一下。

可以看出for循环是将字符串内的内容依次取出,所以for循环又称作遍历循环。

注意事项:

  1. 与while不同for循环是没办法定义循环条件的,只能从被处理的数据集当中,以此取出数据进行操作。
  2. 所以理论来说for循环是无法构造无限循环的。
  3. 还是经典的空格缩进,也需要注意。

这里还是给一段代码,是统计一串字符串当中含有多少个a的,大家也可以写写,或者理解一下:

str="asdwaddsawdkajdawdawdadw"
sum=0
for i in str:
    if i=='a' :
        sum+=1
print(sum)

输出结果:
在这里插入图片描述

range语句

待处理的数据集实际上就是序列类型,序列类型实际上就是其内容可以一个一个取出来的类型。

序列类型包括:字符串,列表,元组等。

而这里采用一个range语句,来构建一个序列。

range的用法大概有三种:

第一种:

range(整型数字)

实际上是获取一个从0开始到整型数字结束的数字序列,不包括整型数字本身,比如range(5),实际上就是[0,1,2,3,4]这五个数据的序列。

第二种:

range(number1,number2)

实际上是获取一个从number1开始到number2结束的数字序列,不包括number2本身,比如range(5,10),实际上就是[5,6,7,8,9]这五个数据的序列。

第三种:

range(number1,number2,step)

实际上是获取一个从number1开始到number2结束的步长为step数字序列(默认step为1),得到的数字不包括number2本身,比如range(5,10,2),实际上就是[5,7,9]这五个数据的序列。

给个例子:(打印3次hello world)

for x in  range(3) :
    print("hello world")

输出结果:
在这里插入图片描述

变量作用域

for循环中的临时变量,其作用域限定在for循环内部。

但这种限定是变成规范的限定,并不是强制限定。但不建议在外部使用,如果想要使用,在外部声明这个变量就可以了。

for循环的嵌套应用

程序当中的for循环的基本格式:

for 临时变量 in 待处理的数据集(序列):
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……
for 临时变量 in 待处理的数据集(序列):
条件成立时要做的事情1。
条件成立时要做的事情2。
条件成立时要做的事情3。
……

样例:(我们要连续3天,每天打印3次hello world)

for i in range(1,4) :
    for j in range(1,4) :
        print(f"这是第{i}天的第{j}次hello world")

输出结果:
在这里插入图片描述
相同的while和for循环也可以相互嵌套,这里就布不举例子了。
这里也给出for循环的9 9乘法表:

for i in range(1,10) :
    for j in range(1,i+1) :
        print(f"{i}*{j}={i*j}",end="\t")
    print()

循环中断break和continue

continue:中断本次循环,进入下一次循环。可以加在循环的任意一个地方。
样例展示:

for i in range(1,4) :
    print("语句1")
    continue
    print("语句2")

输出结果:
在这里插入图片描述
可以看出语句二直接被跳出了,根本不执行了,但是还是会进入下一个循环。而对于嵌套循环的话,continue只能影响属于自己的当层循环。

break:直接结束循环。可以加在循环的任意一个地方。

例如:

for i in range(1,4) :
    print("语句1")
    break
    print("语句2")

输出结果:
在这里插入图片描述
可以看出语句二直接被停止循环了,而对于嵌套循环的话,break也只能影响属于自己的当层循环。

结语

最后写一段代码,大家也可以综合的了解一下。
一共5个苹果,10个小朋友,每人可以拿1个苹果。不过会进行抽奖机制,如果这个人抽号抽到了1代表这个小朋友可以拿苹果,但是抽到了2就不能,如果苹果没了,就直接结束,问最后剩下多少个苹果,多少个人没进行抽奖。

import random
sum=5
num=1
for num in range(1,11) :
    index=random.randint(1,2)
    if index==2 :
        sum-=1
        print(f"第{num}个小朋友抽到了苹果")
    if sum==0 :
        break;
print(f"还剩下{sum}个苹果,{10-num}个人没有进行抽奖")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值