Python学习笔记(3)

4、控制语句执行流程

顺序执行 选择执行 循环执行

4.1 用if选择执行语句

4.1.1 if基础

In [1]:

x = 3
if x<0:  #if后必须有‘:’
    x=-x
print(x)
3

In [6]:

x = 3
if x<0:
    x=-x
elif x==3:  #有多个分支时,只要有一个条件成立,就会将其执行并推出整个if语句
    x=x-3
else:
    x=x+x
print(x)
0

In [8]:

a = None
b = 3
x = b if a is not None else 0 #当a不为None,x取3,否则x取0
print(x)
0

4.1.2 if语句的嵌套

In [13]:

a = int(input('输入一个整数:'))  #嵌套一般不要太深,对于多件套的语句可以适当修改,减少嵌套层次
if a > 0:
    if a>10000:
        print('大于1万')
    else:
        print('小于1万')
else:
    if a < -10000:
        print("小于'-10000'")
    else:
        print("大于'-10000'")
    print('且小于0')
输入一个整数:1000
小于1万

4.2 用for循环执行语句

与其他高级语言不同,python的for是通过循环遍历某一序列对象来构建循环,循环结束的条件就是对象遍历完成。

In [18]:

alist = [1,2,3,4,5]
for i in alist:
    print(i)
else:
    print('end')  #循环结束时,else后的语句就会执行
1
2
3
4
5
end

4.2.2 for语句与break语句、continue语句

break作用是中断循环,如在循环中执行了break,遍历就会立即终止。 continue作用是提前停止循环体的执行,开始下一轮循环。白话就是跳过当前进入下一个循环。 [a,b,c] 如continue在b这里,则结果为ac

In [27]:

for i in [1,2,3,4,5]:
    print(i)
    if i == 2:  #注意缩进,看执行结果,当i==2时,跳过了
        continue
    print('测试contiune数据%d' %i)
    if i == 4:  #注意缩进,当i==4时,跳出了循环,没有执行列表中的【5】
        break
else:
    print('end')
1
测试contiune数据1
2
3
测试contiune数据3
4
测试contiune数据4

In [35]:

adct = {'a':1,'b':2}
for k,v in adct.items():
    print(k,':',v)
for k in adct.keys():
    print(k)
for v in adct.values():
    print(v)
a : 1
b : 2
a
b
1
2

4.2.3 for语句与range()函数

range([start,]stop[,step]) start 可选参数,起始数,默认为0 stop 终止数 step 可选参数,步长,每次循环的增长值

In [40]:

for i in range(4): #从0开始取4位
    print(i)
print('------------------')  #分隔符,方便对比
for i in range(1,9,3):  #从1到9,每个3个数取一次
    print(i)
0
1
2
3
------------------
1
4
7

4.2.4 for语句与内置迭代函数

enumerate(seq) 编号迭代 sorted(seq) 排序迭代 reversed(seq) 翻转迭代 zip(seq1,seq2...) 并行迭代

In [49]:

alist = [1,2,3,4,5,6]
for i,item in enumerate('abcdefg'):
    print(i,item)
print('-------------------------------')
for i,item in enumerate(alist):
    print(i,item)
0 a
1 b
2 c
3 d
4 e
5 f
6 g
-------------------------------
0 1
1 2
2 3
3 4
4 5
5 6

In [56]:

alist = [3,2,5,6,3,4]
for i in sorted(alist):
    print(i)
print('-----------------------')
for i in reversed(alist):
    print(i)
2
3
3
4
5
6
-----------------------
4
3
6
5
2
3

In [58]:

lsta = {1,2}
lstb = {3,4}
lstc = {5,6,7}
for i,j,k in zip(lsta,lstb,lstc):  #当长度不一致的时候,只遍历到最短的序列长度
    print('%d:%d:%d' %(i,j,k))
1:3:5
2:4:6

4.3 用while循环执行语句

In [68]:

alst = [1,2,3,4,5,]
total = len(alst)
i = 0
while i <= total:
    print(i)
    i+=1  #不加这个容易出现死循环,下一节将提到这个运算符
else:
    print('end')
print('----------------------')  #做一个与for的比较
for i in alst:
    print(i)
else:
    print('end')
0
1
2
3
4
5
end
----------------------
1
2
3
4
5
end

4.3.2 增量赋值运算符

+、-、*、/、//、%、&、^、>>、<<

In [70]:

x=0
x+=1  #意义为x=x+1
print(x)
1

4.4 推导或内涵

4.4.1 推导基础

为什么要使用推导,看下面两个列子:

In [76]:

square = [i+i for i in range(1,11)]
print(square)
print('-----------------------')
square_1 = []
for i in range(1,11):
    square_1.append(i+i)
print(square_1)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
-----------------------
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

In [77]:

keys = ['name','age','weight']
values = ['Bob','23','68']
adct = {k:v for k,v in zip(keys,values)}
print(adct)
{'name': 'Bob', 'age': '23', 'weight': '68'}

4.4.2 推导进阶

In [81]:

#
square_odd = [i**i for i in range(1,11) if i**i %2 ==1]
print(square_odd)
[1, 27, 3125, 823543, 387420489]

转载于:https://my.oschina.net/zhackj/blog/1632698

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值