Python中的流程控制语句 Python 条件语句 if 语句 Python中if语句的一般形式如下所示:
1 2 3 4 5 6 if  condition_1:    statement_block_1 elif  condition_2:    statement_block_2 else :    statement_block_3 
 
Python 中用 elif  代替了 else if ,所以if语句的关键字为:if – elif – else 。
注意: 
1、每个条件后面要使用冒号 : ,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在 Python 中没有 switch…case  语句,但在 Python3.10 版本添加了 match…case ,功能也类似,详见下文。
以下是一个简单的 if 实例:
1 2 3 4 5 6 7 sex_chromosome=input () if  sex_chromosome=="xx" :    print ("girl" ) elif  sex_chromosome=="xy" :    print ("boy" ) else :    print ("???" ) 
 
以下为if中常用的操作运算符:
操作符 
描述 
 
 
< 
小于 
 
<= 
小于或等于 
 
> 
大于 
 
>= 
大于或等于 
 
== 
等于,比较两个值是否相等 
 
!= 
不等于 
 
if嵌套,在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。
1 2 3 4 5 6 7 8 9 10 11 12 13 if  表达式1 :    语句     if  表达式2 :         语句     elif  表达式3 :         语句     else :         语句 elif  表达式4 :    语句 else :    语句 
 
match…case Python 3.10 增加了 match…case  的条件判断,不需要再使用一连串的 if-else  来判断了。
match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_  可以匹配一切。
语法格式如下:
1 2 3 4 5 6 7 8 9 match  subject:    case  <pattern_1>:         <action_1>     case  <pattern_2>:         <action_2>     case  <pattern_3>:         <action_3>     case  _:         <action_wildcard> 
 
case _:  类似于 C 和 Java 中的 default: ,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。
1 2 3 4 5 6 7 8 9 10 11 12 13 def  http_error (status ):    match  status:         case  400 :             return  "Bad request"          case  404 :             return  "Not found"          case  418 :             return  "I'm a teapot"          case  _:             return  "Something's wrong with the internet"  mystatus=400  print (http_error(mystatus))
 
以上是一个输出 HTTP 状态码的实例,输出结果为:Bad request
一个 case 也可以设置多个匹配条件,条件使用 |  隔开,例如:
1 2 case  401 |403 |404 :    return  "Not allowed"  
 
Python 循环语句 while 循环 Python 中 while 语句的一般形式:
1 2 while  判断条件(condition):    执行语句(statements)…… 
 
在 Python 中没有 do..while 循环。
实例:
1 2 3 4 5 6 7 num=1  sum =0 while  num<=100 :    sum =sum +num     num=num+1       print ("1 到 %d 之和为: %d"  % (n,sum ))
 
无限循环 
1 2 3 4 5 6 import  timei=0  while  True :    i=i+1      print (i)     time.sleep(1 ) 
 
你可以使用 CTRL+C  来退出当前的无限循环。
无限循环在服务器上客户端的实时请求非常有用。
while 循环使用 else 语句 
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
语法格式如下:
1 2 3 4 while  <expr>:    <statement(s)> else :    <additional_statement(s)> 
 
while...else 的独特之处在于:只有当循环完整执行完毕(没有遇到break)时,else块才会执行 。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 num = 1  sum  = 0 while  num <= 100 :    if  num == 50 :           break      sum  = sum  + num     num = num + 1  else :    print ("循环正常结束,和为:" , sum )   print ("实际和为:" , sum )  num = 1  sum  = 0 while  num <= 100 :    sum  = sum  + num     num = num + 1  else :    print ("循环正常结束,和为:" , sum )   
 
while...else 通常用于搜索 或验证 场景:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 numbers = [1 , 3 , 5 , 7 , 9 ] target = 4  i = 0  while  i < len (numbers):    if  numbers[i] == target:         print (f"找到目标值 {target}  在位置 {i} " )         break      i += 1  else :    print (f"没有找到目标值 {target} " )   password = ""  attempts = 0  while  attempts < 3 :    password = input ("请输入密码: " )     if  password == "secret" :         print ("密码正确!" )         break      attempts += 1      print (f"密码错误,还剩{3 -attempts} 次机会" ) else :    print ("尝试次数过多,账户已锁定" ) 
 
for 语句 Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
1 2 3 4 for  item in  iterable:     else :     
 
实例:
1 2 3 for  i in  range (10 ):    print (i) 
 
break 和 continue 语句及循环中的 else 子句 
break  语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue  语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 n = 5  while  n > 0 :    n -= 1      if  n == 2 :         break      print (n) print ('循环结束。' )n = 5  while  n > 0 :    n -= 1      if  n == 2 :         continue      print (n) print ('循环结束。' )
 
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。
1 2 3 4 5 6 7 8 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,"是质数" ) 
 
pass 语句 
pass 是 Python 中的一个特殊语句,它被称为 “空操作”语句 或 “占位”语句 。它的主要特点是:什么都不做 。
特性 
说明 
 
 
作用  
空操作,什么都不做 
 
主要用途  
语法占位符 
 
使用场景  
空函数、空类、待实现的代码块 
 
语法要求  
满足Python的语法完整性 
 
性能  
几乎零开销 
 
1 2 3 4 5 6 7 8 9 10 11 def  func1 ():    pass  def  func2 ():    ... 
 
range() 函数 range() 是 Python 中非常常用且强大的内置函数,用于生成一个不可变的整数序列。
基本语法:
1 2 range (stop)range (start, stop[, step])
 
start:序列的起始值(包含),默认为 0 
stop:序列的结束值(不包含) 
step:步长,默认为 1 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 r = range (5 ) print (list (r))  r = range (2 , 7 ) print (list (r))  r = range (1 , 10 , 2 ) print (list (r))  r = range (10 , 0 , -1 ) print (list (r))  r = range (5 , -1 , -1 ) print (list (r))  
 
range()支持索引和切片
1 2 3 4 5 6 7 8 r = range (10 , 21 )   print (r[0 ])        print (r[5 ])        print (r[-1 ])       sliced = r[2 :6 ]     print (list (sliced)) 
 
常见应用场景 
for 循环迭代 
 
1 2 3 4 5 6 7 8 for  i in  range (5 ):    print (f"第 {i+1 }  次循环" ) fruits = ['apple' , 'banana' , 'cherry' ] for  i in  range (len (fruits)):    print (f"索引 {i} : {fruits[i]} " ) 
 
创建列表 
 
1 2 3 4 5 6 7 numbers = list (range (1 , 6 )) print (numbers)  evens = list (range (0 , 11 , 2 )) print (evens)    
 
3.数学运算
1 2 3 4 5 6 7 8 9 10 11 12 total = sum (range (1 , 101 )) print (total)  def  factorial (n ):    result = 1      for  i in  range (1 , n + 1 ):         result *= i     return  result print (factorial(5 ))  
 
4.生成复杂序列
1 2 3 4 5 6 7 squares = [x**2  for  x in  range (1 , 6 )] print (squares)  time_slots = [f"{h:02d} :{m:02d} "  for  h in  range (24 ) for  m in  range (0 , 60 , 15 )] print (time_slots[:5 ])