python复习100天

python复习第6天:迭代器与生成器

2020-03-10  本文已影响0人  潮办公

title: python复习100天--第6天
date: 2020-03-10 14:00:24
tags:
- python
- 基础
categories: python复习
top: 7


迭代器与生成器

迭代器

list1 = list(range(3))
iter1 = iter(list1)  # 列表转迭代
print(next(iter1))  # 访问下一个迭代元素
print(next(iter1))  # 访问下一个迭代元素
print(next(iter1))  # 访问下一个迭代元素
"""
# 输出结果
0
1
2
"""
list1 = list(range(3))
iter1 = iter(list1)  # 列表转迭代
for i in iter1:
    print(i)
"""
# 输出结果
0
1
2
"""

生成器

def fun1():
    """
    定义一个简单的函数
    :return: 不用return,用yield的来收集数据
    """
    for i in range(10):
        yield i


s = fun1()
while True:
    print(next(s))
    
    
"""
# 输出结果
0
1
2
3
4
5
6
7
8
9
Traceback (most recent call last):
  File "/home/tlntin/PycharmProjects/study/第二天.py", line 12, in <module>
    print(next(s))
StopIteration
"""

函数

def fun1():
    """
    我是一个函数
    :return:
    """
    print('hello world')


fun1()  # 调用函数

"""
# 输出结果
hello world
"""

函数参数

def fun1(a, b):
    """
    我是一个函数
    用来计算长方体面积
    :return:
    """
    print('长方体面积为:', a*b)


fun1(2, 3)  # 调用函数

"""
# 输出结果
长方体面积为: 6
"""
def fun1(a, b):
    """
    我是一个函数
    用来计算长方体面积
    :return:
    """
    print('长为:{}, 宽为:{},长方体面积为:'.format(a, b), a*b)


fun1(b=2, a=3)  # 调用函数

"""
# 输出结果
长为:3, 宽为:2,长方体面积为: 6
"""
def fun(r, pi=3.14):
    """
    计算圆的面积
    :param r:圆的半径,float,int类型
    :param pi:圆周率,这里给了一个默认参数3.14
    :return:
    """
    s = pi * r**2
    print('圆的面积为:', s)


fun(2)
fun(2, 3.1415926)
"""
# 输出结果
圆的面积为: 12.56
圆的面积为: 12.5663704
"""
def fun(*args):
    """
    展示收集参数收集元组
    :return:
    """
    print('你输入的参数有:', args)


fun(1)
fun(1, 2, 3)
"""
# 输出结果
你输入的参数有: (1,)
你输入的参数有: (1, 2, 3)
"""
def fun(**args):
    """
    展示收集参数收集元组
    :return:
    """
    print('你输入的参数有:', args)


fun(a=1, b=2, c=3)
"""
# 输出结果
你输入的参数有: {'a': 1, 'b': 2, 'c': 3}
"""

函数返回

def fun(r, pi=3.14):
    """
    计算圆的面积
    :param r:圆的半径,float,int类型
    :param pi:圆周率,这里给了一个默认参数3.14
    :return: 返回s,即圆的面积
    """
    s = pi * r**2
    return s
    print('我是return后面的内容')


s = fun(2)
s2 = fun(2, 3.1415926)
print(s, s2)
"""
# 输出结果
12.56 12.5663704
"""
def fun(r, pi=3.14):
    """
    计算圆的面积
    :param r:圆的半径,float,int类型
    :param pi:圆周率,这里给了一个默认参数3.14
    :return: 返回s,即圆的面积
    """
    s = pi * r**2


s = fun(2)
s2 = fun(2, 3.1415926)
print(s, s2)
"""
# 输出结果
None None
"""
def fun(r, pi=3.14):
    """
    计算圆的面积
    :param r:圆的半径,float,int类型
    :param pi:圆周率,这里给了一个默认参数3.14
    :return: 返回s,即圆的面积
    """
    s0 = pi * r**2
    yield s0
    print('我是yield后面的内容')
    s1 = s0 + 1
    yield s1


s_list = fun(4)
print(next(s_list))
print(next(s_list))
"""
# 输出结果
50.24
我是yield后面的内容
51.24
"""

匿名函数

fun1 = lambda x, y: x+y  # 定义一个lambda匿名函数,传给变量fun1暂时储存
s_list = fun1(1, 2)


def fun2(x, y):  # 这个和上面的lambda一样
    return x+y


s_list2 = fun2(2, 2)

print(s_list, s_list2)
"""
3 4
"""
list1 = list(range(1, 10))
list2 = list(map(lambda x: x**2, list1))  # 计算Lst1的元素的平方后的结果,返回一个map对象,转成List列表
print(list2)
"""
[1, 4, 9, 16, 25, 36, 49, 64, 81]
"""
上一篇 下一篇

猜你喜欢

热点阅读