前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python自定义函数

Python自定义函数

作者头像
数据山谷
发布于 2020-12-08 03:27:10
发布于 2020-12-08 03:27:10
84600
代码可运行
举报
文章被收录于专栏:数据山谷数据山谷
运行总次数:0
代码可运行
Python函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码块

我们之前使用的比如print(),就是Python为我们提供好的内建函数,但是你也可以自己创建函数,而这种函数呢,我们将之称为自定义函数。

Python干净利索,简单直接。非常注重代码的可读性,非常适合多人参与的项目。它具备了比以前传统的脚本语言更好的可重用性,维护起来也更加方便。

函数就是当你如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,那么这就是函数。

知道了函数是干什么用的,我们就开始自定义一个函数,也就是制作一个可重复使用的'工具'。

代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def make(a):
    '''花里胡哨一顿操作'''
    return '一瓶%s' %a
a = make('果汁')
b = make('果汁')
print(a)
print(b)
一瓶果汁
一瓶果汁
这样就得到两瓶果汁,这个'工具'太厉害了

现在我们来看一下这个代码中都有什么: 1.def是python的关键字,是专门用来自定义函数的。 2.make是函数名,用来以后调用的。 3.make(a)中的a为函数的参数,为函数里面的操作提供数据。 4.return用来返回一个对象,这个对象可以是函数处理的结果也可以是状态等等。

定义函数的关键字为def,函数名称可以随意取,但应该避免Python关键字(keywords);通常习惯上Python函数命名都是小写字母+下划线组合,例如sum_all,max_all,print_cc。

函数名称后有个跟屁虫是一对单括号(),如果有参数要放到括号中,多个参数下要用英文状态下的逗号隔开,句末一定要英文状态下冒号结束,不然你就该看前面提到的异常处理喽。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#无参的函数
def hello():
    return 'Hello World!'
a = hello()
print(a)
执行结果:
Hello World!
#多参的函数
def sum_all(a,b,c):
    return a+b+c
m_sum = sum_all(10,20,30)
print(m_sum)
执行结果:
60

函数的复用

为什么要创建、调用函数而不是直接写出具体指令呢? 有现成的为什么不用呢,有一个现成函数可以大大降低程序员的工作量。实现功能的第一反应应该是:是否有现成的函数/方法/模块 可用?而不是重复的造轮子。 调用已经写好的函数,就是一种减少[自造轮子],提高代码复用性的方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def yes_no(x):
    if x % 2 == 0:
        print('input is ok')
    else:
        print('input is error')
>>>yes_no(2)
input is ok
>>>yes_no(3)
input is error

当我们还需要使用这个功能时,只要一行代码调用yes_no函数即可,大大减少了重复的工作量。

内建函数

Python也是有自带内建函数库的,比如刚才使用的print()函数。常见的Python内建函数还有以下这些:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>type('123')
<class 'str'>
>>>str(10)
'10'
>>>max(1,2,3)
3
>>>min(1,2,3)
1
>>>name = input("What's your name?:")
What's your name?:kaka

要调用一个函数,需要知道调用函数的名称和参数,比如求绝对值的函数abs,它接收一个参数。

调用abs函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>abs(10)
10
>>>abs(-10)
10
>>>abs(10.11)
10.11

调用函数时,如果参数的数量和所需参数不匹配,会报TypeError的错误,并且Python也会告诉你:abs()有且仅有一个参数,但是给出了两个,这里遇到问题的同学可以看上一篇异常处理哦。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>abs(1,2)
TypeError                           Traceback (most recent call last)
<ipython-input-1-e61b31f7455c> in <module>
----> 1 abs(1,2)

TypeError: abs() takes exactly one argument (2 given)

如果传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError的错误,并且Python也会告诉你:str是错误的参数类型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>>abs('test')
TypeError                           Traceback (most recent call last)
<ipython-input-2-27524ac95275> in <module>
----> 1 abs('test')

TypeError: bad operand type for abs(): 'str'

说到自定义函数,那不得不提一下模块管理函数,当我们的自定义函数在py文件1时,我们在py文件2想调用时如何使用呢,往下看:

方法一:

要想使用模块中的函数需要:模块名+函数名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import module # 这个module就是封装函数的那个文件名
test = module.max(1,2,3) # 这里使用的是一个内置函数,自定义函数同理
print(test)

方法二:

导入指定模块的指定函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from 模块名 import 函数名
from module import test_add # 例如从module的模块中导入test_add函数

分享就到这里,欢迎大家前来补充,喜欢记得点赞哦~

这真的需要勇气,来面对鳞次栉比,只要你一个眼神肯定,我的写就有意义,我们都需要勇气,去相信头发还在,人潮拥挤我能感觉你,放在我手心里你的真心。

The power of faith

听说长得好看的人都拉到底点了在看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据山谷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档