函数的定义和使用

1 def test(x):       # x代表形参
2 '''
3 2*x+1
4 :param x:整形数字
5 :return:返回计算结果
6 '''
7 y = 2*x+1
8 return y
9 p = test(3) # test()表示运行名为test函数,3代表实参,给x进行赋值
10 print(p)

函数的定义:

  • def: 表示函数的关键字
  • 函数名: 函数的名称, 根据函数名调用函数
  • 函数体: 函数中进行一系列的逻辑计算
  • 参数: 为函数执行完毕后, 可以给调用者返回数据

一. 为什么要用函数?

  1. 减少代码量
  2. 保持一致性
  3. 易维

二. 函数的参数

函数有三种不同的参数:

  • 普通参数

    # ######### 定义函数 #########

      # name 叫做函数func的形式参数,简称:形参
    def func(name):
    print name # ######### 执行函数 #########
    # 'wupeiqi' 叫做函数func的实际参数,简称:实参
    func('wupeiqi')
  • 默认参数

      def func(name, age = 18):
    
          print "%s:%s" %(name,age)
    
      # 指定参数
    func('wupeiqi', 19)
    # 使用默认参数
    func('alex') 注:默认参数需要放在参数列表最后
  • 动态参数 *args

      def func(*args):
    
          print args
    
      # 执行方式一
    func(11,33,4,4454,5) # 执行方式二
    li = [11,2,2,3,3,4,54]
    func(*li)
  • 动态参数 **kwargs

      def func(**kwargs):
    
          print args
    
      # 执行方式一
    func(name='wupeiqi',age=18) # 执行方式二
    li = {'name':'wupeiqi', age:18, 'gender':'male'}
    func(**li)

三. 函数的变量

函数的变量可分为 全局变量和局部变量

全局变量(大写)

定义:没有缩进的变量

局部变量(小写)

定义:子程序下定义的变量

name = 'lhf'                 # 这里就指全局变量

def change_name():
name = '帅了一比' # 这里就指局部变量
print('change_name', name) change_name()
print(name) 结果
change_name 帅了一比
lhf

global和nolocal

global声明是全局变量,nolocal指定上一级变量

未声明全局变量

x = 99
def func():
x = 88
func()
print(x) #输出99

声明全局变量

x = 99
def func()
global x
x = 88
func()
print(x) #输出88

未指定上一级变量

def func():
count = 1
def foo():
count = 12
foo()
print(count)
func() #输出1

指定上一级变量

def func():
count = 1
def foo():
nonlocal count
count = 12
foo()
print(count)
func() #输出12

四. 递归函数

ps: 用的好的都是大牛~

就是函数自己调用自己

特性:

  1. 必须有一个明确的结束条件,

  2. 每次进入深一层递归时,问题规模都应有所减少

     def calc(n):
    print(n)
    if int(n / 2) == 0:
    return n # 当上面的条件成立后一个真值,返回到函数
    res = calc(int(n / 2))
    print(n,res)
    return res # 返回res的值,要将真值一层一层传递回去 calc(10)

五. lamabda匿名函数

lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数

print [(lambda x:x*x)(x)for x in range(11)]
#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print (lambda x:x*x)(3)
#结果:9
g=lambda x:x*x
print g(4)
#结果:16

python - 函数的定义和使用的更多相关文章

  1. Python函数的定义、参数传入与函数的调用

    作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...

  2. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  3. 第十一篇 Python函数之定义&形参&实参&位置参数&关键字参数&可变长参数&默认参数

    函数的定义:函数是为了完成某一特定功能的,函数是逻辑结构化和过程化的一种编程方法 函数的定义格式,函数一般都是有返回值的 #语法 #函数名要能反映其意义 def 函数名(参数1,参数2,参数3,... ...

  4. Python 函数之定义函数

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号: 然后,在缩进块中编写函数体,函数的返回值用return语句返回. 1.定义一个函数 def myfirst( ...

  5. python函数,定义,参数,返回值

    python中可以将某些具备一定功能的代码写成一个函数,通过函数可以在一定程度上减少代码的冗余,节约书写代码的时间.因为有一些代码实现的功能我们可能会在很多地方用到. 1.函数的声明与定义 通过def ...

  6. python 函数基础 定义

    一.函数介绍 1.为什么要有函数? 没有函数的代码组织结构不清晰,可读性差. 代码冗余 管理维护难度大,扩展性 2.什么是函数? 具备某一个功能的工具就是程序中的函数. 事先准备工具的过程就是:函数的 ...

  7. Python函数的定义与调用、返回值、参数

    一.函数是什么 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.比如print(),len()等.但你也可以自己创建函数,这被叫做用户自 ...

  8. python函数嵌套定义

    python的这个特性是很特别的,与C#和C++都不一样.请看下面的例子 def outFun(): def innerFun_0():#1.在内部定义一个函数 print("i am fi ...

  9. python 函数的定义及传参

    函数是一个通用的程序结构部件,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义一个简单的函数: >>> def test(a): #创建一个函数,函数名是test ...

随机推荐

  1. webview 播放H5视频问题 黑屏 只有声音没有画面

    android 用webview 播放网络视频怎控制播放按键? 在代码中加入webview.getSettings().setJavaScriptEnabled(true);//支持jswebview ...

  2. C# 截取字符串——

    string  strID ="NODE_aSDFghsdfgyuhjidfgh_45678" //得到_ 中间的数 int index = strID.IndexOf(" ...

  3. Spinner的样式大致简介

    Spinner Spinner 是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择.Spinner是ViewGroup的间接子类,它和其他的Android控件一样,数据需要使用Adapter ...

  4. BZOJ 4310 二分+SA+RMQ

    思路: 首先求出后缀数组和height数组,这样能得到本质不同的子串数目 这里利用:本质不同的子串=∑(Len−SA[i]−height[i])=∑(Len−SA[i]−height[i])利用SA[ ...

  5. 【转】Linux下使用locale命令设置语言环境

    转自:http://www.cnblogs.com/dolphi/p/3622570.html locale命令设置语言环境 在Linux中通过locale来设置程序运行的不同语言环境,locale由 ...

  6. c# winform控件dock属性停造位置、摆放顺序详解

    dock : [英文释义- 码头.依靠][winform释义- 获取或设置当前控件依靠到父容器的哪一个边缘.] 用途:多数控件都有这个属性,主要用来设置控件的布局. 但对于不太了解这个属性的朋友来说有 ...

  7. PHP内的包含语句(include(),require(),include_once(),require_once())

    背景:继续总结PHP内的函数. 在一般的程序中,我们经常重复用到一些代码,但是如果只是简单的进行代码复制,则会增加代码的冗余度,不便于程序的运行.因此,我们可以把重复性的代码分离出来,以外部文件的方式 ...

  8. Leetcode0143--Reorder List 链表重排

    [转载请注明]https://www.cnblogs.com/igoslly/p/9351564.html 具体的图示可查看 链接 代码一 /** * Definition for singly-li ...

  9. 如何用putty链接服务器端,并安装wdcp

    首先把自己阿里云的磁盘格式化然后重启 自己下载一个PuTTY 打开后输入自己的Ip地址端口号默认是22 会跳出一个yes 跟no界面,点击yes 会进入一个类似cmd界面 直接输入root,然后会提示 ...

  10. html5——多列布局

    基本概念 1.多列布局类似报纸或杂志中的排版方式,上要用以控制大篇幅文本. 2.跨列属性可以控制横跨列的数量 /*列数*/ -webkit-column-count: ; /*分割线*/ -webki ...