Python基础之二函数

# coding: utf-8
            ###############   调用函数     #############
#调用abs函数
a = abs(100)
print(a)

#调用max函数
a = max(1, 2)
print(a)
a = max(1, 2, 3, 4, 5, 6)
print(a)

#数据类型转换
a = int('23')
print(a)
a = float('213.3')
print(a)
a = str(1324234)
print(a)
a = bool(1)
print(a)
a = bool('')
print(a)
a = abs
a = a(-1)
print(a)
            ###############   定义函数     #############
'''
定义一个函数使用def语句,一次写出函数名,括号,括号中的参数和冒号然后在缩进块中编写函数体,返回值用return
'''
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
a = my_abs(-3)
print(a)
#空函数
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
print(my_abs(8))

#返回多个值
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, 60, math.pi / 6))

            ###############   函数的参数     #############

'''
    定义函数时,把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,
以及返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。
    Python中出了正常定义必要参数外,还可以使用默认参数,可变参数和关键字参数,使得函数定义歘来的接口,不但能处理复杂
参数,还可以简化调用者的代码
'''

#位置参数
def power(x):
    return x * x
print(power(5))

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

#默认参数 注意:默认参数必须指向不变的对象
def power(x, n = 2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * n
    return s
print(power(9))

#可变参数 也就是传入的参数的个数是可变的, 允许你传入0个或任意个参数,这些可变参数在函数调用的时候自动组装成一个tuple
def calc(numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
print(calc((1, 3, 5, 6, 67)))
print(calc([4, 5, 6, 7, 56]))

def calc(*number):
    sum = 0
    for n in number:
        sum = sum + n * n
    return sum
print(calc(4, 4, 6, 23))

#关键字参数  允许你传入0或者多个喊参数名的参数, 这些关键字参数在函数内部组装为一个dict
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
print(person("张三", 34))

extra = {'city': 'Beijing', 'job': 'engineer'}
person('Jack', 34, **extra)

#命名关键字参数
def person(name, age, **kw):
    if 'city' in kw:
        print('有city')
    if 'job' in kw:
        print('有job参数')
    print('name:', name, 'age:', age, 'other:', kw)


    ###############   递归函数     #############

'''
在函数内部,可以调用其他函数, 如果函数内部调用自身,这个函数就是递归函数
'''
def fact(n):
    if n == 1:
        return 1
    return n * fact(n - 1)
print(fact(45))

更多精彩内容访问个人站点www.gaocaishun.cn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值