Python流程控制

流程控制

在python中pass关键字起到一个代码块占位符的作用

if

单if

# 格式

if 条件表达式:
    代码块

如果 条件表达式的值为True,则执行代码块
值为False就忽略掉代码块,不让其执行

i=1
if i!=1:
    print ("i不等于1")
print ("结束")

这段代码会先判断 i!=1的值
由于i=1,所以这个表达式的值为False
自然就会跳过print ("i不等于1")这行语句
然后按照顺序结构继续执行print ("结束")

if…else…/三元运算符

# 格式

if 条件表达式1:
    代码块1
else 条件表达式2:
    代码块2

如果 表达式1的值为True,则执行代码块1,忽略掉else部分
如果 条件表达式1的值为False,则执行代码块2

在一些情况下,这种格式的判断语句可以简写成三元运算符

a = 3
b = 4
num = 0
if a > b:
    num = a
else:
    num = b

# 其他语言中三元表达式的格式为 变量 = 条件表达式 ? 值1 : 值2
# python中三元运算符的格式为 变量 = 值1 if 条件表达式 else 值2
# 当条件表达式为True的之后 变量 = 值1
# 反之 变量 = 值2

# 简写成三元运算符
num = a if a > b else b

if…elif…else

# 格式

if 条件表达式1:
    代码块1
elif 条件表达式2:
    代码块2
# 这里可以加多个elif

else :
    代码块n

if 或 elif 的条件表达式为True,则执行对应的代码块
不再检查下面的其他条件表达式
如果所有if和elif的条件表达式为False,则执行else对应的代码块n

另外python中是没有switch这种选择语句的,官方文档推荐使用这种方式来代替switch

// js代码
i = 1;
a = 0
switch(i){
    case 0:
        a = 0;
        break;
    case 1:
        a = 1;
        break;  
    default:
        a = 2; 
        break;
}

# python代码
i = 1
if i == 0:
    a = 0
elif i == 1:
    a = 1
else :
    a = 2

不过我在网上找到一种使用字典建立跳转表的方式

# 字典
i = 1
a = 0
switcher = {0:0,1:1,2:2}
a = switcher[i]

字典的value不仅可以是值对象,还可以是函数名,或者lambda表达式

switcher = {
    0:lambda : print(0),
    1:lambda : print(1),
    2:lambda : print(2)
    }
i = 0
switcher[i]()

if嵌套

无论什么嵌套都是很复杂的,尤其是嵌套n层之后
所以一般的情况,都是会用if-elif-else格式来代替if嵌套

不过有些情况,使用if嵌套还是比较合适的

比如,上火车

if 有票:
    if10块:
        if100块:
            if300:
                做软卧
            else:
                做硬卧
        else:
            做软座
    else:
        做硬座
else:
    滚

循环

python中没有do-while 没有++/–
python中有两种循环

  • while循环
  • for循环

while循环格式

while 条件表达式:
    循环体

for循环格式

for 变量 in 可迭代对象:
    循环体

这种for循环和其他语言的foreach类型的循环比较像
其他多数语言的循环都是

// 通常
for(i = 0;i < 10;i++){
    循环体
}

// js遍历数组
for(i = 0 ; i < arr.length ; i++){
    console.log(arr[i]);
}

# python中也可以用类似的思路遍历序列
# 使用range()配合len()
for i in range(len(list)):
    print(list[i])

for循环通常是用于遍历可迭代对象,或者执行指定次数的循环
使用while一般用于不确定执行次数的循环()直到不满足某个条件的时候结束循环)

break&continue

break终止循环
continue终止本轮循环,进入下一次循环

比如说 i==7的时候结束循环,这个时候用到break
比如 打印所有的奇数 那么当i%2==0的时候 就会用到continue

for/while…else

还有 for和while都可以跟else

for i in range(10):
    print(i)
else:
    print(11)

# 只有循环完整的执行一遍结束后才会执行else部分的代码
# 如果循环遇到break退出了,那么else部分是不会执行的

循环嵌套

一般遍历多维列表/元组等,以及打印99乘法表的时候比较有用

比如打印一个99乘法表

i=1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%d"%(j,i,j*i),end="\t")   #不换行
        j+=1
    print() #换行
    i+=1

运行结果

1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值