我们之前使用的比如print(),就是Python为我们提供好的内建函数,但是你也可以自己创建函数,而这种函数呢,我们将之称为自定义函数。
Python干净利索,简单直接。非常注重代码的可读性,非常适合多人参与的项目。它具备了比以前传统的脚本语言更好的可重用性,维护起来也更加方便。
函数就是当你如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,那么这就是函数。
知道了函数是干什么用的,我们就开始自定义一个函数,也就是制作一个可重复使用的'工具'。
代码示例:
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。
函数名称后有个跟屁虫是一对单括号(),如果有参数要放到括号中,多个参数下要用英文状态下的逗号隔开,句末一定要英文状态下冒号结束,不然你就该看前面提到的异常处理喽。
#无参的函数
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
函数的复用
为什么要创建、调用函数而不是直接写出具体指令呢? 有现成的为什么不用呢,有一个现成函数可以大大降低程序员的工作量。实现功能的第一反应应该是:是否有现成的函数/方法/模块 可用?而不是重复的造轮子。 调用已经写好的函数,就是一种减少[自造轮子],提高代码复用性的方式。
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内建函数还有以下这些:
>>>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函数:
>>>abs(10)
10
>>>abs(-10)
10
>>>abs(10.11)
10.11
调用函数时,如果参数的数量和所需参数不匹配,会报TypeError的错误,并且Python也会告诉你:abs()有且仅有一个参数,但是给出了两个,这里遇到问题的同学可以看上一篇异常处理哦。
>>>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是错误的参数类型。
>>>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想调用时如何使用呢,往下看:
方法一:
要想使用模块中的函数需要:模块名+函数名
import module # 这个module就是封装函数的那个文件名
test = module.max(1,2,3) # 这里使用的是一个内置函数,自定义函数同理
print(test)
方法二:
导入指定模块的指定函数:
from 模块名 import 函数名
from module import test_add # 例如从module的模块中导入test_add函数
分享就到这里,欢迎大家前来补充,喜欢记得点赞哦~
这真的需要勇气,来面对鳞次栉比,只要你一个眼神肯定,我的写就有意义,我们都需要勇气,去相信头发还在,人潮拥挤我能感觉你,放在我手心里你的真心。
The power of faith
听说长得好看的人都拉到底点了在看
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有