python的自定义函数

今天想把上次参考着网上教程写的scrapy爬虫改写成requests和beautifulsoup的普通爬虫,写着写着发现自己对python的自定义函数还不是太熟悉(自己TCL了。。。。。。。。。流泪),赶紧菜鸟教程上复习一下,顺便写篇文章。

0x01:关键字

python中,自定义函数使用def关键字,后面加函数名和参数列表,如下:

def 函数名(参数列表):
    函数体

如果不需要传参,括号里就不用填,注意,python中不需要定义变量类型。自定义函数除了函数的功能是我们自己编写代码实现的外,其他的与python中的函数并无差别,所以在调用函数时,直接使用函数名就行。眼见为实,来看下面的栗子。

def hello():

    print("hello world!!")

hello()

#输出如下hello world!!

现在我们就自定义了一个简单的函数,他的功能是输出“hello world!!”,值得注意的是,python中并没用大括号({})划分代码块,python中靠的是相同的缩进,所以在写python时一定要注意一块代码中的缩进

0x02:自定义函数中的变量

在自定义函数时,我们难免会使用到变量,这就关系到了python的局部变量和全局变量,做一个简单的解释,局部变量就是在函数内部定义的变量,全局变量就是在函数内部定义的变量。在函数内部可以访问外面的全局变量,但不可以对全局变量进行修改,但在函数外部,不可以访问局部变量。

>>> a=3
>>> def test():
...     print(a)            #函数内访问全局变量
...
>>> test()
3
>>> def test4():
...     a=a+1
...     print(a)        #函数内修改全局变量会报错
...
>>> test4()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in test4
UnboundLocalError: local variable ‘a‘ referenced before assignment
>>>
>>> def test3():
...     c=5
...
>>> c            #外部访问局部变量也会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘c‘ is not defined

其实无论是在外部访问局部变量还是在函数内修改全局变量都是有方法的,大家可以百度一下。

0x03:带参数的自定义函数

>>> def test5(m,n):
...     print(m*n)
...
>>> test5(2,3)
6
>>>

我们定义了一个带参数的函数,他的功能是计算m*n的值,如果传入的值无法进行运算,则会报错

0x04:参数的传递

python参数的传递分为四种情况:必须参数、关键字参数、默认参数、不定长参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样,上面的test5()函数的两个参数就是必须参数,如果我们只传入一个值,就会报错。如下:

>>> test5(8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: test5() missing 1 required positional argument: ‘n‘
>>>

关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

>>> def test6(name,age):
...     print(name)
...     print(age)
...
>>> test6(age=50,name="liang")
liang
50
>>>

参数的顺序是name、age,虽然我们先传入了age,但因为在传入时带上了关键字,所以也不会报错。

默认参数调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:

>>> def test7(name,age=50):
...     print(name)
...     print(age)
...
>>> test7(‘liang‘)
liang
50
>>> test7(‘liang‘,100)liang100>>>

第一次调用时只传入了name参数,所以age参数使用了默认值,第二只调用时对age参数也传入了值,所以胡覆盖掉默认的50.

值得注意的是:在默认使用参数,第一个默认参数后的所有参数都要是默认参数,就是说,如果你把第二个参数设为默认,那么后面的第三第四...个参数都要是默认的,要不会出现“non-default argument follows default argument”错误.

不定长参数存放所有未命名的变量参数。比如你在函数中值定义了两个参数,而在调用时你需要传入四个或者更多,那么从第三个开始的参数都会被存放到不定长参数中。

>>> def test8(n,*var):
...     print(n)
...     print(var)
...
>>> test8(1,2,3,4,5,6)
1
(2, 3, 4, 5, 6)
>>>

第一个参数被传递给n,后面都以元祖的形式存放在var这个不定长参数中。

原文地址:https://www.cnblogs.com/liangxiyang/p/10988937.html

时间: 2024-08-01 16:24:28

python的自定义函数的相关文章

python中自定义函数的保留字是

Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能实现代码,如果想要函数有返回值, 在expressions中的逻辑代码中用return返回. 自定义函数 创建函数非常简单,它使用关键字(保留字) “def”,下面的代码创建了一个带有一个参数的函数,并使用不同的参数调用                                                                                            

python的自定义函数(函数类型、def、range、rerun)

一.PyCharm基本设置 1.用Ctrl+鼠标滚轮--放大或缩小字体 搜索zoom 2.在Windows资源管理器打开文件或目录 搜索keymap 设置成不常用的键即可,如F3. 3.代码提示 搜索letter 二.自定义函数 1.为什么要使用函数 函数中的代码一次编写,多处运行;函数可以让代码复用,减少代码冗余. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也

python笔记--自定义函数

函数 函数是把一些负载的代码封装起来,需要的时候直接调用,重复利用提高效率并且能够简化程序的结构. 1.语法 定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数.冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. def functionName(parms1, parms2, ...):     code block     return expression 2.函数的定义与调用 #定义函数 >>> def func1():         pri

python基础:自定义函数

一.背景 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下 while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 腚眼一看上述

python学习之--自定义函数:

Python之--自定义函数: 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 以下自定义一个函数用于判断一个人是成年人好事青少年: 1 >>> def judge_person(age): 2 ... if age < 18: 3 ... print("teenager!") 4 ... else: 5 ... print("adult!&q

python之学习函数

函数是一组语句的集合,用以实现某一特定功能.函数可简化脚本,函数包括内置函数与自定义函数 自定义函数框架 在python中使用def 可以声明一个函数,完整的函数是由函数名,参数,函数体,返回值.声明函数一般形式如下 def 函数名 (参数)     函数体     return 返回值 参数和返回值不是必须的 当没有设置返回值的时候,该函数的返回值默认是null 函数调用 在python 中自定义函数与内置函数调用方法相同,只要使用函数名制定要吊用的函数,然后再函数后加相应的参数即可,如果有多

004 Python 文件操作 字典 自定义函数

# Python 3 文件操作 字典 自定义函数 ● python 文档 官方英文文档 https://docs.python.org/3/ 汉化版文档 http://python.usyiyi.cn/ ● open() 返回一个文件句柄 参数1:文件地址,绝对地址,或者相对地址 参数2:文件打开的方式 rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模

python 自定义函数

200 ? "200px" : this.width)!important;} --> 介绍 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回,return满足条件就不再执行下面的语句,也可以用print输出. 1.定义函数 自定义一个年龄段的判断函数,当输入的年龄大于等于18返回’adult‘,如果输入的值是非整形则返回错误 #!/usr/bin/env python3 #

17.python自定义函数

什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:    将重复的工作封装到一起,我们只要向机器里放入东西,就能得到我们想要的. 这也就是所谓的代码重用. 自定义函数 知道了函数是干什么用的之后,我们就开始学习自定义函数,也就是动手来造这个神奇的机器. 看代码示例: def dfb(a): '''一系列操作''' return '一碗%s饭' %a a =