函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础。

函数能提高应用的模块性,和代码的重复利用率。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。善于利用函数,可以减少重复编写程序段的工作量。

如何定义一个函数

定义一个函数有如下几个步骤

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法

def 函数名(参数列表):

函数体

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

简单示例

一个最简单的函数示例:

#定义一个函数

def hello() :

print("Hello World!")

#调用函数

hello()

再来一个代参数的示例:

#定义一个函数

def helloN(name) :

print("Hello World!", name)

#调用函数

helloN('neo')

加减乘除示例

我们使用函数实现一个基本的加减乘除运算。

#定义函数

def add(a,b) :

return a+b

def reduce(a,b) :

return a-b

def multiply(a,b) :

return a*b

def divide(a,b) :

return a/b

#调用函数

print(add(1,2))

print(reduce(12,2))

print(multiply(6,3))

print(divide(12,6))

发现定义函数可以实现代码的多次复用。

多个返回值

某些情况下,我们需要一个函数返回多个值,Python 也是支持的。

#定义多个返回值函数

def more(x, y):

nx = x + 2

ny = y - 2

return nx, ny

#调用函数

x, y = more(10, 10)

print(x, y)

递归函数

有时候我们需要反复调用某个函数得到一个最后的值,这个时候使用递归函数是最好的解决方案。

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数

举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n

所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。

于是,fact(n)用递归的方式写出来就是:

def fact(n):

if n==1:

return 1

return n * fact(n - 1)

这样一个递归函数就定义完了。

我们试着调用一下 6 的阶乘是多少,可以这样调用:

print(fact(6))

# 输出内容

# 720

类似的需要都可以按照这样的方式来实现。

总结

本节给大家介绍了 Python 函数的使用。

关注公众号:python技术,回复"python"一起学习交流

python fact函数_第5天:Python 函数相关推荐

  1. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  2. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  3. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域

    " 这一节有点难.看不懂没关系.继续往后学,回头再来看." 10.6 函数参数传递的机制 10.6.1 值传递与引用传递 编程语言的参数传递机制通常有两种: 值传递 拷贝参数的值, ...

  4. exit函数_全面深入了解 Python 魔法函数

    (点击上方公众号,可快速关注一起学Python) 作者:浪子燕青       链接: http://www.langzi.fun/Python魔法函数.html 魔法函数概念 魔法函数是以双下划线开头 ...

  5. vue函数如何调用其他函数?_好程序员Python教程系列之递归函数与匿名函数调用...

    好程序员Python教程系列递归函数与匿名函数调用,函数是Python技术学习中重要的一个环节,深入掌握该阶段的知识内容,对于Python技术能力的提升非常有帮助,这里就针对递归函数与匿名函数两种函数 ...

  6. astype函数_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!

    本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...

  7. 函数_月隐学python第9课

    前面我们写过九九乘法表,但如果我要七七乘法表或五五乘法表的话,你会看到三者代码极其类似,只是循环变量不同,那么如何做到代码重用,⽽不是简单拷贝黏贴修改呢,其实可是使⽤函数完成这一功能 函数的优点: 代 ...

  8. python中如何调用函数_我写了一个函数,如何在python中调用

    匿名用户 1级 2015-03-06 回答 Python的特色简单 Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Pyth ...

  9. python数字转日期函数_【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  10. sublime加入input函数_【挑战自学Python编程】第八天:while循环以及input()函数

    摘要 01 while循环 02 input函数 03 终端 04 使用while循环与input()函数 01 while循环 在正式讲Python中的while前,希望大家先关注单词一下while ...

最新文章

  1. python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...
  2. 自定义Word样式模板,设置为默认模板
  3. ssh报错解决 ECDSA host key for 123.56.11.181 has changed and you have requested strict checking.
  4. 【C语言】创建一个函数,利用该函数将两个字符串连接起来
  5. C#与matlab混合编程
  6. C语言【微项目17】—DustBase微尘数据库[自制键值对数据库][超轻量]【2022-03-23】
  7. 又拍网架构中的数据库分库设计
  8. XSS Filter Evasion Cheat Sheet
  9. 万维网联盟将于2014年推出HTML5标准(四)
  10. 微信上的音乐怎么传到计算机上,如何把微信的歌传到电脑上
  11. C#控件开发---控件属性编辑器
  12. Java项目:学生综合素质评价系统(java+SSM+thymeleaf+layui+Mysql)
  13. 苹果开放降级通道_苹果出手,关闭降级系统iOS13验证,iOS14再也回不去了!
  14. MapReduce Hold不住?
  15. 如何将编译好的Docker镜像推送至私有Dockerhub仓库?
  16. 阵列卡u盘安装系统步骤_最简单实用的raid重装系统图文教程
  17. UE4数字孪生 OD线开发浅析
  18. [ISA]QQ通过ISA2006代理登陆无法接收发送文件和图片表情的解决方法
  19. win7系统扩展双屏幕时,怎样在两个屏幕下都显示任务栏
  20. kanzi安装和使用

热门文章

  1. python求1+2+3+....+100的和注意事项_python006(求1-2+3-4+5.....99的所有数的和)
  2. 用jquery + iframe實現iframe子頁面加載完前的緩沖效果
  3. linux的sh文件怎么执行,linux下执行sh文件的四种做法
  4. Android实现侧滑抽屉菜单,android studio自带的抽屉侧滑菜单怎么设置点击事件?还头一回遇到,汗!...
  5. [蓝桥杯][算法训练]K好数(动态规划)
  6. Greg and Array CodeForces - 296C(差分数组+线段树)
  7. rono在oracle的作用_oracle中rownum作用及用法
  8. [机器学习]LightGBM分布式使用完全手册
  9. 学习、积累、交流-IC设计高手的成长之路
  10. 卡尔曼滤波(Calman Filter)基本原理