python基础第五节

for 循环

for 变量 in可迭代对象:

        循环体语句

可迭代对象包括:

序列 字典  文件对象  迭代器对象iterator  生成器函数 generator

range对象  range(start, end,step)

打印九九乘法表

for m in range(1,10):
    for n in range(1,m+1):
        print("{0}*{1}={2}".format(m,n,m*n),end="\t")
    print()

break跳出循环 continue 继续下一个循环

for while 语句没有被break中断,则会执行else子句,否则不执行

循环代码的优化

遵守三个原则可以大大提高运行效率:

(1)尽量减少循环内部不必要的计算

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

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

其他优化手段:

(1)连接多个字符串用join()而不使用+   str.join(sequence)  用str链接sequence里面的元素序列,生成新的字符序列

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

names={"老大","老二","老三"}
ages={"11","12","13"}
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(name[i],ages[i],jobs[i])

同时遍历多个列表

推导式创建序列

推导式是从一个或者多个迭代去快速创建序列的一种方法,可以将循环和条件判断相结合,

列表推导式: [表达式 for item in 可迭代对象]

或者{表达式 for item in 可迭代对象 if 条件判断}

字典推导式:{key_expression : value_expression for item in 可迭代对象}

my_test = "i love you, i love congcong, i love coco"
#不使用字典推导式 
char_count ={}  #初始化一个字典,不然在for循环里每次循环就新建一个char_count
for c in my_test:

    char_count[c] = my_test.count(c)
#   print(c)

#使用字典推导式char_count = {c:my_test.count(c) for c in my_test}
print(char_count)

集合推导式

和列表推导式语法类似:   {表达式 for item in 可迭代对象 }

生成器推导式  用来生成元组 

一个生成器只能运行一次,第一迭代可以得到数据,第二次迭代就没有数据了

(x for x in range(1,100)if x%9 ==0) 得到一个生成器对象  生成器是一个可迭代的对象

函数

函数是可重用的程序代码块,实现代码复用 实现代码一致性。

分类:内置函数 标准库函数 第三方库函数 用户自定义函数

def 函数名(参数列表):

        “文档字符串”

        函数体、若干语句

函数也是对象

实参 形参

‘’‘ 文档字符串 ’‘’  函数的注释

使用help(函数名.__doc__)打印该函数的文档字符串

返回值:结束函数执行并返回值

函数体不包含return则返回None值

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值