分支与循环
python代码默认情况下是从第一行开始从上往下一次执行的,每一条语句都会执行
分支结构:某段代码是否执行看条件(if语句)
一.分支
1.if结构
满足条件就执行某个操作,不满足就不执行
1)语法:
if 条件语句:
代码段
其他代码
2)说明
if - 关键字,固定写法条件
语句 - 任何有结果的表示都可以,列如:数据,已经声明过的变量、运算表达式(不能是赋值语句等
: - 固定写法;(一般出现冒号的位置,后面都会产生缩进)
代码段 - 和if保持一个缩进的一条或者多条语句;需要满足条件才执行的代码
3) 执行过程先判断条件语句的结果是否为True(如果条件语句的结果不是布尔值,就先转换成布尔再看)如果为True就执行代码段,否则代码段不执行
2.if-else结构
满足条件执行某个操作,不满足条件的时候执行另外一个操作
1)语法:
if 条件语句
代码段 1(满足条件要执行的代码)
else:
代码段 2(不满足条件要执行的代码)
2) 执行过程:
先判断条件语句是否为True,如果为True就执行代码段1,否则就执行代码段2
age = 20
# 根据年龄值的范围打印'成年'或者'未成年'
if age <= 18:
print('未成年')
else:
print('成年')
3.if-elif-else结构
1)语法
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
....
else:
代码段N
其它语句
2) 执行过程:
先判断条件语句1是否为True,为True就执行代码段1,然后整个if-elif-else结构结束
如果为False,就判断条件语句2是否为True,为True就执行代码段2,然后整个if-elif-else结构结束
如果为False,就判断条件语句3是否为True,为True就执行代码段3,然后整个if-elif-else结构结束
以此类推
如果所有的条件语句都不成立,执行else后面的代码段
# 根据年龄范围打印:少年(14以下)、青年(14-25)、壮年(26-35)、中年(36-50)、老年
age = 25
if age < 14:
print('少年')
elif 14 <= age <= 25:
print('青年')
elif 26 <= age <= 35:
print('壮年')
elif 36 <= age <= 50:
print('中年')
else:
print('老年')
4.if嵌套
"""
if结构中的代码块中可以再出现其他的if语句
"""
# 判断一个数是否是偶数,并且判断这个数是否是4的倍数;并打印出结论
# 方法:
num = 8
if num & 1 == 0:
print('偶数')
if num % 4 == 0:
print('是4的倍数')
else:
print('奇数')
if num % 10 == 3:
print('个位数是3')
二.循环
循环结构:for循环和while循环
1.for循环
1)语法:
for 变量名 in 序列:
循环体
2)说明:
for - 关键字固定写法
变量名 - 和声明变量的变量名要求一致
in - 关键字,固定写法
序列 - 容器型数据:字符串、列表、字典、元组、集合、迭代器、生成器、range
: - 固定写法
循环体 - 和for保持一个缩进的一条或多条语句;需要重复执行的语句
3)执行过程:让变量去序列中取值,一个一个的取,取完为止;每取一个值,执行一次循环体(for循环可以通过控制序列中元素的个数来控制循环的次数)
2.range函数
1) range(N) - 产生0 ~ N-1的数字序列
例如:range(4) -> 0,1,2,3
2) range(M,N) - 产生M ~ N-1的数字序列
例如:range(3,10) -> 3,4,5,6,7,8,9
3) range(M,N,stop) - 从M开始每隔step产生下一个数字,到N前一个数为止
例如:range(0,10,2) -> 0,2,4,6,8
作用: 1.产生指定的数字序列 2.控制循环次数
注意:如果for循环中变量取出来的值在循环体中无用,这个变量可以直接用_来命名
for _ in range(100):
print('+')
for x in range(4):
print(x)
# 练习1:打印0~100中所以能被3整除的数
方法一:
for x in range(101):
if x % 3 == 0:
print('x=',x)
方法二:
for x in range(3,101,3):
print('x=', x)
# 练习2:统计1~100中能被4整除并且个位数是2的数字的个数
num = 0
for x in range(1, 101):
if x % 4 == 0 and x % 10 == 2:
num += 1
print('被4整除并且个位数是2的数字的个数:', num)
# 练习3:计算1+2+3+...+100
y = 0 # 保存最后的和
for x in range(1, 101):
y += x
print(y)
3.while循环
1)语法:while 条件语句:
循环体
2)说明:
while - 关键字:固定写法
条件语句 - 任何有结果的表达式;数据、已经声明过的变量、运算符表达式(不能是赋值语句)等
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句;(需要重复指定的语句)
3)执行过程:先判断条件语句是否为True,如果为True就执行循环体;执行完循环体再判断条件语句是否为True,为True又执行循环体,以此类推,直到条件语句的结果是False循环就结束
4.for循环和while循环的选择问题
1)什么时候使用for循环
a.循环次数确定的时候
b.遍历序列
2)什么时候使用while循环
a.死循环
b.循环次数不确定
# 练习:猜数字游戏
# 游戏开始的时候随机产生一个100以内的数字,不断输入数字,直到输入的数字和产生的数字一致,游戏就结束
# 在没有猜对的时候,给出'大了'或者'小了'的提示
number = randint(0, 100) # 产生0~100的随机数,并且保存在number
value = int(input('输入数字:'))
while value != number:
if value < number:
print('小了')
elif value > number:
print('大了')
value = int(input('输入数字:'))
print('正确')
三.循环关键字
1.continue
"""
continue是循环体中的关键字当执行循环体的时候,如果遇到continue,那么当次循环结束,直接进入下次循环的判断
"""
for x in range(4):
print('====')
continue
print('++++')
2.break
"""
break是循环体重的关键字当执行循环体的时候如果遇到break,那么整个循环直接结束
"""
for x in range(4):
print('====')
break
print('++++')
# 功能:不断输入数字直到输入的数字是0为止,然后再求输入的所有的奇数的和
sum1 = 0
while True:
value = int(input('请输入数字:'))
if value == 0:
break
if value % 2 == 0:
continue
sum1 += value
print(sum1)
3.else
"""
1)完整的for循环
for 变量 in 序列
循环体
else:
代码段
2)完整的while循环
while 条件语句:
循环体
else:
代码段
else中的代码段:当循环自然死亡(for后的变量数据取完了;while后面的条件为False),else后面的
代码段会在循环结束后执行;如果循环是因为遇到break而结束的,那么else后面代码段就不会执行
else的意义:可以通过判断else中的代码有没有执行来判断循环有没有遇到break
"""
4,while循环的用法
while True:
需要重复执行的代码段
if 退出循环的条件:
break