Python基础学习笔记梳理三:循环结构

循环是程序中解决重复性工作必不可少的一部分,即可以用来处理多次重复执行的情况。

Created with Raphaël 2.2.0 循环开始 判断 执行语句体 判断条件改变 代码结束 yes no

在Python基础学习中,实现循环的方式有两种:for语句,while语句。
一、语法:
1、for语句:
for语句有三个要素,基本格式为:

for ① in ②:
    ③

①为变量名:即循环进行判断的变量。可以理解为一个小盒子,里面装着一个数据准备和②中的内容进行比较;
②为判断范围:即与变量进行比较的上下限。可以理解为一个大盒子,里面装着对小盒子里内容的约束;
③为执行部分:即当①中的内容满足②中的约束条件时执行的代码,也可以理解为需要重复执行的内容。
说明:
1、变量名无需提前声明,可直接使用;
2、判断范围可以是列表、字典。当②为字典时,①所提取出的内容是键而非值;
3、②后的冒号一定是英文状态,不可丢失;
4、执行部分与上一行的for相比,必须缩进4个英文状态的空格,此处缩进不可忽视;
5、for语句常用来执行有限次的循环,如遍历列表或字典。

例:打印中每一个元素的数据类型:
代码如下:

list=[1,'A','23',5.6]
for i in range(4):
    print('{}的数据类型是{}'.format(list[i],type(list[i])))

代码运行结果图如下:
运行结果
2、while语句:
while语句有两个要素,格式如下:

while ①:
    ②

①为判断条件:可以理解为进入循环的门禁,当条件为真或成立时,进入循环;
②为执行语句:可以理解为一个容器,里面存放着需要重复执行的代码。
说明:
1、①可以是数学运算条件,也可以是逻辑运算条件,也可以是多个条件的逻辑运算组合;
2、①后的冒号一定是英文状态,不可丢失;
3、执行语句与上一行的while相比,必须缩进4个英文状态的空格,此处缩进不可忽视;
4、while循环用于循环次数未知,且结束循环需要另行考虑条件的情况。通常可以与break语句搭配使用。

例:不限次数猜大小游戏:
代码如下:

import random
a=random.randint(0,100)
num=int(input('请输入0到100间的整数:'))
while a and num:
    if a>num:
        print('猜小了哟~再来一次~')
        num=int(input())
    elif a

代码运行结果图如下:
Python基础学习笔记梳理三:循环结构_第1张图片

循环结构同样可以进行嵌套,在选择结构中讲解了与选择结构的嵌套,则下例主要讲解循环与循环的嵌套。
例题:打印阶梯状的九九乘法表。格式如图:
Python基础学习笔记梳理三:循环结构_第2张图片
思路:
1、按照电子表格的方式来看九九乘法表,整个表分为九行九列:
Python基础学习笔记梳理三:循环结构_第3张图片
通过观察发现,每一行的第一个数字相同,每一列的第二个数字相同,第N行第N列为当前行的最后一个内容。我们考虑使用两个变量,假定一个为行序号i,一个为列号j,那么假设按行来进行打印,就意味着在列序号的增加结束后,行序号才发生改变。由此考虑,应当是两个循环进行嵌套的结构,外层为行序号增加形成的循环,内层为列序号增加形成的循环。嵌套结构示意为:

for i in range(1,10):                   #实现行序号改变
    for j in range(1,10):               #实现列序号改变
        print()                         #打印功能部分


2、分析每一行的打印内容,我们发现规律为,行序号大于等于列序号,则得到打印的判断条件,即

if i>=j:
    print('%d×%d=%d' %(i,j,i*j))#此处亦可写为print('{}×{}={}'.format(i,j,i*j))

但运行后发现并不能按行号形成同行,需要通过修改打印函数的结尾默认值为end=’ ',使得每一行为相同行序号的内容,故最终代码为:

if i>=j:
    print('%d×%d=%d' %(i,j,i*j),end='  ')
    #此处亦可写为print('{}×{}={}'.format(i,j,i*j),end='  ')

3、当列序号大于行序号时,内层循环结束,行序号增加开始新一轮循环,此时要使打印进入下一行,则需要在每一行打印结束后,打印换行。换行发生在行序号增加之前,但是在列序号增加结束之后,因此换行与内层循环属于同层级,代码缩进应和内层循环入口的缩进相同。则整体结构为:

for i in range(1,10):                   #实现行序号改变
    for j in range(1,10):               #实现列序号改变
        (语句体)                       #打印乘法表内容部分
    print('\n')                         #打印换行

在编译环境中写出代码如图:
Python基础学习笔记梳理三:循环结构_第4张图片
运行结果图:
Python基础学习笔记梳理三:循环结构_第5张图片

Ps:依旧是九九乘法表,可以思考做成如下图形式的代码。
锻炼下对嵌套层次的思考吧~(๑•ᴗ•๑)
Python基础学习笔记梳理三:循环结构_第6张图片

你可能感兴趣的:(Python自学笔记)