Python——条件语句及其循环
条件语句及其循环
一. 条件语句
在条件语句中可以使用以下所有的运算符:
- 算术运算符:+、-、*、/、//、%、**
- 关系运算符:>、<、==、<=、>=、!=
- 测试运算符:in、not in、is、is not
- 逻辑运算符:and、or、not
- 位运算符:~、&、|、^、<<、>>
1.1 单分支选择结构
语法:
if 表达式 :
pass
#代码块
特别注意 : 只有"条件"正确的时候 才进行程序的下一步,如果"条件"是错误(False) 就不执行
if True:
print('条件成立执行的代码1')
print('条件成立执行的代码2')
#下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')
#例子
age = input('请输入你的年龄:')
if int(age) >= 18:
print('已经成年,可以上网')
print('系统关闭')
1.2 双分支选择结构
语法:
if 表达式:
pass
else:
pass
当表达式的值为True时,执行语句块1,否则执行语句块2
age = int(input('请输入您的年龄:'))
if age >= 18:
print(f'您的年龄是{age},已经成年,可以上网')
else:
print(f'您的年龄是{age},未成年,请自行回家写作业')
print('系统关闭')
python还支持如下形式的表达式,当表达式condition的值与True等价时表达式的值为values1,否则为values2,另外values1与values2中还可以使用复杂表达式
values if condition else values2
a=5
print(6) if a>3 else print(5)
6
print(6 if a>3 else 5)
6
b=6 if a>13 else 9
print(b)
9
1.3 多分支选择结构
语法:
if 条件1:
条件1成立执行的代码1
条件1成立执行的代码2
......
elif 条件2:
条件2成立执行的代码1
条件2成立执行的代码2
......
......
else:
以上条件都不成立执行执行的代码
多重判断也可以和else配合使用。一般else放到整个if语句的最后,表示以上条件都不成立的时候执行的代码。
例子:
age = int(input('请输入您的年龄:'))
if age < 18:
print(f'您的年龄是{age},童工一枚')
elif (age >= 18) and (age <= 60):
print(f'您的年龄是{age},合法工龄')
elif age > 60:
print(f'您的年龄是{age},可以退休')
# 还可以这么写
age = int(input('请输入您的年龄:'))
if age < 18:
print(f'您的年龄是{age},童工一枚')
elif (age >= 18) and (age <= 60):
print(f'您的年龄是{age},合法工龄')
else:
print(f'您的年龄是{age},可以退休')
二. 循环语句
2.1 while循环
语法:
while 条件表达式:
循环体
# 循环的计数器 注意 : 主要看到while 就看到了那个循环的圈圈
while 9 >8 :
print('你瞅啥 ????')
while True :
print('你瞅啥 ????') #与下面介绍的break一起用
while 9 < 0 : # 不会循环 因为条件的结果是False
print('你瞅啥 ????')
i = 0
while i < 5:
print('我错了')
i += 1
print('任务结束')
2.2 for循环
语法:
for 变量 in 序列或其他迭代对象(一般与range()函数连用) :
循环体
例子:
for i in range(5):
print('我错了')
for i in range(5):
print(i) #可以看出是 0 1,2,3,4 一共5个数 ,但是是左闭右开 默认从0 开始
for i in range(1,5): # 从1开始 还是左闭右开的规则
print(i)
for i in range(1,6):
print(f'我错了说了第{i}遍')
# 相对于 while 代码更简洁易懂
# range 代表范围,即左闭右开区间
# 特别注意 for循环所表示的两层含义 (i代表是啥 ? 循环了几次?)
嵌套for循环
***
***
***
要求 : 试着打印上面的*
for j in range(4):
for i in range(3):
print("*",end="")
print() # 只起到换行的作用
"""
1: 首先看到的是* 第一想到打印print函数,又因为print函数默认换行这里没有换,所以肯定end参数=''
2: 可以看到打印的*是三个可以想到for循环三个 那么马上就想到 for i in range(3)里面进行print(*)并且end = ''
3: 把第二步当成一个整理,再进行for循环四次 ,又因为之前的print是去掉换行的,所以说print() 直接换行 就可以
"""
# 重点:
- 理解***的打印顺序
- 理解print的用法
- 理解for循环的代表的实际意义
- 理解两个循环的执行顺序和逻辑
for i in range(1,10):
for j in range(1,10):
if i>=j:
print(f'{j}*{i}=',j*i," ",end="")
print()
#乘法口诀表
2.3 搭配else
while循环与for循环都可以带else语句,如果循环因为表达式不成立而自然结束(不是因为执行了break而结束循环),则执行else中的语句;如果循环是因为执行了break语句而提前结束,则不执行else中的语句。
while 条件表达式:
循环体
else:
代码块
for 变量 in 序列或其他迭代对象:
循环体
else:
代码块
#例子
s=0
for i in range(1,101):
s+=i
else:
print(s)
5050
三. break&continue
break和continue是循环中满足一定条件退出循环的两种不同方式。
举例:一共吃5个苹果,吃完第一个,吃第二个…,这里"吃苹果"的动作是不是重复执行?
情况一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第五个苹果,即是吃苹果的动作停止,这里就是break控制循环流程,即终止此循环。
情况二:如果吃的过程中,吃到第三个看到一个大虫子…,是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continue控制循环流程,即退出当前一次循环继而执行下一次循环代码
3.1 break终止
# break
i = 1
while i <= 5:
if i == 4:
print(f'吃饱了不吃了')
break
print(f'吃了第{i}个苹果')
i += 1
print('从循环跳出来了')
# 栗子
while True:
s = input('随便输入点什么(输入quit是结束):')
if s == 'quit':
break
print(f'你输入的字符串是{s}')
print('完')
3.2 continue跳过
for i in range(1, 20):
if i % 2 == 0:
continue
# print(1)
print(i)
# 注意 : continue即使下面有若干行代码都不会执行
num = 0
while num < 10:
print(num)
if num == 3:
num += 1
continue
print("&")
num += 1