Python学习——函数

函数定义

使用def定义函数。

def myfunction():
    print('my function')

myfunction()  #my function

参数

参数定义在函数“()”内,多个参数由“,”隔开。
可以定义默认参数,当没有值传递时使用默认参数。

def sum(num1=0,num2=1):
    result = num1 + num2
    print(result)

sum(3,5)  #8
sum() #1

关键字参数可以通过命名来指定其中的参数。(名字并非位置)

def func(a=1,b=2,c=3):
    print('a = ',a,'b = ',b,'c = ',c)

func(3,5)        #('a = ', 3, 'b = ', 5, 'c = ', 3)
func(a=8,c=10)   #('a = ', 8, 'b = ', 2, 'c = ', 10)
func(b=2,a=0)    #('a = ', 0, 'b = ', 2, 'c = ', 3)

可变参数使用“*”定义,可以一次传递多个参数。

def number(*num):
    print('个数:',len(num))  #6
    print('参数2:',num[1])   #2

number(1,2,3,4,5,6)

返回

返回值使用return。
如果没有写return或return没有搭配其他值,则返回None。

def sum(num1,num2):
    result = num1 + num2
    return(result)

print(sum(3,5))  #8

函数文档

记录程序的内容使其更容易理解,并且可以通过调用“.doc”查看。

def sum(num1,num2):
    '返回数值的和'
    result = num1 + num2
    return(result)

print(sum(3,5))  #8
print(sum.__doc__)  #返回数值的和

局部与全局变量

函数内定义的变量为局部变量。
可以使用global语句在函数内声明修改全局变量。

a=10
def func():
    global a
    a=5
    print(a)  #5

func()

内嵌函数

内部函数的作用域都在外部函数之内,故不能在外部函数外调用内部函数

def func():
    print('调用func()')
    def func1():
        print('调用func1()')
    func1()

func()

#调用func()
#调用func1()

闭包

def funx(x):
    def funy(y):
        return x * y
    return funy

print(funx(8)(5))    #40

匿名函数

使用lambda表达式,冒号前是变量,冒号后是表达

def ds(x):
    return 2 * x + 1
print(ds(5))  # 11

lambda x : 2 * x + 1
g = lambda x : 2 * x + 1
print(g(5))   # 11

内置函数

filter过滤器,返回为True的内容

def odd(x):
    return x % 2

temp = range(10)
show = filter(odd,temp)
print(list(show))   #[1, 3, 5, 7, 9]

使用匿名函数,一个语句实现

print(list(filter((lambda x : x % 2 ),range(10)))) #[1, 3, 5, 7, 9]

递归

满足以下两点:

(1)有调用函数自身的行为
(2)有一个正确的返回条件

修改默认递归层数

import sys
sys.setrecursionlimit(1000)

递归实现数字阶乘求解

def factorial(n):
    if n == 1:
        return 1
    else:
        return n*factorial(n-1)  
print(factorial(5))  #120
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值