Python入门代码笔记—-2.函数

2018年2月24日 0 条评论 4 次阅读 0 人点赞
# hex()函数可以把一共整数转换成十六进制字符串
num = 1
str = hex(num)
print(str)
# 定义一个函数
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
print(my_abs(-3))
# 定义一共空函数
def none():
    pass
# 加入参数检查
def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('error type')
    if x >= 0:
        return x
    else:
        return -x
print(my_abs(1))
# 函数返回多个值其实是返回了一个tuple类型
import math
def move(x, y, step, angle=0):
    nx = x+step*math.cos(angle)
    ny = y-step*math.cos(angle)
    return nx, ny
x, y = move(100, 100, 60, math.pi/6)
print(x, y)
r = move(100, 100, 60, math.pi/6)
print(r)
# ex1.计算平方根
def quadratic(a, b, c):
    t = math.pow(b, 2)-4*a*c
    t = math.sqrt(t)
    x1 = (-b+t)/(2*a)
    x2 = (-b-t)/(2*a)
    return x1, x2
# 测试:
print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))
print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))
if quadratic(2, 3, 1) != (-0.5, -1.0):
    print('测试失败')
elif quadratic(1, 3, -4) != (1.0, -4.0):
    print('测试失败')
else:
    print('测试成功')
# 默认参数
def pow(x, n=2):
    i = 0
    while i < 2:
        x = x*x
        i = i+1
    return x
print(pow(2))
# 不按顺序提供默认参数时要写上函数名,如enroll('Adam', 'M', city='Tianjin')
# 可变参数
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum+n
    return sum
print(calc(1, 2, 3))
print(calc(*[1, 2, 3]))
# 关键字参数
# 可变参数允许你传入0个或任意个参数,
# 这些可变参数在函数调用时自动组装为一个tuple。
# 而关键字参数允许你传入0个或任意个含参数名的参数,
# 这些关键字参数在函数内部自动组装为一个dict。
def person(name, age, **kw):
    if 'city' in kw:
        pass
    print('name:', name, 'age:', age, 'other:', kw)
person('a', 2)
person('Bob', 35, city='Beijing')
# 限制关键字参数的名字
def person(name, age, *, city, job):
    print(name, age, city, job)
person('jack', 24, city='beijing', job='abc')
def person(name, age, *, city='Beijing', job):
    print(name, age, city, job)
person('Jack', 24, job='Engineer')
# 参数组合
def f1(a, b, c=0, *args, **kw):
    print('a=', a, 'b=', b, 'c=', c, 'args=', args, 'kw=', kw)
def f2(a, b, c=0, *, d, **kw):
    print('a=', a, 'b=', b, 'c=', c, 'd=', d, 'kw=', kw)
args = (1, 2, 3, 4)
kw = {'d': 99, 'x': '#'}
f1(*args, **kw)
args = (1, 2, 3)
kw = {'d': 88, 'x': '#'}
f2(*args, **kw)
# ex
def product(nums, *kw):
    ans = nums
    for x in kw:
        ans = ans*x
    return ans
# 测试
print('product(5) =', product(5))
print('product(5, 6) =', product(5, 6))
print('product(5, 6, 7) =', product(5, 6, 7))
print('product(5, 6, 7, 9) =', product(5, 6, 7, 9))
if product(5) != 5:
    print('测试失败1!')
elif product(5, 6) != 30:
    print('测试失败2!')
elif product(5, 6, 7) != 210:
    print('测试失败3!')
elif product(5, 6, 7, 9) != 1890:
    print('测试失败4!')
else:
    try:
        product()
        print('测试失败5!')
    except TypeError:
        print('测试成功!')

DLKKILL

这个人太懒什么东西都没留下

文章评论(0)