一、函数介绍

1.为什么要有函数?

  没有函数的代码组织结构不清晰,可读性差。

  代码冗余

  管理维护难度大,扩展性

2.什么是函数?

具备某一个功能的工具就是程序中的函数。

事先准备工具的过程就是:函数的定义。

拿着工具来使用就是函数的调用。

所有函数都是:先定义后调用!

二、函数的定义

1.语法  def  msg()

def是定义函数的关键字  msg就是是函数名,函数名是用来调用函数的,命名必须能反映函数的功能。()是用来放参数的

  1. def msg(count,liu):
    print(count*liu) #函数的功能            #在中间还可以加文档描述,来增强函数的可读性。
    def good(good_p):                    
    print(good_p)
    msg(20,'=')       #函数的代码块          
    good('hello word')   #函数的代码块
    msg(20,'*')

***以上输出:

====================
hello word
********************

2.定义函数的三种类型

(1)有参函数:参数是函数体代码用来接收外部传入数据的。

  1. inp_name='ly'
    inp_paws=123
  2.  
  3. def interactive():
    name=input('请输入你的用户名:')
    paws=input('请输入你的密码:')
    return name,paws
  4.  
  5. def auth(name,paws):
    if inp_name == name and inp_paws == paws:
    print('登录成功')
  6.  
  7. res=interactive()
    x=res[0]
    y=res[1]
    print(x)
    print(y)

***以上输出:

请输入你的用户名:ly
请输入你的密码:123
ly
123

(2)无参函数:当函数代码体逻辑不需要函数的调用者参入值的情况下,定义时无参,意味着调用者用时也无需传入数据。

  1. def line(x,y):
    if x > y:
    print(x)
    else:
    print(y)
  2.  
  3. line(10,50)
  4.  
  5. ***以上输出:
    50
  1. name='liuyuan'
    paws='123'
    def interactive():
    inp_name=input('输入你的名字:')
    inp_paws=input('输入你的密码:')
    if inp_name == name and inp_paws == paws:
    print('输入正确')
    else:
    print('错误')
  2.  
  3. interactive() ##定义时无参,意味着调用时也无需传入参数。
  4.  
  5. ***以上输出

输入你的名字:liuyuan
输入你的密码:123
输入正确

(3)空函数:函数体为pass.

def auth():
"""
这是一个认证功能
:return:
"""
pass

def put():
"""
上传功能
:return:
"""
pass

def get():
"""
下在功能
:return:
"""
pass

def ls():
"""
list contents
:return:
"""
pass

三、调用函数

定义:函数的使用必须先定义收调用的原则。

2.调用函数:

调用函数必须先定义,再调用。

函数名加()就是在调用函数

# print(print_sym)
# print_sym('#',30)
# print_msg('hello egon')
# print_sym('#',30)

注意:没事先定义而直接调用,就相当于引用了一个存在的变量名。

(1)定义阶段:在定义阶段,不执行函数体代码(只检测语法

(2)调用阶段:根据函数找到函数的内存地址,然后执行函数体代码

  1.  
  1. # 定义阶段:
    def lol():
    print('你好')
    blo()
    def blo():
    print('lasdll')
  2.  
  3. #调用阶段
    lol()
  4.  
  5. 四、返回值
  6. 定义:当函数体代码运行结束后,需要有一个返回的结果给调用者。
  7.  
  8. 返回值有三种形式:
  9.  
  10. 1.没有reture,返回None
  1. def ppp():
    pass
  2.  
  3. ren=ppp()
    print(ren)
  4.  
  5. ***以上输出
    None
  1. 2.retur后跟一个值。
  1. def ppp():
    return 5
  2.  
  3. ren=ppp()
    print(ren)
  1. ***以上输出
    5
  2.  
  3. 3.ruture可以以逗号分隔,返回多个值,会返回一个元组给调用者。
  1. def ppp():
    return 1,5,6,9,[5,6,9,],{9:6}
    ren=ppp()
    print(ren)
  2.  
  3. ***以上输出
    (1, 5, 6, 9, [5, 6, 9], {9: 6})
  4.  
  5. 注意:
    1.retur返回的值,没有类型限制。
    2.函数内可以写多个return,但执行一次,函数会立刻结束,并把return后的值作为本次调用的返回值。
  1. def ppp():
    print('你好')
    return 1
    print('你好2')
    return 2
    print('你好3')
    return 3
    ren=ppp()
    print(ren)
  2.  
  3. ***以上输出

你好
1

  1.  

python 函数基础 定义的更多相关文章

  1. Python函数的定义、参数传入与函数的调用

    作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...

  2. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  3. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  4. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  5. 11、Python函数基础(定义函数、函数参数、匿名函数)

    函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函 ...

  6. python函数基础(函数的定义和调用)

    函数的定义 python定义函数使用def关键字 return[表达式]语句用于退出函数,选择性的向调用方返回一个表达式,不带参数值的return语句返回none def 函数名(参数列表): 函数体 ...

  7. python函数基础:调用内置函数&定义函数

    调用内置函数 有很多内置函数,在使用中需要积累.这里只举两个例子: 分别调用abs和数据类型转换,注意当入参类型错误时候会报错 ''' print('abs(-100)') abs(-100) pri ...

  8. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  9. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

随机推荐

  1. 嵌入式Linux基于framebuffer的jpeg格式本地LCD屏显示

    在基于Linux的视频监控采集系统中,摄像头采集到的一帧视频图像数据一般都是经过硬件自动压缩成jpeg格式的,然后再保存到摄像头设备的缓冲区.如果要把采集到的jpeg格式显示在本地LCD屏上,由于我们 ...

  2. freemarker自定义标签报错(四)

    freemarker自定义标签 1.错误描述 六月 05, 2014 11:31:35 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严 ...

  3. directX枚举系统设备类

    void CSysEnumDlg::DisplayFullCategorySet(void){    USES_CONVERSION;    HRESULT hr;    IEnumMoniker * ...

  4. 使用 opencv 将图片压缩到指定文件尺寸

    前言 图片压缩应用很广泛,如生成缩略图等.前期我在进行图片处理的过程中碰到了一个问题,就是如何将图片压缩到指定尺寸,此处尺寸指的是生成图片文件的大小. 我使用 opencv 进行图片处理,于是想着直接 ...

  5. javaWeb之eclipse创建Servlet模板快捷键设置

    没有模板创建Servlet 出现的是除了doPOST 和doGet方法 还有许多方法和一些注释,页面不够清晰 创建模板的步骤是: 1.点击window下的preference 选项 2在 表单框里填写 ...

  6. 最新数组方法(包括es6)

    整理目前所用过的数组方法,学习了新增的es6方法. 1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度 let arr = [1,2,3,4,5] console.log(arr. ...

  7. ubuntu14.04安装cuda

    1 装系统时候注意,另外14.04要好于12.04,自带了无线驱动 ubuntu14.04安装完不要update 2 安装cuda和cudnn http://blog.csdn.net/l297969 ...

  8. 爬虫工具fiddle在firefox浏览器中的使用

    1.fiddle工作原理 浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,默认通过自己发送HTTP(或HTTPS)请求到服务器. 使用Fiddler之后,浏览器像目标服务器发送的请求都会经 ...

  9. 【CJOJ1372】【洛谷2730】【USACO 3.2.5】魔板

    题面 Description 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 我们知道魔板的每一个方格都有一种颜色 ...

  10. [HNOI2013]游走

    题面在这里 题意 从1号点开始等概率选择路径并加上边权,直到到达n号点结束,要求将m条边赋权值1-m使得期望最小 sol 续上文 zsy ycb orz 简单的贪心:求出每条边的期望经过次数,sort ...