Python零基础入门(七)

七、循环结构语句

7.1 for循环

for循环是一个计次循环,通常适用于枚举或遍历序列,以及迭代对象中的元素。一般应用在循环次数已知的情况下。

语法如下:
for 迭代变量 in 对象:
循环体
其中,迭代变量用于保存读取的值;对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。

for循环语句的执行流程如下图所示:

在这里插入图片描述

7.1.1 进行数值循环

在使用for循环时,最基本的应用就是进行数值循环。循环可以帮助我们解决很多重复的输入或计算问题。可以利用数值循环输出6遍“UESTC”,代码如下:

for i in [1, 2, 3, 4, 5, 6]:
    print("UESTC")
UESTC
UESTC
UESTC
UESTC
UESTC
UESTC

利用数值循环输出列表的值,代码如下:

for i in [2, 3, 5, 9, 4]:
    print(i)
for i in ["U", "E", "S", "T", "C"]:
    print(i)
2
3
5
9
4
U
E
S
T
C

利用列表可以输出一些简单重复的内容,但如果循环次数过多,如要实现从1到100的累加该如何实现呢?这就需要用到range()函数,下面看看代码示例:

print("1+2+3+4+5+....+100= ")
result = 0
for i in range(101):
    result += i
print(result)
1+2+3+4+5+....+100= 
5050

在上面的代码中,使用了range()函数,该函数是Python内置的函数,用于生成一系列连续的整数。多用于for循环语句。语法格式如下:
range(start, end, step)
参数说明:
start: 用于指定计数的起始值,可以省略,如果省略则从0开始。
end: 用于指定计数的结束值(但不包括该值,如range(7)得到的值为0-6,不包括7),不能省略。当range()函数中只有一个参数时,即表示指定计数的结束值。
step: 用于指定步长,即两个数之间的间隔可以省略,如果省略则表示步长为1。如range(1, 7)将得到1、2、3、4、5、6.注意:在使用range()函数时,如果只有一个参数,那么表示指定的是end;如果是两个参数,则表示指定的是start和end;只有三个参数都存在时,最后一个才表示步长。如下代码:

for i in range(1, 10, 2):
    print(i, end = ' ')
1 3 5 7 9 

说明:
在Python 2.x中,如果想让print语句输出的内容在一行上显示,可以在后面加上逗号(例如,print i,),
但是在Python 3.x中,使用print()函数时,不能直接加逗号,需要加上“,end=”分隔符,在上面的代码中使用的分隔符为一个空格。
在Python 2.x中,除提供range()函数外,还提供了一个xrange()函数,用于解决range()函数会不经意间耗掉所有可用内存的问题,而在Python 3.x中已经更名为range()函数,并且删除了老式的xrange()函数。

7.1.2 遍历字符串

使用for循环语句除了可以循环数值,还可以逐个遍历字符串。代码如下:

string = '不要说我学废了'
print(string)
for ch in string:
    print(ch)
不要说我学废了
不
要
说
我
学
废
了

7.2 while循环

while循环是通过一个条件来控制是否要继续反复执行循环体中的语句。
语法格式如下:
while 条件表达式:
循环体

备注:循环体是指一组被重复执行的语句。
当条件表达式的返回值为True时,则执行循环体中的语句;执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为False时,退出循环。while循环语句的执行流程如下图:

在这里插入图片描述

下面看看示例代码:

i = 1
while i <= 6:
    print("UESTC")
    i = i+1
UESTC
UESTC
UESTC
UESTC
UESTC
UESTC

下面再看看一个模拟简单的取款机的逻辑实例:

password = 1
i = 1
while(i < 7):
    num = input("请输入一位数字密码!")
    num = int(num)
    if num == password:
        print("Right, Enter System")
        i = 7
    else:
        print("False, 已经输错", i, "次")
    i += 1
if i == 7:
    print("密码错误6次,请与银行联系!")
请输入一位数字密码!1
Right, Enter System

上面代码用了int内置函数,目的是让输入的数字或进制数转化为整型,如:
int(3.6) = 3
int(3) = 3
再看一个实例代码:用while循环求除以三余二、除以五余三、除以七剩二的数

none = True
number = 0
while none:
    number += 1
    if number%3 == 2 and number%5 == 3 and number%7 == 2:
        print("满足题意的数是:", number)
        none = False
满足题意的数是: 23

注意:使用while循环语句时,一定不要忘记添加将循环条件变为False的代码,否则将产生死循环。

7.3 嵌套循环

在Python中,允许在一个循环体中嵌入另一个循环,这称为嵌套循环。for循环和while循环都可以进行嵌套循环。
如在while循环中套用while循环的格式如下:
while 条件表达式1:
while 条件表达式2:
循环体2
循环体1
for循环中套用for循环的格式如下:
for 迭代变量1 in 对象1:
for 迭代对象2 in 对象2:
循环体2
循环体1
在while循环中套用for循环格式如下:
while 条件表达式:
for 迭代变量 in 对象:
循环体2
循环体
在for循环中套用while循环的格式如下:
for 迭代变量 in 对象:
while 条件表达式:
循环体2
循环体1
除了上面提到的4中嵌套格式外,还可以实现更多层的嵌套,方法和上面类似。

7.4 跳转语句

当循环条件一直满足时,程序将会一直执行下去,就像一辆迷路的车,在某个地方不停的转圈。如果希望在中间离开循环,也就是for循环结束计数前,或者while循环找到约束条件之前。有两种方法来做到。
使用break语句完全中止循环。
使用continue语句直接跳到下一次循环。

7.4.1 break语句

break语句可以终止当前的循环,包括while和for在内的所有控制语句。break语句的语法比较简单,只需要在相应的while或for语句中加入即可。
说明:break语句一般会结合if语句进行搭配使用,表示在某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层的循环。
在while语句中使用break语句的形式如下:
while 条件表达式1:
执行代码
if 条件表达式2:
break
其中,条件表达式2用于判断何时调用break语句跳出循环。在while语句中使用break语句的流程图如下所示:

在这里插入图片描述

在for语句中使用break语句的形式如下:
for 迭代变量 in 对象:
if 条件表达式:
break
其中,条件表达式用于判断何时调用break语句跳出循环。在for语句中使用break语句的流程图如下:

在这里插入图片描述

7.4.2 continue语句

continue语句的作用没有break语句强大,它只能终止本次循环而提前进入到下一次循环中。continue语句的语法比较简单,只需要在相应的while或for语句中加入即可。

说明:continue语句一般会结合if语句进行搭配使用,表示在某种条件下,跳过当前循环的剩余语句,然后继续进行下一轮循环。如果使用嵌套循环,continue语句将只能跳过最内层循环中的剩余语句。

在while语句中使用continue语句的形式如下:
while 条件表达式1:
执行代码
if 条件表达式2:
continue
其中,条件表达式2用于判断何时调用continue语句跳出循环。在while语句中使用continue语句的流程图如下:

在这里插入图片描述

for 迭代变量 in 对象:
if 条件表达式:
continue
其中,条件表达式用于判断何时调用continue语句跳出循环。在for语句中使用continue语句的流程图如下:

在这里插入图片描述

下面看一个实例代码,逢七拍腿游戏。即从1开始依次数数,当数到7时(包括尾数为7的数)或者7的倍数时,则不说该数,而是拍一下腿。计算从1到99要拍多少下腿(假设没人出错)。

total = 99
for number in range(1, 100):
    if number % 7 == 0:
        continue
    else:
        string = str(number)
        if string.endswith('7'):
            continue
    total -= 1
print("从1数到99共拍腿", total, "次。")
从1数到99共拍腿 22 次。

结语

继续更新前面的python基础知识学习,今天讲的是循环结构,比较简单,下面会介绍python字典之类的知识了。大家继续加油学习呀!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值