Python学习笔记

Python学习第四天
推荐学习网站:廖雪峰免费教程

Python函数

def定义函数

#def 函数名 (参数):
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

空函数什么都不做,用pass语句,否则会出错。

if age >= 18:
    pass

调用函数需要知道函数名和参数。
位置参数就是定义函数中的正常顺序,按顺序传递参数。
默认参数就是下列的n=2。调用时可修改n的值,不修改就默认是2

def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

一般把变化大的参数放前面,默认参数放后面。有多个默认参数时,按顺序提供默认参数。
可变参数需要在参数前面加*号。
递归函数

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

迭代

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b

带下标:

>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

两个元素

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print(x, y)
...
1 1
2 4
3 9

列表生成式

>>> list(range(1, 11))
#生成1~10的数字
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

生成器 (generator)

>>> L = [x * x for x in range(10)]
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x1022ef630>
#L是一个list,g是一个生成器

generator的值需要一个一个打出来,可以用next

>>> next(g)
0
>>> next(g)
1
>>> next(g)
4
>>> next(g)
9
>>> next(g)
16
.......

也可以用for循环

>>> for n in g:
...     print(n)

函数用法,其中要输出的值存在b中。

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b     #print(b)
        a, b = b, a + b
        n = n + 1
    return 'done'

迭代器可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
列表、字典、字符串不是迭代器,但是可以使用iter()函数变成interator。Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值