这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数是python的内置函数,python底层封装后用于实现某些功能。

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

def functionname( parameters ):"函数说明"function_suitereturn [expression]

例如:写一个函数输出’hello world’

def cusom_print():print("hello world")

二.函数的调用
当在py文件中,代码一行一行执行,如果遇到函数的定义,编译器会自动跳过,执行函数之后的代码,如果想调用函数直接调用即可。

注意:函数在调用之前必须先声明。python中的内置函数如:print/type函数等等已经在python编译器内部声明并且定义好了,我们只管调用即可,不需要关心具体内部如何实现。示例代码如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com@File:python_function.py
@Time:2019/10/3 10:48@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
def custom_print():print("hello world")print("hello world")print("hello world")
custom_print()

输出结果:

hello world
hello world
hello world

代码分析:代码执行到第15行时,编译器发现这是一个函数声明,编译器并不会执行,会自动跳到函数末尾第20行,编译器发现20行是在调用custom_print()函数,会直接进入custom_print()函数执行函数内的代码第16/17/18行直到函数结束,这就是整个运行过程。

三.函数传参

函数可以通过外部传递参数,比如:print()函数,可以直接传递字符串并打印字符串;也可以不传递参数,比如上面的custom_print函数,根据自己的需求而定.

函数声明的时候定义的参数叫做形参;外部调用函数传递的参数叫做实参;函数的参数有两者类型:

1.常规参数
常规而言,函数默认有几个形参,在外部调用时就需要传递多少个实参,示例代码如下:

def cusom_print1(x):print("cusom_print1 : x={}".format(x))def cusom_print2(x,y):print("cusom_print2 : x={}".format(x))print("cusom_print2 : y={}".format(y))def cusom_print3(x,y,z):print("cusom_print3 : x={}".format(x))print("cusom_print3 : y={}".format(y))print("cusom_print3 : z={}".format(z))cusom_print1(1)
cusom_print2(1,2)
cusom_print3(1,2,3)

输出结果:

cusom_print1 : x=1
cusom_print2 : x=1
cusom_print2 : y=2
cusom_print3 : x=1
cusom_print3 : y=2
cusom_print3 : z=3

2.缺省参数
在函数参数中,除了常规参数还有缺省参数,即缺省参数有一个默认值,如果外部调用该函数没有给缺省参数传递参数,该形参直接取默认参数值;如果外部调用时给缺省参数传递了参数,那么该形参的值应该等于外部传递的参数,带有缺省参数的函数也被称为缺省函数,示例代码如下:

def cusom_print4(x,y=2,z=3): # x=2,z=3 缺省参数print("cusom_print4 : x={}".format(x))print("cusom_print4 : y={}".format(y))print("cusom_print4 : z={}".format(z))print("***"*20)cusom_print4(1)
cusom_print4(1,4)
cusom_print4(1,4,3)

输出结果:

cusom_print4 : x=1
cusom_print4 : y=2
cusom_print4 : z=3
************************************************************
cusom_print4 : x=1
cusom_print4 : y=4
cusom_print4 : z=3
************************************************************
cusom_print4 : x=1
cusom_print4 : y=4
cusom_print4 : z=3
************************************************************

注意:

1.缺省参数都有一个默认值,如果外部没有给缺省参数传递参数,那么直接取默认值;否则等于外部传递的参数值

2.缺省参数必须写在函数形参的末尾

# 错误写法
def cusom_print4(x,y=2,z):
print("cusom_print4 : x={}".format(x))

3.不定长参数
除了上面两者,在函数的参数中还有一种不定长参数,即:函数的形参长度/类型都不固定

四.函数返回值return

函数的返回值可有可无,根据自己的使用需求而定。如果函数没有return返回值,默认会返回None,即空值。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。

五.重点总结
1.函数的声明必须在调用之前,否则会报错.

2.注意缺省参数的参数写法

3.函数没有使用return,默认返回None
最后给大家推荐一个口碑不错的python聚集地【点击进入】,这里有很多的老前辈学习技巧,学习心得,面试技巧,职场经历等分享,更为大家精心准备了零基础入门资料,实战项目资料,每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节
这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

python函数声明和调用定义及原理详解相关推荐

  1. python函数定义及调用-python函数声明和调用定义及原理详解

    这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数是指代码片段,可以重复调用,比如我们前 ...

  2. Python 函数声明和调用 - Python零基础入门教程

    目录 一.前言 二.Python 函数定义 三.Python 函数的调用 四.Python 函数传参 1.Python 函数常规参数 2.Python 函数缺省参数 3.Python 函数不定长参数 ...

  3. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  4. python函数声明与调用

    复习: 文件操作        open(文件路径, mode="", encoding="")    mode:        r 只读        w 只 ...

  5. python函数中可变参数的传递方式_详解Python函数可变参数定义及其参数传递方式...

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...

  6. Python 函数的值传递和引用传递详解

    1.参数类别 形式参数:简称形参,在定义函数时,函数名后面小括号中自定义的参数就是形式参数. 实际参数:简称实参,在调用函数时,函数名后面小括号中传入的参数值就是实际参数. 2.函数中参数传递方式 P ...

  7. python语言原理_从零开始学Python自然语言处理(十三)——CBOW原理详解

    在之前的连载中我们用代码实现了word2vec,但并没有详细讲解CBOW的原理,本文手把手带你走入CBOW的算法原理. word2vec是一种将word转为向量的方法,其包含两种算法,分别是skip- ...

  8. OpenFeign远程调用负载均衡原理详解

          SpringCloudAlibaba中使用OpenFeign时,默认的负载均衡策略是轮询调用.我们不做任何配置的时候,使用OpenFeign调用的时候,框架中是如何把负载均衡LoadBal ...

  9. C语言 函数声明和调用 - C语言零基础入门教程

    目录 一.简介 二.函数声明和定义 1.函数声明:不需要实现这个函数的功能 2.函数定义:必须实现这个函数的功能 三.函数调用 四.函数形参和实参 五.猜你喜欢 零基础 Python 学习路线推荐 : ...

最新文章

  1. 继中美之后,欧盟会成为下一个 AI 超级体吗?
  2. JavaScript 之 typeof
  3. vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
  4. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
  5. 如何将两部手机内容互换_什么是内容营销?如何将内容营销做到深入人心?
  6. (77)Vivado设置伪路径约束
  7. 10-10-020-简介-kafka的ZK上面的存储
  8. Vue中,在<template>内进行页面链接跳转
  9. html改变微信标题栏颜色,带你了解微信在线编辑器的颜色样式修改
  10. 原创 subsonic指南中文 翻译
  11. JSbridge原理与实现简析
  12. 永恒之蓝-MS17010 CVE-2017-0146
  13. html中ul和li是什么单位,html中ul,ol和li的区别
  14. svn忽略不需要同步的文件夹_配置管理-SVN使用指南 - wuli潇潇
  15. vbox虚拟机无法使用计算机名称,Vbox虚拟机 所选虚拟电脑不能正常访问
  16. 被通知一个月后离职,我改了代码。。。
  17. 3乘3魔方第四步_3乘3魔方的解法都有哪些?(讲具体点,怎么具体呢?有公式步骤吧!)?...
  18. 含文档+PPT+源码等]精品基于ssm的足球联赛管理系统的设计与实现vue[包运行成功]计算机Java毕业设计SSM项目源码
  19. Firefox迅雷组件导致a标签进行两次请求提交
  20. 数量遗传学 第四章 有限大小的群体和近交

热门文章

  1. php设置图片透明度,wps中设置图片透明度在哪里?
  2. 小米8android系统,小米8:2021年,是时候说再见了!
  3. 如何将讲课视频录制下来,只需要三步搞定.
  4. 360浏览器怎么下html,360浏览器怎么装vue-devtools插件?
  5. i5 9400f和i7 9700f玩游戏差距多大 i5 9400f和i7 9700f哪个好
  6. html加百度链接地址,如何给百度影音地址添加超链接网址
  7. 多做善事,会得到好报的
  8. Windows下小狼毫输入法(Rime)的安装与配置(含导入搜狗词库)
  9. https://www.javascripture.com/
  10. URL与URLs区别是什么?