分支和循环
一.分支结构(if语句)
1.什么时候使用if语句
如果某一段代码需要在满足条件的时候才执行就使用if语句。
2.怎么使用if语句
2.1 if单分支结构 - 满足条件执行某个操作,不满足就不执行
语法:
if 条件语句:
代码块
说明:
- if - 关键字;固定写法
- 条件语句 - 任何有结果的表达式(具体的数据,除了赋值语句以外的运算表达式、函数调用表达式)
- : - 固定写法
- 代码块 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码。
执行过程:
判断条件语句是否为True(如果不是布尔就看条件语句结果的布尔值是否为True),为True就执行if里面的代码块,否则不执行。
练习1:根据输入的数据值打印偶数
num = int(input('输入一个整数:'))
if num % 2 == 0:
print('偶数')
if not num % 2:
print('偶数')
练习2:判断一个字符串是否为空串
str = ' '
if str:
print('不是空串')
2.2双分支结构 - 满足条件执行某个操作,不满足执行另一个操作
语法:
if 条件语句:
代码块1(满足条件要执行的代码)
else:
代码块2(条件不满足的时候要执行的代码)
执行过程:
先判断条件语句是否为True(如果不是布尔就转换成布尔),如果为True就执行代码块1,否则执行代码块2。
练习1:根据年龄的值打印成年或者未成年
age = int(input('请输入年龄:'))
if age >= 18:
print('成年')
else:
print('未成年')
练习2:判断一个三位数是否是水仙花数(各位数的立方和刚好等于这个数的本身),打印是或者不是
num1 = int(input('请输入一个数:'))
if (num1 % 10)**3 + (num1 // 10 % 10)**3 + (num1 // 100)**3 == num1:
print('是水仙花数')
else:
print('不是水仙花数')
2.3 if多分支结构 - 根据不同的条件执行不同的操作
语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
...
else:
代码块N
执行过程:
先判断条件语句1是否为True,如果是就执行代码块1,然后if语句结构直接结束;否则就判断条件语句2是否为True,如果是就执行代码块2,然后整个if语句结束;
以此类推。
如果前面所有的条件语句都不成立,就执行else后面的代码块N。
练习:根据每个月的收入情况判断这个月的伙食。
income = 1000
if income < 1000:
print('吃土')
elif income < 2000:
print('吃馒头')
elif income < 5000:
print('吃面')
elif income < 10000:
print('吃米饭')
else:
print('吃火锅')
3.python中的三目运算符
c中的三目运算符 - ?:
表达式1?表达式2:表达式3 - 判断表达式的值是否为真,如果是整个运算的结果就是表达式2的值,否则整个运算的结果是表达式3的值。
int age = 18;
int result = age>=18?"成年":"为成年";
python中的三目运算符 - 是通过if-else来实现c中?:的功能
表达式2 if 表达式1 else 表达式3 - 判断表达式1的值是否为True,如果是整个运算的结果为表达式2的值,否则为表达式3的值。
ge = 18
result = '成年' if age >= 18 else '未成年'
4.if嵌套 - 在一个if语句中嵌套其他的if语句
练习:判断一个数是否是偶数,如果是打印偶数,否则打印奇数;然后再判断这个是否能被4整除,如果能打印4的倍数。
num = int(input('请输入一个整数:'))
if num % 2 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('是奇数')
二.for循环
1.for循环
语法:
for 变量 in 序列:
循环体
说明:
- for - 关键字;固定写法
- 变量 - 可以是已经定义过的变量,也可以是没有定义过的变量(常用)
- in - 关键字固定写法
- 列 - python中容器型数据类型的数据,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等
- : - 固定写法
- 循环体 - 和for保持一个缩进的一条或者多条语句;需要重复执行的代码
执行过程:
让变量去 序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体。
(for循环的循环次数和序列中的元素个数一样)
or x in 'a b c d':
print('====')
# 执行过程;
x = 'a';:print('====')
x = 'b';:print('====')
x = 'c';:print('====')
x = 'd';:print('====')
2.range函数 - 产生数据序列
range(N) - 产生一个0到N-1的数字序列(N是正整数)
range(M, N) - 产生一个M到N-1的数字序列(M,N都是整数;N>M)
range(M, N, step) - 从M开始每次增加step产生下一个数字,到N前为止
例如:
for x in range(4):
print('x:', x)
# x: 0,x: 1,x: 2,x: 3
练习1:计算1+2+3+…+100的和
sum1 = 0
for num in range(1, 101):
sum1 += num
print(sum1)
# 5050
练习2:统计100 - 300中能被3整除但是不能被4整除的数的个数
count = 0 # 用来保存最后的个数
for a in range(100, 301):
if a % 3 == 0 and a % 4 != 0:
# 满足条件的时候加1
count += 1
print(count)
# 50
三.while循环
语法:
while 条件语句:
循环体
说明:
- while - 关键字;固定写法
- 条件语句 - 任何有结果的表达式(具体的数据、除了赋值语句以外的运算表达式、函数调用表达式)
- : - 固定写法
- 循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码
执行过程:
先判断条件语句是否为True,为True就执行循环体,执完循环体再判断条件语句是否为True,为True又执行循体,以此类推,如果判断条件语句的结果为False,循环结束。
练习1:编程实现不断从控制台输入数字,直到输入的数字是0就停止。
num = float(input('请输入一个数:'))
while num != 0:
num = float(input('请输入一个数:'))
四.break、continue和slse
1.continue
continue是循环体中的关键字,只能在循环中使用。当执行循环体的时候,如果遇到了continue,当次循环结束,直接进入下次循环的判断。
2. break
break也是循环体中的关键字,只能在循环中使用。
当执行循环体的时候遇到了break,整个循环直接结束。
python中while正确的打开方式
while True:
需要重复执行的操作
if循环结束的条件:
break
3.else
python中的for和while的完整结构是:for-else结构和while-else结构
1.for-else结构
for 变量 in 序列:
循环体
else:
代码块
2.while-else结构
while 条件语句:
循环体
else:
代码块
else后面的代码块在循环执行过程中如果遇到了break不会执行,反之就会执行。