Python基础-Day05 控制语句(要点)

目录

1. 选择结构

1.1 三元条件运算符

2. 循环结构

2.1 for 循环&可迭代对象遍历

2.1.1 定义

2.1.2 可迭代对象

2.2 break & continue 语句

2.2.1 break

2.2.2 continue

2.2.3 else语句

2.3 循环代码优化

2.4 zip():并行迭代

3. 推导式创建序列

3.1 列表、字典、集合

3.2 元组:生成器推导式


1. 选择结构

注:条件表达式中,不能有赋值操作符 “=” 。

1.1 三元条件运算符

语法格式:条件为真时的值 if (条件表达式) else 条件为假时的值

n = input("请输入一个数字:")

print("n是小于10的数字" if int(n)<10 else "n是大于等于10的数字")

2. 循环结构

2.1 for 循环&可迭代对象遍历

2.1.1 定义

for 循环通常用于可迭代对象的遍历,语法格式如下:

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

2.1.2 可迭代对象

1. 序列:字符串、列表、元组、字典;

2. 迭代器对象(iterator),如 range 对象;

3. 生成器函数(generator);

4. 文件对象。

for x in (20,30,40):  #遍历元组
    print(x*3)
#产生序列:60 90	120

for x in "zzz001":  #遍历字符串
    print(x)
#产生序列:z z z 0 0 1

d = {'name':'老白','age':26,'address':'七侠镇'}
for x in d:           #遍历字典所有的key
    print(x)
for x in d.keys():    #遍历字典所有的key
    print(x)
for x in d.values():  #遍历字典所有的value
    print(x)
for x in d.items():   #遍历字典所有的"键值对"
    print(x)

#range对象
for i in range(10)     产生序列:0 1 2 3 4 5 6 7 8 9
for i in range(3,10)   产生序列:3 4 5 6 7 8 9
for i in range(3,10,2) 产生序列:3 5 7 9

2.2 break & continue 语句

2.2.1 break

break 语句可用于 while 和 for 循环,结束整个循环。若存在嵌套循环,break 语句只跳出最近一层循环。

2.2.2 continue

continue 语句用于结束本次循环,继续下一次。若存在嵌套循环,continue 应用于最近一层循环。

2.2.3 else语句

while、for 循环可附带一个else 语句(可选)。若for、while 语句未被break 语句结束,则执行else 子句,否则不执行。

2.3 循环代码优化

编写循环时,应遵守以下原则,避免不必要的低效计算:

1. 尽量减少循环内部不必要的计算;

2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提;

3. 局部变量查询较快,尽量使用局部变量。

2.4 zip():并行迭代

可通过 zip() 函数对多个序列进行并行迭代,在最短序列“耗尽”时就会停止。

names = ("小郭","老白","秀才","大嘴")
ages = (20,26,25)
jobs = ("杂役","跑堂","账房","厨子")

for name,age,job in zip(names,ages,jobs):
    print("{0}--{1}--{2}".format(name,age,job))

#上述代码功能类似于:
for i in range(3):
    print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))

'''
输出结果:
小郭--20--杂役
老白--26--跑堂
秀才--25--账房
'''

3. 推导式创建序列

推导式是一种由一个或者多个迭代器快速创建序列的方法,可将循环和条件判断结合,从而避免冗长的代码。

3.1 列表、字典、集合

#列表推导式
lt = [x*2 for x in range(1,20) if x%3==0]
print(lt)
#输出结果:[6, 12, 18, 24, 30, 36]


#字典推导式
my_text ="i love you, i love myself, i love the world"

char_count = {c:my_text.count(c) for c in my_text}
print(char_count)

char_count = {}       #相当于以下普通循环的功能
for c in my_text:
    char_count[c] = my_text.count(c)
print(char_count)
#输出结果:{'i': 3, ' ': 9, 'l': 5, 'o': 5, 'v': 3, 'e': 5, 'y': 2, 'u': 1, ',': 2, 'm': 1, 's': 1, 'f': 1, 't': 1, 'h': 1, 'w': 1, 'r': 1, 'd': 1}


#集合推导式
a = {x for x in range(1,100) if x%9==0}
print(a)
#输出结果:{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

3.2 元组:生成器推导式

元组没有推导式。使用小括号()得到的是“一个生成器对象”。生成器对象可迭代,也可用于循环,但只能运行一次。

gnt = (x for x in range(1,100) if x%9==0)
print(type(gnt))
for x in gnt:
    print(x,end=' ')

'''
输出结果:
<class 'generator'>
9 18 27 36 45 54 63 72 81 90 99 
'''

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值