python分支结构和循环语句
1 知识点补充
True和数字进行运算时,为1
False和数字进行运算时,为0
%符号可以使用小数
判断一个数C是否能够同时被数A和数B整除
#方法1:
C%A==0 and C%B==0
#方法2:
C%(A*B)==0
2 分支结构
2.1.什么时候使用if语句
如果某一段代码需要在满足条件的时候才执行,就使用if语句
2.2 怎么使用if语句
2.2.1 if单分支结构 满足条件执行某个操作,不满足就不执行
结构:
if 条件语句:
代码块
其他代码(if外面的代码)
说明:
1.if - 关键值;固定写法
2.条件语句 - 任何有结果的表达式(具体的数据、除了赋值语句以外的运算表达式)
3. : - 必须要写,固定写法
4.代码块 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才执行的代码
执行过程:
判断条件语句是否为True(如果不是布尔,就看条件语句结果的布尔值是否为True),
为True就执行if里面的代码块,否则不执行
5.条件语句可以是除了赋值语句以外的任何表达式
if 100:
pass
if "abc":
pass
if 100 + 200 / 4:
pass
if 100 + 200 / 4 or 100 < 500:
pass
# 报错误:SyntaxError: invalid syntax
# if num=100:
# pass
应用练习1:根据输入的数据值打印偶数
list1 = [2, 3, 4, 6, 7, 8]
for i in list1:
if i % 2 == 0:
print(i, "为偶数")
应用练习2:判断一个字符串是否是空串
str = ''
if str:
pass
2.2.2 if 双分支结构-满足条件执行某个操作,不满足执行另一个操作
结构
if 条件语句:
代码块1(满足条件要执行的代码)
else:
代码块2(条件不满足的时候要执行的代码)
执行过程:
判断条件语句是否为True(如果不是布尔就转换成布尔),如果为True就执行代码块1,否者执行代码块2
应用练习1:判断一个三位数是否为水仙花(每个数的立方的和==这个数)
num = int(input("请输入要判断是否为水仙花的数:")) # 153
num1 = num // 100
num2 = num % 10
num3 = num // 10 % 10
if num1 ** 3 + num2 ** 3 + num3 ** 3 == num:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
2.2.3 if多分支结构-根据不同的条件执行不同的操作
结构语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elsf 条件语句3:
代码块3
....
else:
代码块n
其他代码
执行过程:
先判断条件语句1是否为True,如果为True就执行代码块1,然后if语句结构直接结束;
否则就判断条件语句2是否为True,如果为True就执行代码块2,然后if语句结构直接结束;
以此类推
如果前面所有的条件语句都不成立,就直接执行else后面的代码块
money = 20000
if money < 1000:
print("吃馒头")
elif money < 3000:
print("吃小炒")
elif money < 6000:
print("吃烤鸭")
elif money < 10000:
print("吃火锅")
elif money < 20000:
print("吃澳洲大龙虾")
else:
print("吃老婆菜")
2.3.python中的三目运算符
2.3.1C中的三目运算: - ?:
表达式1?表达式2:表达式3 - 判断表达式1的值是否为真,如果是,整个运算的结果就是表达式2的值,否则整个运算的结果是表达式3的值
int age=18;
int result=age>=18?"成年":"未成年"
2.3.2 python中的三木运算符-是通过if-else来实现c中?:的功能
表达式2 if 表达式1 else 表达式3 --先判断表达式1的值是否为True,如果是,那整个语句的结果就是表达式2的值,否则是表达式3的值
age = 8
result = "成年" if age >= 18 else "未成年"
print(result)
score = 69
result = "及格" if score >= 60 else "不及格"
print(result)
2.4.if嵌套 -一个if语句中嵌套其他的if语句
# 输出列表中的偶数,如果能够被4整除,输出它是4的倍数
list1=[1,2,3,4,5,6,7,8,9,10]
for i in list1:
if i % 2 == 0:
if i % 4 == 0:
print(i, "是偶数",end="")
print(",它是4的倍数")
else:
print(i, "是偶数")
else:
print(i, "是奇数")
3 for循环
3.1 for循环
语法:
for 变量 in 序列:
循环体
说明:
for - 关键字:固定写法
变量 - 可以是已经定义过的(不常用),也可以是没有定义过的变量(常用)
in - 关键字:固定写法
序列 - python中容器型类型的数据,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句(需要重复执行的代码)
执行过程:
让变量 取序列中取值,一个一个取,每取一个值执行一次循环体,直到取完为止。
(for循环最大的循环次数和序列中元素的个数一样)
for x in 'abc':
print('===')
"""
执行过程
x='a':print('===')
x='b':print('===')
x='c':print('===')
"""
3.2.range函数 - 产生数据序列
规则:
range(N) - 产生一个0~N-1 的数字序列(N是正整数)
range(M,N) - 产生一个M~N-1 的数字序列(M,N是整数;M,N可以是负数,但是N>M)
**range(M,N,step) -**丛M开始,每次增加step产生下一个数字,到N为止
for x in range(10): #0到10
print("x:", x)
for y in range(10, 100):
print("y:", y)
for z in range(2, 10, 3):
print("z:", z)
for j in range(10, 0, -1):
print("j:", j)
应用实例1: 求1+2+3…+100的值
sum = 0
for i in range(1, 101):
sum += i
print(sum)
**应用实例2:** 统计100~300中能被3整除,不能被4整除的个数
```python
count = 0 # 用来保存最后的个数
for i in range(100, 301):
if i % 3 == 0 and i % 4 != 0:
count += 1
print(count)
4 while循环
4.1.while 循环
语法:
while 条件语句:
循环体
说明:
while - 关键字:固定写法
条件语句- 和if后面的条件语句要求一样,不知要不是赋值语句
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句(需要重复执行的代码)
执行过程:
先判断条件语句是否为True,为True就执行循环体,执行完在判断条件语句是否为True,为True又执行循环体,以此类推,如果判断条件语句为False,循环结束
应用练习1: 编程实现不断从控制台输入数字,直到输入的数字是0就停止
num=int(input("请输入数字:"))
while num!=0:
num=int(input("请输入数字:"))
5 break、continue、else
5.1 continue
continue是循环体中的关键字,只能在循环中使用。
**作用:**当执行循环体的时候,如果遇到了continue,当此循环结束,直接进入下次循环的判断
for _ in range(5):
print('====')
continue #执行到此语句,直接进行下一次循环
print('++++') #不会进行打印
5.2.break
break是循环体中的关键字,只能在循环中使用。
**作用:**当执行循环体的时候,如果遇到了break,整个循环结束
for _ in range(5):
print('=====') # 只会执行一次输出
break
print('+++++') # 不会输出
python中while正确打开方式
"""
while True:
需要重复执行的操作
if 循环结束的条件:
break
"""
while True:
num = input("请输入数字:")
if num == '0':
break
5.3 else
python中的for和while的完整结构是:
for—else结构和while-else结构
- for-else结构
for 变量 in 序列:
循环体
2 .while-else结构
while 条件语句:
循环体
else:
代码块
else后面的代码块在循环执行的过程中,如果遇到了break不会执行,反之就会执行**
for _ in range(5):
print("=====")
print('+++++')
else:
print('else中的代码块') #可以输出'else中的代码块'
for _ in range(5):
print("=====")
break
print('+++++')
else:
print('else中的代码块') #不会输出'else中的代码块'