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. spark学习地址

    http://blog.sina.com.cn/s/blog_64d9a6ef0101ghvs.html http://blog.sina.com.cn/s/blog_49cd89710102v3b1 ...

  2. 网络威胁防护,Azure 靠的是它?

    在当今数字化转型的浪潮中,越来越多的企业希望转型于云.使用云能帮助企业提高工作效率.降低 IT 成本.增强竞争优势,有效推动企业的业务发展.但是,在向云迁移的过程中,基于云的数据中心更有可能被攻击,所 ...

  3. 安装字体或直接调用非注册字体 z

    1.安装字体//程序直接将字体文件安装的系统中.函数声明:[DllImport("kernel32.dll", SetLastError = true)] static exter ...

  4. Selenium2学习(十二)-- alert\confirm\prompt

    前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...

  5. day1 python 介绍、基本语法、流程控制

    请查看我的云笔记链接: http://note.youdao.com/noteshare?id=0ea7425d3e3669800cb0d73f7ec8865d&sub=D87B4BF820C ...

  6. Oracle权限相关查询

    Oracle权限相关查询着实视图有点多,记录下常用的语句,方便查询:1.查看所有用户:  select * from dba_users;  select * from all_users;  sel ...

  7. 『看球笔记』20131230切尔西vs利物浦,赛后复盘聊聊球

    2013-12-30 第十九轮英超联赛 切尔西vs利物浦         看着这张板凳合照… 有木有一种心里哇凉哇凉的感觉.   赛后whoscored的平均位置图 左边车子,右边我军     阿格回 ...

  8. 前端开发css禁止选中文本

    在我们日常的Java web前端开发的过程中呢,程序员们会遇到各种各样的要求,所以不每天学的东西感觉自己都退步了,都更不上时代的发展了. 每天应对各种需求,每天活在疑问中就是我们程序员的真是写照.但我 ...

  9. iOS UI(布局)约束是什么?view1.attr1 = view2.attr2 * multiplier + constant

    /* Create constraints explicitly.  Constraints are of the form "view1.attr1 = view2.attr2 * mul ...

  10. kill 使用当前数据库的所有session

    --在维护中经常需要将某一数据库所有进程都杀掉,手工杀有点太费事.写了一个存储过程 --usage:proc_kill 'PSADBA' create proc proc_kill(@db varch ...