美文网首页
python入门引导(四·函数)

python入门引导(四·函数)

作者: 一只野生猿 | 来源:发表于2017-12-18 08:18 被阅读0次

上一篇:python入门引导(三·逻辑控制)

一、概念

什么是函数,函数是一个个单一可多次使用的功能模块,这样可以避免重复写相同的代码。函数是我们写代码用得最多的东西,可以很好的组织我们的程序。

二、定义

python函数定义如下:

def functionname(arg1, arg2, *args, **kwargs):
    do_something()
    return result

定义函数的关键字def, 后面是函数名, ()号里面是参数。

三、参数

python的参数不需要定义数据类型,大大简化了我们的操作。参数的写法有以下几种方式:

  • 参数个数固定, 不带默认值
def foo(a, b):
    return a + b
  • 参数个数固定,带默认值
# 如果调用时不传递参数b的值,则b值为1,否则为传递的值
def foo(a, b=1):
    return a + b
  • 参数个数不固定 *args
# *args是一个tuple,当传递的参数个数不固定时使用,在函数
# 里面通过args[0], args[1]这样的方式来访问
def foo(a, b, *args):
    pass
  • 参数个数不固定 **kwargs
# **kwargs 是一个列表,这种很适合我们传递键值对参数
def foo(a, b, **kwargs):
  # 可以通过如下方式访问这种参数
  for key in kwargs:
    print(kwargs[key])

四、函数调用

针对每种不同写法的参数,调用该怎么用呢

  • 参数个数固定,不带默认值
def foo(a, b):
  return a + b
# 直接调用, 参数位置一一对应,即是a=1, b=2
foo(1, 2)
  • 参数个数固定,带默认值
def foo(a=1, b=2):
  return a+b
# 这种情况我们有两种方式给参数赋值
# 1.直接传值,位置一一对应,与上面方法一样
foo(3, 4)
# 2.指定参数名赋值,这种方式,位置可以不定
foo(b=3, a=4)
# 但是不能这么写,指定参数赋值必须在直接传值的后面 ***
foo(a=6, 4)
  • 参数个数不固定 *args
def foo(a, b, *args):
  result = a + b
  for item in args:
    result += item
# 调用方式
foo(1, 2, *[2, 3, 4, 5, 6])
# 如果不加*号的话,传入的列表将会作为一个元素,即args的值是([2, 3, 4, 5, 6], ), 而不是(2, 3, 4, 5, 6)
# 调用带*args参数的时候,前面不能有指定参数赋值
foo(1, b=2, *[2, 3, 4, 5, 6]) # 这是错误的写法
  • 参数不固定 **kwargs
def foo(a, b, **kwargs):
  for key in kwargs:
    print(key, kwargs[key])
  return a + b
# 调用方式
foo(a, b, **{"name": "python", "author": "guido"})

五、局部变量与全局变量

函数内的变量称作为局部变量,函数外是没法访问的,全局变量是函数内外都可以访问的。

isBigger = False

def foo(num):
  print(isBigger)
  if num > 10:
    isBigger = True
  print(isBigger)
foo(11)
print(isBigger)
# 输出结果
# False
# True
# False

可以看到函数内的变量如果与函数外部变量名相同,当只是使用这个变量的时候,值是全局的值,当重新给这个变量赋值的时候,这个变量就是该函数的局部变量,它不会更改全局变量的值,那么如果要在函数内修改全局变量的值,就需要使用global申明变量是全局变量。

isBigger = False

def foo(num):
  global isBigger
  print(isBigger)
  if num > 10:
    isBigger = True
  print(isBigger)
foo(11)
print(isBigger)
# 输出结果
# False
# True
# True

六、返回值

函数通过return来返回一个最终值,当不写这个return语句的时候,默认函数是返回None的。

相关文章

  • python入门引导(四·函数)

    上一篇:python入门引导(三·逻辑控制) 一、概念 什么是函数,函数是一个个单一可多次使用的功能模块,这样可以...

  • 2018-10-14

    C基础入门Python(四)——函数 一、创建函数 1、def语句创建函数 def 函数名(参数表)def hel...

  • Python入门看哪本书好? 这里有答案

    Python入门看哪本书好呢?Python入门不知道该选哪本书?Python入门没有一本好书引导,会很难吗?你还在...

  • python入门(四)函数

    函数 关键字 def 后接函数名称和圆括号() 传人参数必须放到圆括号中() 函数第一行使用冒号:结尾 函数体使用...

  • Python精简入门学习(十一)

    Python精简入门学习之内置函数(上)-内置函数 -常用函数

  • 学Python的012天

    原创:XIAO油菜花学习进度记录:《零基础入门学习Python》P21:函数:内嵌函数和闭包《Python开发入门...

  • Python入门之 Python内置函数

    Python入门之 Python内置函数 函数就是以功能为导向,一个函数封装一个功能,那么Python将一些常用的...

  • #python基础入门#目录

    python基础入门_01 保留字常用函数turtle库基本数据类型time库 python基础入门_02 程序的...

  • python入门引导(二·数据类型)

    上一篇:python入门引导(一·初识) python基础知识:语法,变量,数据类型 一·语法 缩进 python...

  • Python 基础入门 5--面向对象

    Python 基础入门前四篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

网友评论

      本文标题:python入门引导(四·函数)

      本文链接:https://www.haomeiwen.com/subject/dxauwxtx.html