#1 内建函数

  乘方:pow()

  >>> pow(2,3)
  8
  >>>

  取绝对值:abs()

  >>> abs(-1)
  1
  >>>

  四舍五入为最接近的整数:round()

  >>> round(2/3)
  1
  >>> round(3/2)
  2
  >>>

#2 形参、实参

  def mythirdfunc(name1,name2):
      print(name1+'我爱你')#函数定义过程中的参数为形参,函数调用过程中则为实参
      return (name1+name2)#返回值(没有返回值时候 则返回None)

#3 函数文档

  print(print.__doc__)#查看函数print的函数文档(此方法直接在shell中输入使用)
  help(print)#查看函数print的函数文档

#4 关键字参数:调用函数时给实参指定形参名称

  mythirdfunc(name1='欢欢',name2='我爱你')

#5 默认参数:定义函数时指定形参参数对应的默认值,若在调用时未给参数赋值则使用默认值

  def mythirdfunc(name1='欢欢',name2='我爱你'):
         return (name1+name2)#返回值

#6 收集参数:调用函数时先收集所有非关键字参数为该参数的实参(使用元组--以,作为标志)

  def myfifthfunc(*name,name1=2):
      #*name--收集参数:调用函数时先收集所有非关键字参数为该参数的实参
      print(name,name1)

#7 局部变量、全局变量

  函数内定义、修改--局部变量

  函数外定义、修改--全局变量

  函数内修改全局变量:global 变量名

  def mysixthfunc():
      print('调用函数6')
      def myseventhfunc():#内嵌函数--只在定义该函数的函数内有效(定义局部内有效)
          print('调用函数7')
      myseventhfunc()

#8 闭包:自由变量+函数--调用了一个函数A,这个函数A返回了一个函数B。这个返回的函数B就叫做闭包。调用函数A的时候传递的参数就是自由变量。

  def myeighthfunc(x):
      def myninethfunc(y):
          return x*y
      return myninethfunc

  def myeighthfunc():
      x=[1]
      def myninethfunc():
          x[0]*=x[0]
          return x[0]#列表不是存放在栈里面 不受全局变量影响
      return myninethfunc()

  def myeighthfunc():
      x=1
      def myninethfunc():
          nonlocal x#nonlcal使用方法类似global--将变量定义为非局部变量
          x*=x
          return x
      return myninethfunc()

#9 lambda、过滤器filter、映射map

  1)lambda函数:lambda 参数:返回值

  g=lambda x,y:x+y
  print(g(1,2))

  2)过滤器filter--只返回True结果

  help(filter)
  print(list(filter(None,[0,1,2,False,True])))
  print(list(filter(lambda x:x%2,range(0,10,1))))

  3)映射map--返回所有结果

  print(list(map(lambda x:x%2,range(0,10,1))))

#10 递归(分支思想)--函数调用自身+正确的函数终止条件

  1)迭代实现阶乘

  def myeleventhfunc(n):#迭代实现
      result = n
      for i in range(1,n,1):
          result *= i
      return result
  number = 5
  result = myeleventhfunc(number)
  print('%d 的阶乘是:%d'%(number,result))

  2)递归实现阶乘

  def mytwelvethfunc(n):#递归实现
      if n == 1:
          return 1
      else:
          return n*mytwelvethfunc(n-1)
  number = 6
  result = mytwelvethfunc(number)
  print('%d 的阶乘是:%d'%(number,result))

  3)迭代实现菲波那切数列

  def mythirteenthfunc(n):#迭代实现
      n1 = 1
      n2 = 1
      n3 = 1
      if n < 1:
          print('输入错误')
          return -1
      else:
          if n < 3:
              return 1
          else:
              for i in range(1,n-1,1):
                  n3 = n1+n2
                  n1 = n2
                  n2 = n3
              return n3
  n = 3
  result = mythirteenthfunc(n)
  print('菲波那切数列中第%d个数为%d'%(n,result))

  4)递归实现菲波那切数列

  def myfourteenthfunc(n):#递归实现--分支思想

      if n < 1:
          print('输入错误')
          return -1
      if n == 1 or n ==2:
          return 1
      else:
          return myfourteenthfunc(n-1)+myfourteenthfunc(n-2)
  n = 4
  result = myfourteenthfunc(n)
  print('菲波那切数列中第%d个数为%d'%(n,result))

  5)递归实现汉诺塔

  def myfifteenthfunc(n,x1,x2,x3):
      if n == 1:
          print(x1,'--',x3)
      else:
          myfifteenthfunc(n-1,x1,x3,x2)
          print(x1,'--',x3)
          myfifteenthfunc(n-1,x2,x1,x3)
  n = 5
  myfifteenthfunc(n,'a','b','c')

Python-9 函数的更多相关文章

  1. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

  2. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  3. python split()函数

    Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...

  4. Python数学函数

    1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...

  5. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  6. Python之函数与变量

    本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...

  7. Python基础-函数篇

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派-- ...

  8. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  9. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  10. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

随机推荐

  1. 关于<head></head>标签;<form></form>标签

    <head> <title>此处写标题</title> 这是唯一能被用户看到的标记 <meta/>标签: 1.设置字符集:<meta http-e ...

  2. TYVJ 1117 BFS

    无限WA..参考了一下题解和同学写的....... 可以在bfs的基础上改一下.. 读入的时候平地权值是2 草地是0 bfs的时候如果搜到的是平地,那么直接加入,如果搜到的是草地,那么记录是草地. 从 ...

  3. JSON数据;

    1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 2.JSON的规则很简单: 对象是一个无序的“‘名称/值'对”集合.一个对象以“{”(左括号)开始, ...

  4. leetcode 179. Largest Number 求最大组合数 ---------- java

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  5. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  6. Spring使用ThreadLocal技术来处理这些问题

    过去我习惯于从左到右的思考,因为这符合书写的习惯,对于“好”得前端工程师,我们首先可能会去思考什么是好,好的定义和范围,标准和要求?但现在我习惯于从右到左的思考,因为我觉得越是抽象越难以定义,从粒度更 ...

  7. HTTP Code

    所有 HTTP 状态代码及其定义. 代码  指示  2xx  成功  200  正常:请求已完成.  201  正常:紧接 POST 命令.  202  正常:已接受用于处理,但处理尚未完成.  20 ...

  8. Linux 下如何安装软件

    一.解析Linux应用软件安装包 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz.它是使用UNIX系统的打包工具tar打包的. 2) rpm包 ...

  9. python海龟图制作

    海龟画图很好看,先上图形: 依据代码注释随意打印出来就行: #!/usr/bin/python3.4 # -*- coding: utf-8 -*- import turtle # 拿起一支笔 t = ...

  10. mybatis 与 缓存

    首先从配置文件说起,有个cacheEnabled的配置项,当设置为true时(默认就是true),Session就会用一个CachingExecutor来包装我们的Executor实例: public ...