python3 流程控制(if 、for和while)

本文详细介绍了Python3中的流程控制,包括顺序结构、分支结构(条件表达式、分支控制流)和循环控制流(FOR、while循环、continue和break的使用,以及for...else语法)。此外,还提供了相关的编程练习题,帮助读者巩固所学知识。

流程控制:

在python中,有三种控制流类型,一种是顺序结构,第二种是分支结构,第三种循环结构。

1.1 顺序结构:

代码是按照从上往下的顺序执行代码。

1.2 分支结构:

常用的方式有:

1)	If 条件表达式:
   #语句/语句块
2)if  条件表达式:
   #语句/语句块
   else:
      #语句/语句块
3)If 条件表达式:
	#语句/语句块
elif 条件表达式2:
	#语句/语句块2
elif 条件表达式3:
 #语句/语句块
else: (此处无需表达式,表示剩下所有的情况)
#满足其他条件要执行的语句/语句块

#说明:当其中的一个条件满足,其他条件分支自动屏蔽,不再运行。

注意点:

1、条件表达式
1)条件表达式的结果是True 或False;
2) 任意非0或非空(None)值为True;
3) False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空range 对象、空迭代对象等为False。
2、分支控制流
1)只有一个if条件判断,也算一个分支流;
2)所有的分支控制,必须要以if开头;
3)if 与 elif后面必须加条件表达式,else后面不能加条件表达式;
4)一个判断分支只有一个if 一个else,但是可以有多个elif;
5) 分支控制流是按照顺序执行代码,来选择判断条件的。

1.3 循环控制流

Python 提供了 for 循环和 while 循环(在 Python 中没有 do…while 循环):
循环语句用于验证某个条件,条件为真,运行循环下的代码块,否则结束循环。

1.3.1 FOR循环语句

For 循环用来遍历对象,从对象的第一个元素到最后一个元素都依次访问一次。
语法:
For 元素 in 数据集合:
执行代码
解析:数据集合可以是列表、元组、字典,字符串,也可以是一个指定的数据范围。
例1:

str='hi ,python'
for item in str:
    print(item)

例2

dict={'age':18,'sex':'girl'}
for key in dict.keys():
        print(key)

指定的数据范围如:
range函数用于生成一个整数序列,常用几中用法如下:
range(m,n,k) 生成从m~n-1且步长为K的整数序列。
range(m,n) 生成从m~n-1且步长为默认为1的整数序列。
range(m) 生成从0~m-1且步长为默认为1的整数序列。
例1:

list=[1,2,3,5,'python']
for i in range(len(list)):
print(list[i])

例2:

for i in range(1,5):
print(i)
1.3.2 嵌套FOR

(口诀:外循环一次,内循环一遍)
假如有一个这样的列表my_list=[[1,2,3,4],[5,6,7,8],要求把列表里面的每一个元素都打印出来,这是一个嵌套列表,即列表里面有列表,用FOR循环处理:

list=[[1,2,3,4],[4,5,7,8]]
for i in range(len(list)):
    for j in range(len(list[i])):
        print(list[i][j])
1.3.3 while 循环语句

while循环用来重复执行某个操作
语法:

while 条件表达式:
	执行代码

当条件表达式为真时,会执行代码,为假时则退出循环。
例:数字猜大小

number=20
count=5
while count>0:
    answer=int(input("请输入一个整数:"))
    if answer==number:
        print('恭喜你猜对啦!')
    elif answer<number:
        print('你输入的数字太小了')
    else:
        print('你输入的数字太大了')
count-=1
1.3.4 continue 和break

还是上面数字猜大小,如场景要求为不限次数,答对结束,否则可以继续呢?
可以通过continue 和break这种语句控制方式防止进入死循环。
Break语句常用于循环结构中,在循环结构中出现Break语句的时候,能将该循环强制停止,然后退出该循环。
Continue 语句,是强制停止循环中的这一次执行,直到跳到下一次执行。

number=20
while True:
    answer=int(input("请输入一个整数:"))
    if answer==number:
        print('恭喜你猜对啦!')
        break
    elif answer<number:
        print('你输入的数字太小了')
        continue
    else:
        print('你输入的数字太大了')
        continue
1.3.5 你可能还不知道的语法(for …else)

在FOR 循环之后使用else子句,可以在循环“自然” 结束而不是被break语句终止时执行一个代码块:
例1:

for number in range(3):
    print(number)
    break
else:
print('no break')
返回结果:
0

例2:

for number in range(3):
    print(number)
else:
    print('no break')
返回结果:
0
1
2
no break

综上,可以看出for循环之后 else 没有break 才有效。


留下练习题:

1、你的微信好友当中有5个推销的,他们存在一个列表
black_list =[‘卖茶叶’, ‘卖面膜’, ‘卖保险’, ‘卖花生’, ‘卖手机’]
当中, 请依次把这5个人分别从black_list当中删除,最后black_list为空。(不要使用clear)。

2、使用遍历循环完成剪刀石头布游戏,提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3) / 退出(4)
电脑随机出拳比较胜负,显示用户胜、负还是平局。运行如下图所示: 提示:电脑随机出拳。

3、编写如下程序。
a.用户输入1 - 7, 七个数字,分别代表周一到周日
b.如果输入1-5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末”
c.如果输入0,退出循环
d.输入其他内容,提示:“输入有误,请重新输入!”
提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值