我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python 函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python 函数

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

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


定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:


1.减少重复代码

2.使程序变的可扩展

3.使程序变得易维护


语法定义

#函数名
def sayhi():
    print("Hello, I'm nobody!")

 调用函数

sayhi()

执行输出

Hello, I'm nobody!


下面有2个函数

def test1():
    print('in the test1')
    #记录日志
    with open('a.txt','a+') as f:
        f.write('end action\n')

def test2():
    print('in the test2')
    # 记录日志
    with open('a.txt','a+') as f:
        f.write('end action\n')

test1()
test2()

可以看出记录日志部分,代码重复了。那么重复的代码,可以封装成一个函数,方便调用。


优化后的代码如下:

#记录日志
def logger():
    with open('a.txt','a+') as f:
        f.write('end action\n')

def test1():
    print('in the test1')
    logger()

def test2():
    print('in the test2')
    logger()

test1()
test2()

执行程序,查看日志文件

end action

end action


下面来了一个需求,加上记录时间

只需要更改logger()函数,就可以让其他函数调用时,自动生效。

import time
#记录日志
def logger():
    #时间格式
    time_format = '%Y-%m-%d %X'
    #strftime获取当前时间,应用定义好的时间格式
    time_current = time.strftime(time_format)
    with open('a.txt','a+') as f:
        f.write('%s end action\n' %time_current)

def test1():
    print('in the test1')
    logger()

def test2():
    print('in the test2')
    logger()

test1()
test2()

查看文件内容

end action

end action

2018-02-25 14:56:43 end action

2018-02-25 14:56:43 end action


函数返回值

要想获取函数的执行结果,就可以用return语句把结果返回


举个例子:

def test1():
    print('in the test1')
    return 0
    print('test end')

test1()

执行输出

in the test1


为什么没有输出test end ?

注意:


函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束

如果未在函数中指定return,那这个函数的返回值为None

函数的返回值,有3种情况

def test1():
    print('in the test1')

def test2():
    print('in the test2')
    return 0
def test3():
    print('in the test3')
    return 1,'hello',['alex','wupeiqi'],{'name':'alex'}

x=test1()
y=test2()
z=test3()
print(x)
print(y)
print(z)

执行输出

in the test1

in the test2

in the test3

None

0

(1, 'hello', ['alex', 'wupeiqi'], {'name': 'alex'})


总结:

1.当函数没有返回值时,默认返回None

2.函数只有一个返回值,返回一个

3.函数有多个值,返回一个元组


函数的返回值,可以是任意对象,比如数字,列表,函数...


函数为什么要有返回值呢?

某些情况下,调用函数的时候,需要知道函数的返回值。后续的程序逻辑会根据返回值,做进一步判断。

比如一个用户登录函数,登录成功,返回true,否则返回false


函数参数

函数在执行的时候,也可以带参数

#形参
def test(x,y):
    print(x,y)

#实参
test(1,2)

执行输出 1 2


形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。

实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。


形参和实参 按照顺序,是一一对应的,个数不能多。


关键参数

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可。

def test(x,y):
    print(x,y)

test(y=1,x=2)

执行输出 2 1


函数执行,同时用 关键参数和位置参数

def test(x,y):
    print(x,y)

test(x=1,2)

执行输出

SyntaxError: positional argument follows keyword argument

为什么呢?

关键参数必须放在位置参数之后。

def test(x,y):
    print(x,y)

test(1,y=2)

执行输出 1 2 


默认参数

def test(x,y=2):
    print(x,y)

test(1)

执行输出 1 2 


由于y已经有了一个默认参数,所以执行的时候,只传一个参数即可。


默认参数也可以传参数

def test(x,y=2):
    print(x,y)

test(1,3)

执行输出 1 3


默认参数的特点:

调用函数的时候,默认参数非必填项


用途:提前固定参数


非固定参数

def test(*args):
    print(args)

test(1,2,3,4,5)

执行输出 (1, 2, 3, 4, 5)


*args 表示一个 非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数


def test(x,*args):
    print(x)
    print(args)

test(1,2,3,4,5)

执行输出

1

(2, 3, 4, 5)


把N个关键字参数,转换成字典的方式

def test(**kwargs):
    print(kwargs)

test(name='zhang',age=12)

执行输出

{'name': 'zhang', 'age': 12}


python中,函数的参数除了最基本的必选参数,默认参数外,主要包含以下几种特殊的参数类型:可变参数,关键字参数,命名关键字参数。它们的存在,使得函数的参数更加自由。在函数定义时,

他们定义的顺序为:必选参数、默认参数、可变参数、命名关键字参数和关键字参数


匿名函数 

匿名函数就是不需要显式的指定函数


使用 lambda 来创建匿名函数。


lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

lambda函数只能写一行


应用场景

如果一个方法,整个程序只用一次,不会涉及其他程序调用。

没有必要单独写一个函数,函数的重要功能就是重复使用。

这种情况下,可以写一个匿名函数,用完就释放了。


语法

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression


举个例子

def calc(n):
    return n ** n

print(calc(10))

换成匿名函数

calc = lambda n: n ** n
print(calc(10))

执行输出

10000000000


再复杂一点的

def calc(n):
    print(n)
    for i in range(n):
        print(i)

print(calc(10))

这个就没法转成匿名函数了


匿名函数还可以用于三元运算

calc = lambda n:3 if n<4 else n
print(calc(10))

执行输出10

因为n小于3,输出n,那么n就是10


匿名函数很少单独使用,一般和其他函数配合使用

比如过滤大于5的数字

res = filter(lambda n:n>5,range(10))
for i in res:
    print(i)

执行输出

6

7

8

9


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python 函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义: 函数是指将一
2023-01-30

python 函数

自定义函数的规则:你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文
2023-01-31

Python函数

1.Python函数基础2.Python函数中的参数3.Python模块
2023-01-30

Python-函数

一.定义函数def 函数名([形式参数]):    函数体                    函数要执行的程序    return 返回值        如果没有return返回,默认返回值为None;函数名([实参])注意:有返回值
2023-01-31

python - 函数

*********************函数****************************                                                     ---乐高积木之函数定义函数•
2023-01-31

Python 函数调用&定义函数&函数参

一.函数调用在python中内置了很多函数,我们可以直接调用 。想要调用函数首先要知道函数的名称及包含的参数,还可以通过查看python官方的文档:https://docs.python.org/3/library/functions.ht
2023-01-30

[Python] 函数与函数编程

1. 函数使用def语句可定义函数:def add(x, y): return x + y函数体就是在调用函数时所执行的一系列语句。调用函数的方法是在函数名称后面加上参数。参数的顺序必须与函数定义匹配,否则会引发TypeError异常
2023-01-31

函数参数python

函数中的默认参数,调用的时候可以给参数 赋值,也可以使用默认值 修改add函数如下add()函数第一个参数没有默认值,第二个函数b默认值是3,在调用函数的时候,只赋予了函数实际参数为2,也就是说该实际参数是2赋值给a,a+b后函数执行结果为
2023-01-31

python函数参数

#没有参数a = 123def xy(): print(a)xy()#执行结果123#一个参数def xy(a): print(a)xy('nihao')#执行结果nihao#多个参数def xy(a1,a2): prin
2023-01-30

python resample() 函数

以下是利用Python进行数据分析中低十章对resample方法具体解释,不过how参数已经过时 #把流量数据每3分钟聚合一次def flowdata_fusion_3(temp_volume_series, temp_time_serie
2023-01-31

#12 Python函数

前言矩形的面积 S = ab,只要知道任一矩形的的长和宽,就可以带入上式求得面积。这样有什么好处呢?一个公式,适用于全部矩形,一个公式,重复利用,减少了大脑的记忆负担。像这类用变量代替不变量的思想在数学中称为函数,Python中,也有类似的
2023-01-30

Python - def 函数

1.def 函数如果我们用代码实现了一个小功能,但想要在程序代码中重复使用,不能在代码中到处粘贴这些代码,因为这样做违反了软件工程中 DRY原则。 Python 提供了 函数功能,可以将我们这部分功能抽象成一个函数以方便程序调用,或者提供给
2023-01-30

Python str.strip()函数

下面的英文说明是官方给出: string.strip(s[, chars]) Return a copy of the string with leadingand trailing characters removed. If chars
2023-01-31

python format函数

在Python 3.0中,%操作符通过一个更强的格式化方法format()进行了增强。对str.format()的支持已经被反向移植到了Python 2.6在2.6中,8-bit字符串和Unicode字符串都有一个format()方法,这个
2023-01-31

python 函数 enumerate

python中enumerate方法,返回一个enumerate类型。参数一般是可以遍历的的东西,比如列表,字符串什么的。python文档中是这么说的:enumerate(sequence, [start=0])Return an enum
2023-01-31

python-while-函数

while循环(只有在条件表达式成立的时候才会进入while循环)while 条件表达式:  passwhile 条件表达式:  passelse:  pass不知道循环次数,但确定循环条件的时候用while# 如果说年利率是6%,存入10
2023-01-30

python: return 函数

Syntax当 不设置 return参数项 时,默认 返回None 而 不是False 。当 连 return 都不写 时,默认 return None 。return参数项是否返回返回值无-有None有无有None有有有参数项Testde
2023-01-31

Python exit()函数

调用exit()函数,终止Python程序。 exit(num) 名称说明备注num程序退出类型,整型参数可省略的参数。通常情况下0表示程序正常退出,1表示程序遇到了某个错误而导致退出。实际运用中可以使用任何整型数据,表示不同的自定义错误类
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录