python流程控制

流程控制


if条件分支

基本的条件判断语句,用于分支结构控制,用法如下。

# 输入一个整数,按条件输出内容
choose = int(input())

if choose < 3:
    print("< 3")
elif choose < 5:
    print("< 5")
else :
    print("else")
    
# 嵌套分支输出三个数最大者
a = int(input())
b = int(input())
c = int(input())

if a >= b:
   if a >= c: # 内嵌分支
      print(a)
   else :
      print(c)
else :
   if b >= c:
      print(b)
   else :
      print(c)
      
if a >= b and a >= c: # 非嵌套写法
   print(a)
elif b >= a and b >= c:
   print(b)
else :
   print(c)

简化if-else

python中不提供cpp和java中的? :三目运算符,但支持简化的单行if-else写法用以替代。

# 输入两个数,输出较大者
one = int(input())
two = int(input())

if one > two: # if基本写法
   print(one)
else :
   print(two)
   
print(one if one > two else two) # 简化if-else写法

# 简化if-else也支持嵌套,但不常用,如下判断三个数的最大者
a = int(input())
b = int(input())
c = int(input())
maximum = a if a >= b and a >= c else b if b >= c and b >= a else c
print(maximum)

while循环

基本循环语句,不同于cpp和java在于,python中的while循环可以有else分支,其将在循环顺利执行完成后执行。

# 1. 循环10次并打印内容
count = 0
while count < 10:
    print("loop no.",count)
    count += 1

# 2. 循环打印列表元素,循环顺利完成打印内容
lis = [1,2,3,4,5]
count = len(lis) - 1
while count >= 0:
    print(lis[count], end = ' ')
    count -= 1
else :
    print("over")

for循环

python中的for循环与cpp和java中提供的for-each循环相同,用于对容器中的数据进行迭代,同while,for也可有else分支,用于在循环顺利执行完成后执行。
同时,for循环常常与range(start,stop[,step])函数结合使用,range用于生成一个从start开始、stop结束、步长为step的左闭右开区间的等差级数,详细用法可以键入help(range)查看。

# 1. for循环迭代输出列表元素
lis = [1,2,3,4,5]
for each in lis:
    print(each, end = ' ')

# 2. for循环计算[1,99]奇数和
count = 0
for each in range(1,100,2):
    count += each
print(count)

循环控制

break

用于在满足条件时跳出(终止)最近一层的循环,break跳出的循环将不会执行其后的else分支。

# 1. 顺序输出有序列表中小于等于maximum的元素,如果全部输出则输出over
lis = [1,2,3,4,5,6]
maximum = 4

index = 0
while index < len(lis): # while实现
    if lis[index] > maximum: # 符合条件时跳出循环
        break
    print(lis[index], end = ' ')
    index += 1
else : # 顺利结束循环时执行,break跳出将不会执行
    print("over")

for each in lis: # for循环实现
    if each > maximum: # 符合条件时跳出循环
        break
    print(each, end = ' ')
else : # 顺利结束循环时执行,break跳出将不会执行
    print("over")

continue

用于在满足条件时跳过当前一轮循环余下语句,直接进入下一轮循环。

lis = [2,4,5,3,6,8,7]
# 输出列表中的奇数,以下两种写法等价
for each in lis: # 1.
   if each % 2: # 当迭代元素为奇数时输出
      print(each)

for each in lis: # 2.
   if not each % 2: # 当迭代元素不为奇数时跳过当前循环,余下代码不执行
      continue
   print(each)

上一篇:Python版的迷你程序——文本单词的统计


下一篇:A - Make 10