美文网首页
Chapter3 函数进阶

Chapter3 函数进阶

作者: 木果渣 | 来源:发表于2017-12-11 22:57 被阅读0次
##basic func
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

print(my_abs(-99))


##nothing
def nop():
    pass
    

##params check
def new_my_abs(x):
    if not isinstance(x, (int, float)):
##      raise TypeError('bad operand type')
        return
    if x >= 0:
        return x
    else:
        return -x

print(new_my_abs('A'))


##default params
def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L
    

##return mutiple values
import math

def move(x, y, step, angle = 0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

print(move(100, 100, 30, math.pi / 6))  
point = move(100, 100, 30)
print('x: ', point[0],  ';y: ', point[1])   
    
    
##参数numbers接收到的是一个tuple
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum += n * n
    return sum
    
print(calc(1, 2, 3))
print(calc())


##key params
##可变参数在函数调用时自动组装为一个tuple
def person(name, age, **kw):
    print('{name:',name, ',age:', age, ',other', kw, '}')
print(person('Alice', 15))
##{name: Bob ,age: 15 ,other {'city': 'Beijing'} }
print(person('Bob', 15, city = 'Beijing'))


##限制关键字参数的名字
def person_2(name, age, *, city):
    print(name, age, city)
person_2('HaiYa', 12, city='ShangHai')
##ERROR:    person_2('HaiYa', 12, 'ShangHai')


##parictise
##x*y1*y2.....
def product(x, *y):
    num = x
    for y_x in y:
        num *= y_x
    print(num)
    
product(1)
product(1,2,3,4,5,6)

    
##ax^2 + bx + c = 0
import math

def quadratic(a, b, c):
    if a == 0:
        raise TypeError('a is 0!')
    num = b ** 2 - 4 * a *c 
    if num < 0:
        raise TypeError('b^2 - 4ac < 0')
    elif num > 0:
        x_1 = (math.sqrt(num) - b)/(a * 2)
        x_2 = (- math.sqrt(num) - b)/(a * 2)
        return x_1, x_2
    return  (- b)/(a * 2)
    
print(quadratic(1, 8, 2))
print(quadratic(1, 2, 1))
print(quadratic(1, 2, 4))

    

相关文章

  • Chapter3 函数进阶

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • Python函数高阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • 17 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • 07 C函数

    1、why函数? 2、函数进阶 3、递归函数

  • 06.1.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

  • 11.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

  • 10.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

  • [Python基础]D10 函数进阶

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

网友评论

      本文标题:Chapter3 函数进阶

      本文链接:https://www.haomeiwen.com/subject/jgowixtx.html