Python基础入门-函数定义和调用
在python中,函数的使用非常的广泛。函数学好了,在面向过程这个节点你会做的很不错,当然这不是终点。作为很多初学者在学习python这门语言的时候会有很多知识点的理解搞不懂,比如for/while循环里面的一些基础的编程题一样。知识点很好理解,但是怎么通过知识点实现编程,那就是另外一码事了。并不是所有人都天生具备编程思维。编程思维是需要后天开发的,当然不排除一些个别天生智商超群的人。我们今天呢,主要和大家分享的是关于函数的一些基本的用法和注意事项。好了,进入正题:
使用函数的好处无非下面这几点:1.减少代码冗余,使代码结构清晰 2.增强代码的可维护性 3.方便调用,实现更强大功能
关于函数今天我们需要了解:
1.函数定义和调用
2.计算型的函数和返回型的函数区别
3.函数参数划分
Ok,明确我们的主旨以后,我们开始干吧。首先在Python中定义函数的关键字是def,def后面跟的是函数名,函数名的命名规范有要求。
1.不能以数字开头
2.不可以以系统关键字命名
3.不可以包含特殊字符(%……&……*%()*&)
4.不可以起一些莫名奇妙的命名 比如a,b
一、那么我们接下来创建一个无参数的函数
def say_hello():
print "hello,jim,this is my first def! "
Ok,函数我们创建完成了,我们创建了一个函数名为say_hello()的无参的函数,这个函数的功能是打印 "hello,jim,this is my first def! " ,但是函数创建完成后,无法调用,这时候就需要我们去调用这个函数,调用的语句是 函数名+(),来继续往下看:
函数的调用:
def say_hello():
print "hello,jim,this is my first def! "
say_hello() #调用函数运行print后面的语句
打印结果如下:
"hello,jim,this is my first def! "
到此,我们的一个无参数的函数就创建成功了。是不是很简单呢?在创建函数时,这里还是有一些需要我们注意的事情,我们上面说完了函数名,这回我们说一下关于函数的参数,那么如果定义一个有参数的函数呢,参数需要写在参数的括号里面,如果定义的函数没有参数,就写空括号就好了。参数括号后面跟的是冒号,来声明语句块的缩进.接下来我们创建一个有参数的函数哈,开始我的表演:对刚才的例子进行改造一下。
def say_hello(name):
print "hello,jim,this is my first def! %s"%name
say_hello('zhangshan') #调用函数时给函数一个入参zhanshan
代码解析一下
1.我们定义了一个函数 say_hello(),定义函数时函数定义了一个参数,其实这个参数是形参,因为他没有实际的值,只是形式上的一个参数。
2.我们在调用函数时say_hello('zhangshan'),给调用方传递了一个实际值,这个实际值就是‘zhangshan’,这个值一定是标准的数据类型。不然会报错,当然这种在调用函数时的传参方式我们可以把它理解为实参,因为他是有实际值得,他的值就是字符串 zhangshan .
3.整个函数运行的顺序是由实参传递给函数的形参,然后在作用到函数的内部,让整个say_hello()函数可以正常运行输出 "hello,jim,this is my first def! ‘zhangshan’ .
二、计算型的函数和返回型的函数区别
其实,在上面的例子中,我们定义的函数是一个计算型的函数,他是没有实际值得,为什么这么说呢?我们看一下他的类型就知道了。
def say_hello():
print "hello,jim,this is my first def! "
pritn type(say_hello())
返回的是<NoneType> 说明这个函数是没有实际的函数值得,那么有些同学可不理解了, "hello,jim,this is my first def! "不是函数的值吗?这个当然不是,因为这个是print的作用效果,print是打印,将后面的结果打印给我们看,而这个say_hello()函数实际是没有返回值得。那么如果想要函数有返回值怎么办呢?这时候我不得不请return出马了。我们来看下return的正确使用姿势,对上面的例子进行改造。
def say_hello():
return "hello,jim,this is my first def! "
pritn type(say_hello())
这时候返回的结果就是<type,str> 说明什么呢? 说明这个函数有了实际的值,这个值是是一个字符串。所以呢,函数中一出现return关键字就说明这个函数一定是有返回值,这个返回值实际上只能返回一个值,所有返回的结果都会存储到一个元祖里面,我们继续来看~~
def add():
a=b=c=90
return a+b,c
add()
返回的结果是(180,90)证明了该函数只返回了一个值,并将结果存储到元祖中。而且在函数中,只要return一出现,声明return后面的代码不会被运行,这是python语言的规定。我们继续来看一下实际的例子。
def add():
a=b=c=1
return a+b+c
print 'none result'
add()
运行add()你会发现这个return后面的代码 print结果是没有被打印出来的,只返回了一个3结果。所以记住,return出现,他后面的代码将不会被执行。好了关于函数的介绍,我们先介绍到这里了吧,下一篇我们介绍函数的参数。
相关文章
- Python基础之:Python中的IO
- Python初学者如何系统的学习python————Python入门学习指南--内附学习路径
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- 2023开春版神仙级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!
- Python入门零基础基础教程(非常详细)
- 给零基础初学者推荐的10个Python免费学习网站,赶快收藏
- 毫无基础的人如何入门 Python ?
- 零基础学习python并成长为一名程序员,是否具有较大的难度
- python基础——定制类
- python flask学习(1)与Git基础操作
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- 零基础如何快速入门python(2023学习路线)
- 神仙级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!
- Python基础必掌握的语法结构详解
- Python基础入门-while循环示例
- Python基础入门-查缺补漏(实用教程集)
- 【Python 八股文】- Python Web 基础
- Python基础之:Python中的内部对象
- Python基础语法入门
- Python基础 索引页
- 【百度领航团】小白零基础python学习笔记
- Python 基础 之 多任务 Process 进程知识点的简单整理,以及对应的使用(进程队列,进程池,进程池队列等)
- Python 基础 之 python 协程知识点整理,并实现一个简单 gevent 的协程并发图片下载的应用
- Python 基础 之 python 线程知识点整理,并实现一个简单多线程 udp 聊天应用