在流程控制语句中,只有for语句不需要在语句外面声明变量
for i in range(5): # i未在for语句外面申明就使用,没有报错
print(i)
while i<10: # 此时会报错,因为i未声明,需要在while循环外面先申明再使用
print(i)
1. if else条件语句
Python 中的 if else 语句可以细分为三种形式,分别是 if 语句、if else 语句、 if elif else 语句。
a=10
b=6
if a>b:
r=a
else:
r=b
简化: r = a if a>b else b
# if elif else语句
def func(i):
if i == 3:
print(3)
elif i == 4:
print(4)
elif i == 5:
print(
else:
print(6)
3. while循环
while循环是通过一个条件来控制是否要继续反复执行循环体中的语句。
while 条件表达式:
条件成立重复执行的代码
——————————————————————————————————————————
while 条件表达式:
条件成立重复执行的代码
else:
循环正常结束后要执行的代码
i=int(input("请输入:"))
while i<4:
print(i)
break
else:
print("输入过大")
- 如果在while循环中执行了break终止了循环导致非正常结束,else后面的语句不会执行;只执行了continue,else后面的语句是会执行的
- while语句,表达式的变量需要在外面先创建好再使用。
4. for循环
python中的for循环与java,c中的for循环不同,没有迭代停止条件,只是将序列中的元素按顺序遍历。
for 临时变量 in 序列:
重复执行的代码
else:
循环正常结束后要执行的代码
words = ['A','B','C','D']
for i in words:
print(i,ending="")
>>> ABCD
4.1 for语句 + range()
for语句结合range()函数可以实现java的for循环遍历功能**range()**
是range类的实例对象。**range(start,stop[,step])**
——>从start(包括)到stop(不包括)的整数序列。默认从0开始,step默认为1。
for i in range(0,3,1):
print(i)
>>> 0,1,2
4.2 for + enumerate()
lists=["你好","我好","大家好"]
dict={}
for index,value in enumerate(lists):
dict[value]=index
dict={"你好":0,"我好":1,"大家好":2}
5. else循环子句
**else**
循环子句在for迭代完或者**while**
终止时执行。但是假如循环被**break**
语句终止则不执行**else**
语句。
for n in range(2,10):
for x in range(2,n):
if n%x ==0:
print(n,"等于",x,"*",n//x)
break
else:
print(n,"是一个素数")
while True:
i=int(input("请输入:"))
while i < 4:
print("输入正确")
break
else:
print("输入数字过大")
continue
6. break,continue和pass语句
- break语句可以终止当前的一层循环,包括while和for在内的所有控制语句
- continue语句的作用没有break语句强大,它只能中止本次循环而提前进入下一次循环中。
- pass语句表示空语句。它不做任何事情,一般起到占位作用。
7. match语句
在**python 3.10**
添加上的特性6. assert断言
可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误。
assert 语句的语法结构为:assert 表达式mathmark = int(input())
#断言数学考试分数是否位于正常范围内
assert 0 <= mathmark <= 100
#只有当 mathmark 位于 [0,100]范围内,程序才会继续执行
print("数学考试分数为:",mathmark)