zoukankan      html  css  js  c++  java
  • Python 函数基础

    一.  什么是函数

    到这里很多人都懵住了什么是函数???Python函数其实就是,组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数,函数是对功能的封装!!!

    二. 函数的定义, 函数名, 函数体以及函数的调用

    语法:

    def  函数名(形参列表):

      函数体(代码块,return)  #return为返回值的意思

    函数名(实参列表)  #调用函数的意思

    那么我们来定义一首诗的功能:我们使用del关键字来定义函数,函数的定义语法如下

    1 def Shi():    #使用del定义一个函数
    2 
    3   print("床前明月光")    
    4   print("疑是地上霜")
    5   print("举头望明月")
    6   print("低头思故乡")

    定义完了,但是这个时候去执行程序你会发现什么也没有发生,因为我们只是定义了函数但是还没有执行这个函数.

    函数的调用:使用函数名可以调用函数,

    写法:

    函数名()

    这个时候函数体才会给执行

    1 Shi()  #调用Shi函数
    2 
    3 结果:
    4 床前明月光
    5 疑是地上霜
    6 举头望明月
    7 低头思故乡

    三. 函数的返回值

    1.遇到return,此函数结束,函数后面的东西就会不执行

    2.return返回值

    return : 在函数执行的时候. 如果遇到return. 直接返回
    如果函数什么都不写, 不写return, 没有返回值. 得到的是None
    在函数中间或者末尾写return, 返回的是None
    在函数中写return 值. 返回一个值.
    在函数中可以返回多个返回值, return 值1, 值2, 值3...., 接收的是元组

    3.关于返回值

    如果return什么也不用写或者不写return,那么返回的就是None

    如果return后面写了一个值,则调用者可以接收一个结果

    如果return后面写了多个结果,则调用者可以接收到的是tuple(元组),调用者可以直接构结成多个变量

    1.函数中遇到return,此函数就会结束,不能再继续执行

    1 def Shi():  #定义一个函数
    2   print("床前明月光")
    3   print("疑是地上霜")
    4   return
    5   print("举头望明月")  #这句话后面的都会不给执行
    6   print("低头思故乡")

     2.return返回值给函数的调用者一个访问结果

    1 def shi():  #定于一个函数
    2     print("床前明月光")
    3     print("疑是地上霜")
    4     print("举头望明月")
    5     print("低头思故乡")
    6     return '运行结束'   #返回值
    7 jieshu = shi()
    8 print(jieshu)   #运行结束

    函数的返回值可以是多个结果返回的是元组

     1 return '运行结束','hello' 

    四.函数的参数

    参数,函数在调用的时候指定具体的一个变量的值,这就是所谓的参数,

    函数执行的时候给函数传递信息.
    形参:函数声明的位置的变量
    实参:函数调用的时候给的具体的值
    传参:把实参交给形参的过程

    语法:

    def 函数名(参数列表):

    函数体

    实操,需求:拿出手机想打开什么应用就打开什么应用,

     1 def dakai(ruanjian):
     2     print ('拿出手机')
     3     print('打开:',ruanjian)
     4 dakai('微信')
     5 dakai('QQ')
     6 dakai('微博')
     7 结果;
     8 拿出手机
     9 打开: 微信
    10 拿出手机
    11 打开: QQ
    12 拿出手机
    13 打开: 微博

    nice!搞定了是不是和很棒?,我们在调用dakai的时候给ruanjian一个值,然后再执行函数体,

    参数分为:

    1.形参,写在函数声明的位置叫做形参,形式上的一个完整,表示这个函数需要干嘛干嘛。。。

    1. 位置参数
    2. 默认值参数 先位置后默认值

     1 dakai(ruanjian):  #括号里的为形参,(ruanjian) 

    2.实参,在函数调用的时候给函数传递的值,叫实参,即实际参数,实际执行的时候给函数传递的信息,表示叫函数干啥干啥干啥。。。

    1. 位置参数, 按照形参的参数位置, 给形参传值
    2. 关键字参数, 按照形参的名字给形参传值
    3. 混合参数. 即用位置参数, 也用关键参数

     1 dakai('微信') #括号里的为实参('微信') 

    3.传参,给函数传递信息的时候将实际参数交给形式参数的过程称为传参

    1 def dakai(ruanjian):    #ruanjian为形参
    2     print ('拿出手机')
    3     print('打开:',ruanjian)    
    4 dakai('微信')    #实参
    5 print('关闭')    #这里也代表实参

    参数的分类:

    1.位置参数

    位置参数,意思就是按照位置来赋值的参数叫做位置参数,

    1 #需求,录入班级学生基本信息,基本信息有,名字,年龄,性别
    2 def xue_sheng_xin_xi(name,age,sex): #定义一个函数,形参有name.age,sex
    3     print('请录入学生信息:')
    4     print(name,age,sex) 
    5 xue_sheng_xin_xi('小明', '20', '')   #实参

    缺点:如果位置输错了的话信息也会跟着错,必须要按照形参的位置来输入信息

    2.关键字参数

    关键字参数,利用关键字定义的参数,只要记住每个参数的名字就OK了

    1 def xue_sheng_xin_xi(name,age,sex):
    2     print('请录入学生信息')
    3     print(name,age,sex)
    4 xue_sheng_xin_xi(sex='',name='YJ',age= '19')   #关键字参数
    5 结果为:
    6 请录入学生信息
    7 YJ 19 女

    优点,无论顺序怎样掉乱最后输出都是正确的排列

    3.混合参数

    1 def xin_xi(name,age=18,diqu="广东"):  #默认指定了年龄跟地区
    2     print('请录信息')
    3     print(name,age,diqu)
    4 xin_xi (diqu='北京',name='YJ',age= '19')  #混合参数,地区跟年龄已经指定了现在还能改
    5 结果为:YJ 19 北京

    也就是说在调用函数的时候既可以给出位置参数,也可以指定关键字参数

    4.默认值参数,在函数声明的时候,就可以给出的参数的默认值,在调用的时候可以给出具体的值,也可以不给值使用默认值。

    需求:在录入信息的时候,发现大部分为男生,在录入时如果是男生sex就使用默认值

     1 def xin_xi_biao(name,age,sex=''):
     2     print('请录入信息')
     3     print(name,age,sex)
     4 xin_xi_biao('小强',19)
     5 xin_xi_biao('小花',19,sex= '')
     6 结果:
     7 请录入信息
     8 小强 19 9 请录入信息
    10 小花 19 女

    注意:必须声明位置参数才能声明默认参数

    2019年11月7日

  • 相关阅读:
    FireFox浏览器的下载和安装、借助RamDisk让你的FireFox飞起来
    XXX is not in the sudoers file. This incident will be reported 的问题解决方案
    UVA How Big Is It?
    CentOS配置smaba与Windows共享文件
    博客说明
    linux 下安装jdk及配置jdk环境图解
    swift 笔记 (十二) —— 下标
    依据先中序序列或后中序序列确定二叉树
    opencv2使用形态学滤波对图像进行边缘及角点检測
    $POST 、$HTTP_RAW_POST_DATA、php://input三者之间的差别
  • 原文地址:https://www.cnblogs.com/yjtxin/p/11810076.html
Copyright © 2011-2022 走看看