python基础(二):

菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍

函数:

定义一个函数:

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  

def fun(arg):
pass
return arg # 函数调用语法
fun(arg)
  • arg:argument,参数(也叫prarmeter) ,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • def:define,定义,创建函数 ,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 代码缩进表示语句块,表明代码从属关系
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

函数的调用:

  将参数传入已经定义好的函数中,便可以调用此函数

def printme( str ):
"打印任何传入的字符串"
print (str)
return # 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数") 以上实例输出结果:
我要调用用户自定义函数!
再次调用同一函数

函数返回值:

  • 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果

  • #定义函数
    def add2num(a, b):
    return a+b #调用函数,顺便保存函数的返回值
    result = add2num(100,98) #因为result已经保存了add2num的返回值,所以接下来就可以使用了
    print (result) --->198

    函数返回值可以为多个:

  • def divid(a, b):
    ... shang = a//b
    ... yushu = a%b
    ... return shang, yushu
    ...
    >>> sh, yu = divid(5, 2)
    >>> sh
    5
    >>> yu
    1

4种函数的类型:

函数根据有没有参数,有没有返回值,可以相互组合,一共有4种

  • 无参数,无返回值

    •   

      # 函数定义,初级
      def numsum():
      a = 5
      b = 10
      c = a + b
      print(c) # 函数执行
      numsum() --->15
  • 无参数,有返回值

  • 有参数,无返回值

  • 有参数,有返回值

    • 输入参数:

      • 形参:形式参数,声明函数时,括号()中的参数
      • 实参:实际参数,调用函数是,括号()中的参数
      • 实参将值传给形参,本质上是变量赋值
      • 返回值:return
        • 会终止函数执行(return是函数的最后一句),并返回一个值给调用方
        • 不带表达式的return返回None
        • Print()不是返回值,只是输出信息到界面
        • # 函数定义,带输入输出
          def numsum2(a, b):
          c = a + b
          return c # 函数调用
          d = numsum2(10, 20)
          print(d) --->30

函数中参数的类别:

  • 必需参数

    •   

      #可写函数说明
      def printme( str ):
      "打印任何传入的字符串"
      print (str)
      return #调用printme函数
      printme()
  • 关键字参数
    •   

      def about(name,course,site):
      print (name,course,site) about(site='www.baidu.com',name='green',course=100) ##以关健字方式传入参数(可以不按顺序)
  • 默认参数
    •   

      def about(name,course,site):
      print (name,course,site) about('jim','','www.baidu.com') ## 必须按顺序传参
  • 不定长参数
    •   

      • 非关键字可变参数(元组)

        • 放在默认值参数后面
        • 可将传入的不确定数量的默认参数聚合为元组方便函数使用
        • def fun(a, b, *args):
          print(a)
          print(b)
          print(args)
          print("="*30)
          ret = a + b
          for i in args: #便利args中的元素
          ret += i
          return ret print(fun(1,2,3,4)) 结果:
          1
          2
          (3, 4)
          ==============================
          10
      • 关键字可变参数(字典)
        • 放在非关键字可变参数后面
        • 可将传入的不确定数量的默认值参数聚合为字典方便函数使用
        • def fun(a, b, *args, **kwargs):
          print(a)
          print(b)
          print(args)
          print(kwargs) fun(1, 2, 3, 4, name = "hello", age = 20) 结果:
          1
          2
          (3, 4)
          {'name': 'hello', 'age': 20}
尽量避免多种参数格式混合(主要是两种可变参数)
多参数混合时注意顺序:
一般顺序是:默认参数,默认值参数,非关键字可变参数,关键字可变参数
注意:带关键字的参数必须放在最后

匿名函数:

  • 语义上讲,lambda 只是普通函数定义中的一个语法技巧,书写代码更简洁(但不易懂)
  • lambda 是一个表达式(非代码块),比 def 简单,仅能封装有限的逻辑如if else分支,不能使用多项分支和循环,不适合复杂操作
# 普通函数
def def_sum(a, b):
return a + b def_sum(5, 10) # 匿名函数:变量名 = lambda 参数... : 表达式计算
lambda_sum = lambda a, b: a + b
lambda_sum(5, 10)
--->15
分支匿名函数

# 普通函数
def def_gender(g):
if g == 1:
return '男性'
else:
return '女性' def_gender(0) # 匿名函数:变量名 = lambda 参数... : 分支1的值 if 判断条件 else 分支2的值
lambda_gender = lambda a: '男性' if a == 1 else '女性'
lambda_gender(1)
--->男性
# 普通函数
def absum(a, b):
return a + b def def_sum2(a, b, c):
return absum(a, b) + c def_sum2(1,2,3) # 匿名函数:变量名 = lambda 参数... : 其他函数组成的表达式
def absum(a, b):
return a + b lambda_sum = lambda x, y, z: absum(x, y) + z
lambda_sum(1,2,3) --->6

匿名函数练习题:

将列表内的字典按照年龄进行排序:
infors = [{'name':'laowang','age':23},{'name':'ab','age':34},{'name':'bf','age':43}]
 

初识python 函数(定义,传参,返回值)的更多相关文章

  1. Python函数之传参

    目录 1. 函数传参 1.1 参数的作用 1.2 形参和实参 1.3 位置参数 1.4 关键字参数 1.5 默认实参 1.6 参数总结 2. 可变参数 1. 函数传参 1.1 参数的作用 1.2 形参 ...

  2. python函数的传参模式

    python里的变量更像是一个名字.标签.而Python中一切又皆为对象. 当函数传参时,函数参数作为一个标签,指向某个对象,因此更贴切的说是"call by object". 但 ...

  3. python函数的使用和返回值

    #coding=utf-8 def a(): i=1a() #函数的返回值,用return语句实现 #一个返回值的情况def test(): i=7 return iprint test() #多个返 ...

  4. python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)

    一.函数的初始 比如python没有len()方法,如何求字符串的长度使用for循环 s = 'fdshfeigjoglfkldsja' count = 0 for i in s: count += ...

  5. python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)

    一.函数的初始 比如python没有len()方法,如果求字符串的长度 使用for循环 s = 'asdfadsf' count = 0 for i in s: count += 1 print(co ...

  6. 9 - Python函数定义-位置参数-返回值

    目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...

  7. Python之函数(一)定义函数以及传参

    定义函数以及传参 函数的定义 def 函数名(): 函数体 例子: def func():#def关键字--定义 func函数名--和变量定义规则一样 ()必须要写格式 :声明 语句结束 s=[1,2 ...

  8. Python全栈工程师(函数的传参)

     ParisGabriel   感谢 大家的支持                                                               每天坚持 一天一篇 点个订 ...

  9. day11 python学习 函数的建立,返回值,参数

    函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等 ...

随机推荐

  1. linux配置IP

    1.配置ip的几种方式:   1.使用ifconfig命令(临时配置,重启后失效) 2.使用setup工具(RedHat专有的,不过经本人测试,虚拟机装了centos,也有setup,也可以进行配置, ...

  2. MySQL登录之socket与TCP

    在一台测试服务器上部署了2个实例,一个端口是默认的3306,另一个端口是3376.MySQL的版本是5.6.35 [root@MySQL56_L1 ~]# ps -ef | grep mysql | ...

  3. RAC共享磁盘挂载工具

    待更新: oracleasm: udev: 自己搭建个存储服务器:

  4. 字段处理rtrim去掉结尾的特殊字符和空格

    SQL> create table ycrtest2 (name varchar2(50)); Table created. SQL> insert into ycrtest2 value ...

  5. Jerry的CRM Middleware(中间件)文章合集

    我在SAP成都研究院做过的CRM中间件的项目其实并不是很多: 1. 2013年下半年和2014年上半年曾经支持过中联重科和蒙牛的CRM项目相关的中间件问题; 2. 2014年上半年做过一个CRM物料主 ...

  6. oozie coordinator 定时调度

      (本段内容摘自http://blog.sina.com.cn/s/blog_e699b42b0102xjqw.html  Oozie总结 行成于思的博客)      Oozie提出了Coordin ...

  7. What is Thread

    A thread is a fundamental unit of CPU utilization –a thread ID –a program counter –a register set –a ...

  8. luogu P4168 [Violet]蒲公英

    嘟嘟嘟 分块经典题竟然是一道黑题…… 分块求区间众数的大体思想是对于询问区间[L, R],预处理出这中间的整块的众数,然后统计两边零散的数在[L, R]中出现的次数,最后取出现次数最多且最小的数. 因 ...

  9. 【转】Android应用程序窗口(Activity)窗口对象(Window)创建指南

    在前文中,我们分析了Android应用程序窗口的运行上下文环境的创建过程.由此可知,每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一 ...

  10. ES6学习笔记(对象)

    1.属性的简洁表示法 const foo = 'bar'; const baz = {foo}; baz // {foo: "bar"} // 等同于 const baz = {f ...