程序员

Python基础学习3:函数

2017-10-02  本文已影响25人  Andy_Ron

调用函数

定义函数

def my_abs(x):
    if x>=0:
        return x
    else: 
        return -x
def nop():
    pass
def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x
import math

def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0
>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)

Python的函数返回多值其实就是返回一个tuple。

函数的参数

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

xn,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数xn

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L
    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum
>>> calc(1, 2)
5

>>> nums = [1, 2, 3]
>>> calc(*nums)
14

*nums表示把nums这个list的所有元素作为可变参数传进去。

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
>>> person('Michael', 30)
name: Michael age: 30 other: {}
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。

递归函数

参考:《Python教程》

上一篇 下一篇

猜你喜欢

热点阅读