如何学python 第10课 创建自己的函数

在上一节课里,我们学习了一些关于错误检测和错误处理的知识。这节课我们来学习函数。我们将会介绍什么是函数,以及如何创建函数。

函数是什么?

函数是一系列指令的集合,创建完成后你就能通过函数的名称方便的调用这些函数。这一系列指令的集合最终会返回一些什么。

另外一点需要注意的是,在函数里声明的变量与在函数外声明的变量不太一样。举例来说,如果我们给一个变量赋值“Null-byte”,那么我们可以在脚本程序的任意位置调用这个变量;这样的变量就叫做全局变量。但是如果我们在函数内部创建一个变量,它就只能在函数内部被调用而不能在函数外部调用;这样的变量就叫做局部变量(local variable)。函数和方法(method)一样可以传入参数,我们稍后会介绍。

好啦,我们大概已经知道什么叫做函数了,现在让我们试试如何制作我们自己的函数。

定义函数

当我们创建新函数的时候,我们需要先对函数进行定义。这意味着我们需要指定函数叫什么名字,以及它可以接受什么样的参数。我们今天会定义两个函数,第一个函数没什么实际意义,它只是展示一下函数的概念以及使用方法。第二个将会复杂一些。

第一个自定义函数

我们做的第一个函数将会是一个‘问好(greeting)’函数。他会调用raw_input请求用户的输入,然后直接把这个输入内容输出到屏幕上。

我们通过def关键字来定义函数。注意,def后面需要跟上一个空格,然后是我们给函数起的名字,在后面是括号和括号里的参数(具体传什么参数是由程序员决定的)

现在我们定义了greeting函数。我们的括号里并没有任何东西,这意味着这个函数被设计成不接受任何参数的形式。函数的具体内容如下:

可以看到,函数内的每一行代码开头都以tab空格起始。Python正是通过这样的方式来标记这一行代码是函数的一部分的。

写好了函数之后,我们会对函数进行调用(call):

函数正常运行了。这就是函数的作用,通过简单call函数名字的方式,我们就可以完成写在函数定义里的整套语句。

第二个自定义函数

第二个函数会比第一个复杂一些。它会通过参数来接收一些数据,而不再是直接通过用户输入获取数据。它也会有返回值,而不是仅仅print出来。所以,首先,让我们定义函数的名称和它能接受的参数:

我们可以认为参数的名字就是变量的名字。在调用函数的时候传入参数的值就会是变量的值。

在函数内部,我们写上这样的内容:

这回函数看起来简洁了不少,但实际上它的功能和函数1差不多。我们来尝试call一下:

我们给函数传入了我们的名字“Default”,以及我们的地址“Null-Byte”。然后,这两个值被赋值到了name变量和place变量里,再被拼接到了greeting变量里。最后,它返回的greeting变量被print了出来。

小结

今天我们学习了如何创建自定义函数。自定义函数可以让我们的函数更加的简洁明了,增加了代码的复用性。函数也是一个将会伴随着我们整个编程过程的东西,所以一定要学好。

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2016-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

1470 数列处理

个人博客:doubleq.win 1470 数列处理  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 青铜 Bronze 题解 题目描述 D...

2715
来自专栏日常学python

爬虫必学知识之正则表达式下篇

这是日常学python的第13篇原创文章 继上篇文章说了正则表达式的简单用法,那今天我们就继续说一下正则表达式的复杂的用法。好了,废话不多说,直接进入正题。 正...

5907
来自专栏编程

机器学习之Python基础(二)

标题 类 面向对象 装饰器 1 类 首先举一个创建类的例子 class是声明类的关键字,human是类名,括号里的object是继承的父类(在Python2中如...

20210
来自专栏农夫安全

python爬虫基础之正则表达式

Python基础前期后后看了五六遍,除了能读懂一些简单的代码,一直也没有进阶。 这次借助一个爬虫教学视频。把学习中的一些重点写下来,一个是自己巩固,一个是也帮助...

4397
来自专栏轮子工厂

3. C语言 -- 叫你一声你敢答应嘛

\(@^0^@)/ 嗨!大家好,我是呆博~前两天的文章还满意嘛,如果有不满意的地方尽管提,我一定……嗯……能做到的我一定做。今天准备给大家分享第三篇文章,变量与...

1305
来自专栏函数式编程语言及工具

泛函编程(5)-数据结构(Functional Data Structures)

     编程即是编制对数据进行运算的过程。特殊的运算必须用特定的数据结构来支持有效运算。如果没有数据结构的支持,我们就只能为每条数据申明一个内存地址了,然后使...

2176
来自专栏Android开发指南

6:异常处理

3008
来自专栏用户2442861的专栏

static_cast, dynamic_cast, reinterpret_cast, const_cast区别

(使用vs2010所带的编译器) 转载请注明来源 http://www.cnblogs.com/jerry19880126/

912
来自专栏landv

Java对象和类

2124
来自专栏思考的代码世界

Python编程从入门到实践之函数|第8天

函数是带名字的代码块,用于完 成具体的工作。要执行函数定义的特定任务,可调用该函数。需要在程序中多次 执行同一项任务时,你无需反复编写完成该任务的代码,而只需调...

3597

扫码关注云+社区

领取腾讯云代金券