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. expdp/impdp使用sysdba权限迁移数据

    expdp 'userid="/ as sysdba"' directory=DATA_PUMP_DIR full=y logfile=fullexp.log estimate_o ...

  2. Python3基本数据类型(五、字典)

    一.定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号中: dic = {key: ...

  3. [转]JetBrains IntelliJ IDEA 13 Keygen (Java Source Code)

    转载:http://www.rover12421.com/2013/12/09/jetbrains-intellij-idea-13-keygen-java-source-code.html JetB ...

  4. POJ-3273 Monthly Expense---最小化最大值

    题目链接: https://cn.vjudge.net/problem/POJ-3273 题目大意: 给N个数,划分为M个块(不得打乱数顺序).找到一个最好的划分方式,使得块的和的最大值 最小 解题思 ...

  5. POJ-3267 The Cow Lexicon---删除字符匹配单词

    题目链接: https://cn.vjudge.net/problem/POJ-3267 题目大意: 题意就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列. PS: ...

  6. 编程思想的理解(POP,OOP,SOA,AOP)

    http://blog.csdn.net/hawksoft/article/details/7021435 1)POP--面向过程编程(Process-oriented programming ):面 ...

  7. 2018中国大学生程序设计竞赛 - 网络选拔赛 1001 - Buy and Resell 【优先队列维护最小堆+贪心】

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6438 Buy and Resell Time Limit: 2000/1000 MS (Java/O ...

  8. 效率对比:各种语言构造100W个时间对象

    原本是用perl写了一个通过给定的时间范围来筛选一个比较大的日志文件.但是测试发现筛选130W行日志需要2分多钟,对其中几个低效率函数单独进行了效率测试,发现构造100W个时间对象所花时间也是个大户. ...

  9. 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)

    目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...

  10. 【luogu P3952 时间复杂度】 题解

    对于2017 D1 T2 这道题 实实在在是个码力题,非常考验耐心. 其实大体的思路并不是非常难想出来,但是要注意的小细节比较多. 题目链接:https://www.luogu.org/problem ...