首先,为什么要使用函数?

函数的本质来说,就是写一串代码具有某些功能,然后封装起来,接下来可以很方便的调用

例如。。。然后。。。

  1. # s = '金老板小护士'
    # len(s) #在这里需求是求字符串s的长度,这个直接用python的内置方法len就行,但是假如len不能用或者有别的需求需要频繁使用怎么办
  2.  
  3. # def my_len(): #自定义函数,def关键字,后面函数名
    # i = 0
    # for k in s:
    # i += 1
    # print(i)
    #
    # length = my_len() #这个函数实现了len(s)的功能,但是也只能len(s)
    # print(length) #调用函数就是函数名()
  1. # 定义了之后,可以在任何需要它的地方调用
    # 没有返回长度,只是单纯的打印
    没有返回值这个可不行,很多时候需要拿这个返回值继续执行别的操作,所以,用 return 返回值 就好了,return还有另外一个作用,当他出现时,函数结束,不往下执行
  2.  
  3. 返回值的三种情况:
  1. # 没有返回值 —— 返回None
    # 不写return
    # 只写return:结束一个函数的继续
    # return None —— 不常用
    # 返回1个值
    # 可以返回任何数据类型
    # 只要返回就可以接收到
    # 如果在一个程序中有多个return,那么只执行第一个
    # 返回多个值
    # 用多个变量接收:有多少返回值就用多少变量接收
    # 用一个变量接收: 得到的是一个元组
  1.  
  1. #参数
    #没有参数
    #定义函数和调用函数时括号里都不写内容
    #有一个参数
    #传什么就是什么
    #有多个参数
  1. #站在实参的角度上:
    #按照位置传参
    #按照关键字传参
    #混着用可以:但是 必须先按照位置传参,再按照关键字传参数
    # 不能给同一个变量传多个值
  1. #站在形参的角度上
    #位置参数:必须传,且有几个参数就传几个值
    #默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的
  1. #只有调用函数的时候
    #按照位置传 : 直接写参数的值
    #按照关键字: 关键字 = 值

    3.位置、关键字形式混着用

  1. def mymax(x,y):
  2. #此时x = 10,y = 20
  3. print(x,y)
  4. the_max = x if x > y else y
  5. return the_max
  6.  
  7. ma = mymax(10,y = 20)
  8. print(ma)

      正确用法

      问题一:位置参数必须在关键字参数的前面

      问题二:对于一个形参只能赋值一次

  1.  
  2. #定义函数的时候:
    #位置参数 : 直接定义参数
    #默认参数,关键字参数 :参数名 = '默认的值'
    #动态参数 : 可以接受任意多个参数
    #参数名之前加*,习惯参数名args,
    #参数名之前加**,习惯参数名kwargs
    #顺序:位置参数,*args,默认参数,**kwargs
  1. #*args : 接收的是按照位置传参的值,组织成一个元组
    #**kwargs: 接受的是按照关键字传参的值,组织成一个字典
    #args必须在kwargs之前
  1. #动态参数的另一种传参方式
    # def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    # print(args)
    #
    # func(1,2,3,4,5)
    # l = [1,2,3,4,5]
    # func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
  1. #函数的注释
    # def func():
    # """这个函数实现了某某某功能,
    # 参数1是什么什么作用,return返回的是什么值
    # ,这里放的就是函数的注释
    # :return:
    # """
  1.  
  1. # 如果默认参数的值是一个可变数据类型,
    # 那么每一次调用函数的时候,
    # 如果不传值就公用这个数据类型的资源
  2.  
  1. #三元运算 目前知道只能用来返回比较大的值
    # a=3
    # b=2
    # c = a if a>b else b
    # print(c)
    #变量 = 条件返回结果 if 条件 else 条件返回False的结果
    #必须要有结果
    #必须要有if和else
    #只能是简单的情况

python基础之初始函数的更多相关文章

  1. Python基础篇(初始函数)

    Python初始函数: 一.什么是函数 1.我们到目前为止, 已经可以完成一些软件的基础功能了. 那么我们来完成这样一个功 能: 约x: print("拿出手机") print(& ...

  2. python基础——高阶函数

    python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...

  3. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  4. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  5. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  6. Python基础(协程函数、内置函数、递归、模块和包)-day05

    写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04  ...

  7. python基础数据类型初始,用户交互

    一.基础数据类型初始 1.数字:int  1,2,3 print(100,type(100)) ',type('100')) 查看数据类型的方法:type()函数 取值范围: int(整型) 在32位 ...

  8. Python 基础 高阶函数

    python 把函数作为参数 如果传入abs 作为参数 def add(x,y,y): return f(x) + f(y) add(-5,9,abs) 根据函数的定义,函数执行的代码实际上是. ab ...

  9. 『Python基础-13』函数 Function

    这篇笔记记录的知识点: 函数的基本概念 自定义函数 函数的几种参数 编程的三种方式: 1.OOP 面向对象编程,万物皆对象,以class为主,抽象化 2.POP 面向过程编程,万事皆过程,def定义过 ...

随机推荐

  1. LVS集群之NAT模式

    集群的分类: (1)HA:高可用集群,有叫双机热备 原理:两台机器A.B,正常是A提供服务,当A机宕机或者服务有问题时,会切换到B机继续提供服务常用的高了永软件:heartbeat和keepalive ...

  2. [译]Webpack 4 — 神秘的SplitChunksc插件

    原文链接:Webpack 4 - Mysterious SplitChunks Plugin 官方发布了 webpack 4,舍弃了之前的 commonChunkPlugin,增加了 SplitChu ...

  3. shiro 不使用加密 解决 org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.sh

    测试本方法为失效的 报错: org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token ...

  4. Copy-On-Write in Swift

    Premature optimisation is the root of all evil. But, there are moments where we need to optimise our ...

  5. python调用系统命令的方法

    1.os模块 (1)system()方法 这个方法是直接调用标准C的system() 函数,在一个子终端运行系统命令 (2)poen()方法 这个方法执行命令后通过一个管道文件将结果返回 3.subp ...

  6. LC 650. 2 Keys Keyboard

    Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...

  7. brew update 很慢

    brew使用国内镜像源 这里用中科大的,另外还有清华的可用 # 步骤一 cd $(brew --repo) git remote set-url origin https://mirrors.tuna ...

  8. linux常用命令(12)head命令

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾.1 命令格式head [ ...

  9. [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程

    之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...

  10. C基础知识(12):可变参数

    该功能需要使用<stdarg.h>.函数的最后一个参数写成省略号,即三个点号(...),省略号之前的那个参数是int,代表了要传递的可变参数的总数.该文件提供了实现可变参数功能的函数和宏. ...