Day5.

for循环

遍历可迭代对象:序列(字符串,列表,元组),字典,迭代器对象,生成器函数

for i in 'abcdef':
    print(i)
# 偶数的累加和
s1 = 0
s2 = 0
for i in range(101):
    if i % 2 == 0:
        s1 += i
    else:
        s2 += i
print(s1, s2)

嵌套循环

一个循环体内嵌入另外一个循环

for i in range(5):
    for j in range(5):
        print(j,end='')
    print()

break语句

break语句可用于while和for语句,结束整个循环,如果在嵌套循环内,只结束最近的一层循环

continue语句

结束本次循环,继续下一次

else语句

while,for循环语句可以附带一个else语句(可选),如果循环语句没有被break结束,则会执行else语句,格式如下:

while 条件表达式:
        循环体

else:

语句

循环代码优化

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

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

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

其他优化手段:

1.连接多个字符串,使用join不使用+

2.列表进行元素插入和删除,尽量在列表尾部操作

ZIP并行迭代

推导式

列表推导式

l1 = [x for x in range(11)]
print(l1)
print('********************')
l2 = []
for i in range(11):
    l2.append(i)
print(l2)
print('********************')

字典推导式

my_text = 'i love you,i love sxt,i love zf'
l3 = {c: my_text.count(c) for c in my_text}
print(l3)

集合推导式

l4 = {x for x in range(11)}
print(l4)

迭代器推导式(生成元组)

a = (x for x in range(1, 100) if x % 9 == 0)
print(a)

我们发现提示的是“一个生成器对象”。显然,元组是没有推导式的

元组没有推导式,一个生成器只能生成一次,第一次迭代可以得到数据,第二次迭代数据就没有了

函数的用法

函数是可重复的程序代码块

分为内置函数,标准库函数,第三方库函数,自定义函数

语法:

def 函数名(参数列表):

        函数体

形参实参,文档字符串

def printmax(a, b):
    '''比较大小'''
    if a > b:
        print(a, '较大值')
    else:
        print(b, '较大值')


printmax(10, 20)
help(printmax.__doc__)

返回值

return返回值要点:

1.如果函数中包含return语句,则结束函数执行并返回值

def add(a, b):
    print('计算两个数的和:{0},{1},{2}'.format(a, b, a + b))
    return a + b

2.如果函数体中不包含retur语句,则返回None

def test02():
    print('a')
    print('b')
print(test02())

3.要返回多个返回值,使用列表,元组,字典,集合将多个值存起来即可

def test03(a, b, c, d):
    return [a * 10, b * 10, c * 10, d * 10]


print(test03(1, 2, 3, 4))

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值