控制语句
可迭代对象
- 序列。包含:字符串、列表、元组
- 字典
- 迭代器对象(iterator)
- 生成器函数(generator)
- 文件对象
遍历字符串中的字符
for x in'zxc007':
print(x)
遍历字典
d = {'name':'梁朝伟','age':16,'address':'HongKong'}
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 对象
range 对象是一个迭代器对象
,用来产生指定范围的数字序列。
格式为: range(start, end [,step])
利用嵌套循环打印九九乘法表
for m in range(1,10):
for n in range(1,m+1):
k = m*n
print(m,'*',n,'=',k,end = '\t')
print() #换行
更为简洁的写法
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() #换行
r1= dict(name="高小一",age=18,salary=30000,city="北京")
r2= dict(name="高小二",age=19,salary=20000,city="上海")
r3= dict(name="高小三",age=20,salary=10000,city="深圳")
tb = [r1,r2,r3]
for x in tb:
if x.get("salary")>15000:
print(x)
使用 zip()并行迭代
我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。
# 测试zip()并行迭代
names = ("高淇","高老二","高老三","高老四")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
也可以这样写
names = ("高淇","高老二","高老三","高老四")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for i in range(3):
print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))
列表推导式
列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ]
或者:{表达式 for item in 可迭代对象 if 条件判断}
#列表推导式
y = [x*2 for x in range(1,50) if x%5==0]
print(y)
y = []
for x in range(1,50):
if x%5==0:y.append(x*2)
print(y)
cells = [(row,col) for row in range(1,10) for col in range(1,10)] #可以使用两个循环
print(cells)
字典推导式
字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}
类似于列表推导式,字典推导也可以增加 if 条件判断、多个 for 循环。
#字典推导式
my_text = "to be or not to be, that's a question"
char_count = { c:my_text.count(c) for c in my_text}
print(char_count)
集合推导式
集合推导式生成集合,和列表推导式的语法格式类似:
{表达式 for item in 可迭代对象 }
或者:
{表达式 for item in 可迭代对象 if 条件判断}
#集合推导式
b = {x for x in range(1,100) if x%9==0}
print(b)
生成器推导式(生成元组)
元组没有推导式。一个生成器只能运行一次。
函数用法和底层分析
Python 中函数分为如下几类:
- 内置函数 我们前面使用的 str()、list()、len()等这些都是内置函数,可以拿来直接使用。
- 标准库函数 通过 import 语句导入库
- 第三方库函数
- 用户自定义函数
定义函数的语法
def 函数名 ([参数列表]) :
‘’‘文档字符串’’’ 函数体/若干语句