python123自定义幂函数_python基础之函数

本文详细介绍了Python中的函数定义、调用及其相关概念,包括普通参数、默认参数、动态参数、关键字参数、缺省参数、不定长参数、递归函数、匿名函数以及内置函数的使用。通过示例展示了函数的定义、调用、参数传递、作用域和返回值,强调了函数在提高代码复用性和模块化中的重要性。
摘要由CSDN通过智能技术生成

python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义一个函数

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

函数式编程和面向过程编程的区别:

函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可

面向对象:对函数进行分类和封装,让开发“更快更好更强...”

你可以定义一个由自己想要功能的函数,以下是简单的规则:

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法

def functionname( parameters ):

"函数_文档字符串"

function_suite

return [expression]

默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。

请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。

return None可以简写为return。

定义和使用

def 函数名(参数):

...

函数体

...

返回值

函数的定义主要有如下要点:

def:表示函数的关键字

函数名:函数的名称,日后根据函数名调用函数

函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...

参数:为函数体提供数据

返回值:当函数执行完毕后,可以给调用者返回数据。

返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

实例

以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。

def printme( str ):

"打印传入的字符串到标准显示设备上"

print str

return

空函数

如果想定义一个什么事也不做的空函数,可以用pass语句:

def nop():

pass

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

小结

定义函数时,需要确定函数名和参数个数;

如果有必要,可以先对参数的数据类型做检查;

函数体内部可以用return随时返回函数结果;

函数执行完毕也没有return语句时,自动return None。

函数可以同时返回多个值,但其实就是一个tuple。

函数调用

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

如下实例调用了printme()函数:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 定义函数

def printme( str ):

"打印任何传入的字符串"

print str;

return;

# 调用函数

printme("我要调用用户自定义函数!");

printme("再次调用同一函数");

以上实例输出结果:

我要调用用户自定义函数!

再次调用同一函数

函数的有三中不同的参数:

普通参数

默认参数

动态参数

普通参数:

# ######### 定义函数 #########

# name 叫做函数func的形式参数,简称:形参

def func(name):

print name

# ######### 执行函数 #########

# ‘wupeiqi‘ 叫做函数func的实际参数,简称:实参

func(‘wupeiqi‘)

普通参数

默认参数:

def func(name, age = 18):

print "%s:%s" %(name,age)

# 指定参数

func(‘wupeiqi‘, 19)

# 使用默认参数

func(‘alex‘)

注:默认参数需要放在参数列表最后

默认参数

动态参数:

def func(*args):

print args

# 执行方式一

func(11,33,4,4454,5)

# 执行方式二

li = [11,2,2,3,3,4,54]

func(*li)

动态参数

def func(*args):

print args

# 执行方式一

func(11,33,4,4454,5)

# 执行方式二

li = [11,2,2,3,3,4,54]

func(*li)

动态参数

def func(*args, **kwargs):

print args

print kwargs

按值传递参数和按引用传递参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。

Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 可写函数说明

def changeme( mylist ):

"修改传入的列表"

mylist.append([1,2,3,4]);

print "函数内取值: ", mylist

return

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值