python入门(一)------判断语句与循环控制

一、流程控制

流程,即计算机执行代码的顺序。简单地说,流程控制就是对计算机代码执行的顺序进行有效的管理,以便实现开发当中的各种业务逻辑。一般来说,对流程的控制可分为如下三类:

1、顺序流程

该流程是一种代码自上而下的执行结构,也是python默认的一种流程顺序。

2、选择/分支流程

程序执行时先依据相对应的条件表达式进行一次判断(条件表达式可以是比较运算符、逻辑运算符、复合运算符),根据判断的结果有选择的去执行相应的逻辑。一般有如下几类:

2.1单分支

if	条件表达式:
	python代码
	......
	

2.2双分支

if	条件表达式:
	python代码
	......
else:
	python代码
	......

2.3多分支

if	条件表达式:
	python代码
	......
elif 条件表达式:
	python代码
elif 条件表达式:
	python代码
......
else:
	python代码
	.....

3、循环流程

满足一定的条件时,一直重复的去执行某段代码对应的逻辑。一般有如下两种结构:

while	条件表达式:
		python代码
		......
for ... in 可迭代集合对象:
		python代码
		......

二、循环控制

1、if-else语句

python条件语句通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
该语句的执行流程图如下:
if-else条件判断

1.1单分支结构

满足if后的条件表达式便执行对应的代码块,否则便不执行。例如:

 score=70
 if score<=60: #满足条件就会输出打印的提示
     print("成绩不是太理想,要继续加油哦")
     pass #空语句
 print("语句运行结束")

执行上述代码,显然会得到如下结果:
在这里插入图片描述

1.2双分支结构

与单分支结构不同,双分支结构必定会执行其中一个分支(if对应的分支或else对应的分支)。例如:

score=70
if score>60: #True
    print("你的成绩及格了...")
    pass
else: #false时候才会执行
    print('成绩不合格,请继续努力')
    pass

执行上述代码,显然会得到如下结果:
在这里插入图片描述

1.3多分支结构

多分支结构的一般形式前面已经说过,这里不再赘述。总的来说,多分支结构有如下特征:

1.只要满足其中一个分支,就会退出本层if语句结构(必定会执行其中一个分支)
2.至少有2种情况可以选择
3.elif 后面必须写上条件和语句
4.else 是选配,根据实际的情况来填写,并不一定需要

例如:

score=int(input('请输入你的成绩...'))
print(type(score))
if score>90:
    print('您的成绩是A等级')
    pass
elif score>=80:
    print('您的成绩是B等级')
    pass
elif score>=70:
    print('您的成绩是C等级')
    pass
elif score>=60:
    print('您的成绩是D等级')
    pass
else:#选配
    print('可以回家修理地球了....')

print('程序运行结束了.....')

执行上述代码,显然会得到如下结果:
在这里插入图片描述

1.4 if-else的嵌套使用

实际应用时,一个具体的应用场景往往需要分阶段或者层次,做出不同的处理,此时可以通过对if-else的嵌套使用来解决问题,需要注意:
想要执行内部的 if 语句 一定要外部的 if语句满足条件才可以,例如:

xuefen=int(input("请输入你的学分"))
if xuefen>10:
    grade = int(input("请输入你的成绩"))
    if grade>=80:
        print('你可以升班了..恭喜您')
        pass
    else:
        print('很遗憾,您的成绩不达标...')
        pass
    pass
else:
    print("您的表现也太差了吧...")

执行上述代码,显然会得到如下结果:
在这里插入图片描述

2、while循环

2.1 语法特点

1、循环体内计数变量有初始值
2、while后面有条件表达式
3、循环体内计数变量需要有自增自减操作,否则会造成死循环

目的: 为了将相似或者相同的代码操作变得更加简洁,使得代码可以重复利用

2.2 while的使用

2.2.1 简单while的使用

假设现在需要打印输出1-100之间的数据,如果单纯的只使用print函数打印输出的话,会使得代码显得冗余,此时可以采用while循环以如下方式实现:

index=1 #定义一个变量
while index<=100:
    print(index)
    index+=1
    pass
2.2.2 while的嵌套使用

假设现在需要打印输出打印九九乘法表,由于一共有9行9列,显然只使用一个while循环很难达到目的,此时我们可以在一个while循环里面再使用一个while循环,即while循环的嵌套来实现,具体代码如下:

row=9
while row>=1:
    col=1
    while col<=row:
        print("%d*%d=%d"%(row,col,row*col),end=" ")
        col+=1
        pass
    print()
    # row+=1
    row -= 1
    pass

执行效果如下:
在这里插入图片描述
可以看到,和预期的九九乘法表是一致的

3、for循环

3.1 语法特点

遍历操作,依次取集合容器中的每个值

3.2 for的使用

3.2.1 for的简单使用

假设现在需要打印输出1-100之间的所有数据相加的数据和。此过程中需要使用到range()函数(此函数可以生成一个数据集合列表),其基本格式如下:

range(起始,结束,步长) #左边包含右边不包含
注意:步长不能为0

故可以采用如下代码实现:

sum=0
for data in range(1,101): #左边包含右边不包含
    sum+=data #求累加和
    # print(data,end=' ')
    pass

print("sum=%d"%sum)

其运行效果如下:
在这里插入图片描述
可以看出,显然结果是正确的

3.2.2 for的嵌套使用

假设现在需要打印输出打印九九乘法表,由于一共有9行9列,显然只使用一个for循环很难达到目的,此时我们可以在一个for循环里面再使用一个for循环,即for循环的嵌套来实现,具体代码如下:

for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%d"%(i,j,i*j),end=' ')
        pass
    print() #控制换行
    pass

执行效果如下:
在这里插入图片描述可以看到,和预期的九九乘法表是一致的

4、break、continue语句

4.1 基本特点与作用

break: 代表中断结束,满足条件时直接结束本层循环
continue:表示结束本次循环,继续的进行下次循环(当continue的条件满足的时候,本次循环剩下的语句将不在执行
后面的循环语句继续执行)
说明:这两个关键字只能用在循环中

4.2 break语句的使用

假设现在只需要将1-20之间的数据依次打印输出,为说明break语句的功能,我们可以采用如下代码实现:

index=1
while index<=100:
    if index>20:
        break
        pass
    print(index)
    index+=1

可得到如下的运行效果:
在这里插入图片描述
分析:由于break语句会跳出本层循环,故该循环会在执行到20之后终止。

4.3 continue语句的使用

假设现在需要将1-100之间的奇数依次打印输出,为说明continue语句的功能,我们可以采用如下代码实现:

print('continue的使用')
for item in range(1,100): #求出来奇数
    if item%2==0:
        continue
        print('在continue的额后面会不会执行呢')
        pass
    print(item)
    pass

可得到如下的运行效果:
在这里插入图片描述
分析:由于continue语句会结束本次循环,故该循环会在每次数据为偶数时终止本次循环(本题中即为每次遇到偶数时皆不执行后面的打印输出)

5、for----else和while----else

5.1 for----else

假设现在需要设计一个简易的系统账号登录提示程序,要求如下:
1、系统已经存储有账号信息:
账号:gzp
密码:789
2、一共有3次登录机会,3次机会内账号密码正确便提示登录成功,否则便提示账号已被锁定。

为简化代码量,可采用for----else结构设计如下程序:

account='gzp'
password='789'
for i in range(3):
    zh=input('请输入账号:')
    pd=input('请输入密码:')
    if account==zh and pwd==pd:
        print('恭喜您登录成功...')
        break #退出本层循环了
        pass

    pass
else:
    print('您的账号已经被系统锁定...')

经过验证,该程序可以很好的实现所要求的功能

5.2 while----else

while----else和for----else的使用方法基本一致,这里不再赘述

5.3 分析(两种结构极为相似,这里以while----else为例)

1、while循环部分没有break终止语句时,以如下代码为例:

index=1
while index<=10:
    print(index)
    index+=1
    pass
else:
    print('else执行了吗.....')

显然,该程序运行时会在将所需数值打印输出后,继续执行else部分语句,即:
在这里插入图片描述
2、while循环部分有break终止语句时,以如下代码为例:

index=1
while index<=10:
    print(index)
    if index==6:
        break
    index+=1
    pass
else:
    print('else执行了吗.....')

显然,该程序运行时在将所需数值打印输出后,由于break语句的存在,不会执行else部分语句,而是直接结束循环,即:
在这里插入图片描述
总结:这两种结构的特点就是在上面的循环当中,只要是出现了break,那么else的代码将不再执行,因此,该结构在设计某些特定的程序时会有意想不到的效果(减少工作量等)(如上述的简易的系统账号登录提示程序)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值