Python之函数的定义与使用示例

  Python之函数的定义与使用示例,结合实例形式分析了Python函数的定义、参数、变量作用域、返回值等相关概念与使用技巧。

Python定义函数使用def关键字,一般格式如下:

def 函数名(参数列表):

函数体

让我们使用函数来输出"HelloWorld!":

>>> def hello() :

  print("Hello World!")

>>> hello()

Hello World!

>>>

更复杂点的应用,函数中带上参数变量:

def area(width, height):

  return width * height

def print_welcome(name):

  print("Welcome", name)

print_welcome("Fred")

w = 4

h = 5

print("width =", w, " height =", h, " area =", area(w, h))

以上实例输出结果:

Welcome Fred

width = 4 height = 5 area = 20

函数变量作用域

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。通过以下实例,你可以清楚了解Python函数变量的作用域:

#!/usr/bin/env python3

a = 4 # 全局变量

def print_func1():

  a = 17 # 局部变量

  print("in print_func a = ", a)

def print_func2():

  print("in print_func a = ", a)

print_func1()

print_func2()

print("a = ", a)

以上实例运行结果如下:

in print_func a = 17

in print_func a = 4

a = 4

关键字参数

函数也可以使用kwarg=value的关键字参数形式被调用.例如,以下函数:

def parrot(voltage, state='a stiff', action='voom',

type='Norwegian Blue'):

  print("-- This parrot wouldn't", action, end=' ')

  print("if you put", voltage, "volts through it.")

  print("-- Lovely plumage, the", type)

  print("-- It's", state, "!")

可以以下几种方式被调用:

parrot(1000) # 1 positional argument

parrot(voltage=1000) # 1 keyword argument

parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments

parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments

parrot('a million', 'bereft of life', 'jump') # 3 positional arguments

parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword

以下为错误调用方法:

parrot() # required argument missing

parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword argument

parrot(110, voltage=220) # duplicate value for the same argument

parrot(actor='John Cleese') # unknown keyword argument

返回值

Python的函数的返回值使用return语句,可以将函数作为一个值赋值给指定变量:

def return_sum(x,y):

  c = x + y

  return c

res = return_sum(4,5)

print(res)

你也可以让函数返回空值:

def empty_return(x,y):

  c = x + y

  return res = empty_return(4,5)

print(res)

可变参数列表

最后,一个最不常用的选择是可以让函数调用可变个数的参数.这些参数被包装进一个元组(查看元组和序列).在这些可变个数的参数之前,可以有零到多个普通的参数:

def arithmetic_mean(*args):

  sum = 0

  for x in args:

    sum += x

  return sum

print(arithmetic_mean(45,32,89,78))

print(arithmetic_mean(8989.8,78787.78,3453,78778.73))

print(arithmetic_mean(45,32))

print(arithmetic_mean(45))

print(arithmetic_mean())

以上实例输出结果为:

244

170009.31

77

45

0

(0)

相关推荐

  • Python中的*args和**kwargs

    在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号.其实这只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数:kw ...

  • 教你一招 | Python: 函数参数魔法

    函数参数 在 Python 中,定义函数和调用函数都很简单,但如何定义函数参数和传递函数参数,则涉及到一些套路了.总的来说,Python 的函数参数主要分为以下几种: 必选参数 默认参数 可变参数 关 ...

  • Python函数的基础学习

    Python函数的基础学习 一.函数分类 二.函数基本形式 三.形参与实参 1.定义理解 2.改变形对实参的影响 四.参数类型 1.位置参数 2.默认值参数 1.默认值参数位置问题 2.理解默认值参数 ...

  • 第13天:Python 函数的参数

    定义一个函数非常简单,但是怎么定义一个函数,需要什么参数,怎么去调用却是我们需要去思考的问题. 如同大多数语言一样(如 Java),Python 也提供了多种参数的设定(如:默认值参数.关键字参数.形 ...

  • Python之函数返回值的示例代码详解

    文中通过示例代码介绍的非常详细,下面我们一起来看一下吧. 0x  00返回值简介 回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍print和return的区别,print仅仅是打印在控制台 ...

  • Python的函数思想及基本用法,划重点!

    函数是一段可重复使用的.具有特定功能的语句块,通过函数名来定义和调用.经过定义,函数内的语句块成为一个整体,即"函数体",可以通过使用函数名的调用从而实现函数内部语句块的重复使用. ...

  • 零基础学Python:函数精讲

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 1. 位置参数与关键字参数 尽管这种方式很常见,但是位置参数的一个弊端是必须熟记每个位置的参 ...

  • Python学习——函数及调用

    经过之前Python学习--十分钟入门Python一文的学习相信大家对于Python都有了大概的了解.这节课芒果带大家一起来学习Python函数. 函数是带名字的代码块,用来完成某项具体任务的.当我们 ...

  • Python sorted函数及用法

    sorted() 作为 Python 内置函数之一,其功能是对序列(列表.元组.字典.集合.还包括字符串)进行排序. sorted() 函数的基本语法格式如下: list = sorted(itera ...

  • 初中数学函数知识点总结!掌握函数的定义、性质和图像,收藏一份~

    从小学到高中,数学都是学习的大头,初中的数学在整个学习阶段中有限的尤为重要,难点自然也非常多.但是并不是每一个难点都特别困难,今天跟大家分享的就是中考必考的一个知识点:"函数". ...

  • python partial函数

    Python 提供了一个 functools 的模块,该模块为高阶函数提供支持,partial 就是其中的一个函数,该函数的形式如下: functools.partial(func[,*args][, ...

  • python:函数传参是否会改变函数外参数的值

    参考链接: https://blog.csdn.net/u012614287/article/details/57149290 https://blog.csdn.net/qq915697213/ar ...

  • 为什么 Python 没有函数重载?如何用装饰器实现函数重载?

    英文:https://arpitbhayani.me/blogs/function-overloading 作者:arprit 译者:豌豆花下猫("Python猫"公众号作者) 声 ...