有关Python判断与循环的内容我们上几节已经跟大家一起学习了,这一节我们主要针对def 做一个讲解

def 定义一个方法

在项目编程中,我们往往要做很多重复的事,比如一个排序的功能(当然Python中内置排序的方法),在编程中,我们肯定是会多次用到这个功能的,如果我们每次都在要用这个功能时,都去写一遍,那实在是太影响编程效率了,这时我们就可以通过def去定义一个排序的方法,那么我们就可以在要使用的时候直接调用即可,而不需要去重写代码

事实上,我们之前也接触过很多内置方法,比如len()获取一个列表的元素个数,或者是split()对字符串或列表进行切片,当然还有针对列表的排序方法sort()

In [9]: My_list = [45, 345, 56, 233 ,456 ,23423, 56 ,234, 3452,212]

In [10]: My_list.sort()

In [11]: My_list
Out[11]: [45, 56, 56, 212, 233, 234, 345, 456, 3452, 23423] In [12]: len(My_list )
Out[12]: 10

  

定义一个方法的语法结构

def后面接你定义的方法的名称,名称后面要加一对括号,括号里你可以写你需要操作的元素,也就是形参,如果你的方法只是输出或是不需要操作数值元素的,你也可以不加参数,然后这一行接一个冒号,下面你就可以来定义你的方法

在调用的时候直接方法名称后面加上括号就行,括号里放实参,注意不管有没有参数,调用时都要加括号,和定义方法一样

例如不加参数:

In [13]: def hello():
...: print("hello susmote")
...: In [14]: hello()
hello susmote

  

传递参数

In [15]: def add(a, b):
...: res = a + b
...: print(res)
...: In [16]: add(25, 53)
78

  

下面的方法你可以写一个return 语句,return 后面接一个你需要返回的值,和前面说的一样,如果不需要返回值,你也可以不写return语句

注意,在定义一个方法时,return 语句代表着结束,后面的语句不会再执行,所以一般在方法定义的最后一行写return语句

如果你这个函数有返回值,那么你就可以直接把函数的执行结果直接赋值给一个变量(或者是直接打印)

In [19]: def add(a, b):
...: return a+b
...: In [20]: res = add(10, 19) In [21]: print(res)
29

  

In [22]: def add(a, b):
...: return a+b
...: In [23]: print(add(10, 19))
29

  

下面我们通过写一个求斐波那契数列的方法来增强对定义方法的理解

斐波那契数列:这个数列从第3项开始,每一项都等于前两项之和。想详细了解的话,可自行上网搜索

In [24]: def fib(n):
...: a, b = 0, 1
...: while a < n:
...: print(a, end=" ")
...: a,b = b,a+b
...: print()
...: In [25]: fib(10)
0 1 1 2 3 5 8

  

我简单的讲解以上代码:

首先定义了一个fib()方法,传了一个形式参数n,这个n是作为一个限制,实际意义是求所有的不大于n的斐波那契数列中的值

然后在下面是一个赋值语句,这种语法在Python中应该是独有的,前面的变量分别对应后面的值,一一对应,把0赋给了a, 1赋给了b

然后就是一个while语句,也就是我前面说的传进来的参数 n 的作用,只要是值不大于n就继续循环,知道最后大于n跳出循环

第四行语句,输出这个数列中的值,在这里我们要注意,print方法后面是可以加很多参数的,这个我们后续会仔细讲,end=“ ”,意思就是,每次都以一个空格结尾,等价于,print(a , " ")

然后下面又是一个赋值语句

注意它们是按照顺序来执行赋值语句的,先把b的值赋给了a,再把a+b的值赋给了b

最后是一个print(),是用来换行的,这个不多说了

然后在这里我们要明白定义的方法是一个对象,并不能直接通过print输出

In [26]: def fib(n):
...: a, b = 0, 1
...: while a < n:
...: print(a, end=" ")
...: a,b = b,a+b
...: print()
...: In [27]: fib
Out[27]: <function __main__.fib>

  我们还可以吧这个方法赋给一个变量

In [30]: f = fib

In [31]: f(10)
0 1 1 2 3 5 8

  

前面我们讲了return语句应该在什么情况下写上,当时我只是很浅显的介绍了,其实不管你加不加都是会返回值的

In [33]: def add(a, b):
...: print(a + b)
...: In [34]: ret = add(10, 19)
29 In [35]: print(ret)
None

  

如果你没有加return的话,那么会默认返回一个None

return不仅能够返回简单的数值字符类型,还能返回列表、字典等高级数据类型

例如把斐波那契数列中的值都存到一个列表中,然后通过return返回

In [40]: def fib_list(n):
...: result = []
...: a,b = 0,1
...: while a < n:
...: result.append(a)
...: a, b = b, a+b
...: return result
...: In [41]: my_fib_list = fib_list(100) In [42]: my_fib_list
Out[42]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

  

上面的代码相信应该不需要多讲了吧,append在前面讲列表的时候讲到过,对一个列表增加数据

09_Python定义方法_Python编程之路的更多相关文章

  1. 10_Python函数方法加深_Python编程之路

    上节课已经简单的跟大家讲了如何定义一个方法,但是并没有深入去讲,这一节我们继续来学习定义方法中需要注意的几点 默认参数 前面我们讲到定义一个方法时是可以传递参数的,除了这个功能,实际上python在定 ...

  2. 15_Python模块化编程_Python编程之路

    之前跟大家讲的是一些python的数据基础,从这篇文章开始,我们开始正式学习python的模块化编程 下面我们解释一下什么叫做模块 之前已经讲过怎么去定义一个方法,如果你是用python交互器(自带交 ...

  3. 01-Python的介绍_Python编程之路

    首先用一句业内非常出名的话来介绍Python "人生哭短,我用Python" 这也是Python宣传时经常说的一句话 从这句话中,可以非常清楚Python他到底优点在哪里,为什么要 ...

  4. 04_Python的数据类型1数值和字符串_Python编程之路

    上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的 ...

  5. 06_Python的数据类型3元组,集合和字典_Python编程之路

    上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...

  6. 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路

    Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...

  7. 11_Python的列表推导式_Python编程之路

    上一节我们结束了有关python的方法相关内容 这一节我们先来学习python的列表推导式 之前跟大家说过range方法的使用,在这里我就不做过多的解释了,如忘记了,请翻阅之前的介绍 列表推导式,是P ...

  8. 12_Python的(匿名函数)Lambda表达式_Python编程之路

    Python作为一门高级语言,与很多编程语言一样都具有匿名函数这一特征 匿名函数,也就Lambda表达式,通俗来讲就是不用命名的方法,直接定义,直接用即可 创建匿名函数需要用到Lambda关键字,下面 ...

  9. 03-第一个脚本程序以及输入输出_Python编程之路

    上节课已经教大家安装了Python的解释器,那么这节课我们就可以正式来写代码了 说明:在下面的代码演示中,我将大部分使用python交互器演示代码的输入输出,注意">>>& ...

随机推荐

  1. c#开发wps插件(3)部署

    上一篇,我们完成了具体的开发工作,但是最终必须得部署到客户机器上.所以,部署方面,我花费了一些时间去研究,现在总结下.上一篇中,我为什么建议开发人员安装wps专业版呢?因为装了专业版,方便我们开发,安 ...

  2. 【高斯消元】BZOJ3503 [Cqoi2014]和谐矩阵

    3503: [Cqoi2014]和谐矩阵 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1197  Solved: ...

  3. 面向服务的体系架构 SOA(二) --- 服务的路由和负载均衡

    2. 服务的路由和负载均衡 1.2.1 服务化的演变 SOA设计思想:分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借用已有的底层服务来快速搭建更多.更丰富的应用,降低新业务开展的人力 ...

  4. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  5. 【python学习笔记】8.异常

    [python学习笔记]8.异常 raise Exception: 抛出指定异常 try/except: 捕捉异常 except: 第一个参数是需要捕获的异常类型,可以是多个类型组成元组,第二个参数是 ...

  6. iOS 神秘而又强大的传感器系统 (附demo)

    iOS中的各种传感器: 随着科技的发展,机器感知人的行为!Goole的无人驾驶汽车到李彦宏的无人驾汽车,都带入了各种计算及传感. 为了研究自然现象和制造劳动工具,人类必须了解外界的各类信息.了解外界信 ...

  7. Python 从入门到入门基础练习十五题

    **a) 6.成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于60的输出"pass",否则输出"fail",成绩不四舍五入. a = ...

  8. 笔记:Hibernate 数据库方言表

    关系数据库 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS/ ...

  9. 【Flask】微型web框架flask大概介绍

    Flask Flask是一个基于python的,微型web框架.之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力.它几乎不给使用者做任何技术决定. 安装flask时应该注意其必须的几个支持 ...

  10. jenkins忘记密码怎么办?

    在nginx配置文件中加上域名访问,重定向到本机的8080端口. server { listen 80; server_name tomcat.qinyj.top; root /application ...