广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python函数参数实例分析
  • 521
分享到

Python函数参数实例分析

2023-06-28 23:06:52 521人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python函数参数实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python函数参数实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.函数参数# 1.位置参数

本文小编为大家详细介绍“python函数参数实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python函数参数实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.函数参数

# 1.位置参数:调用函数时,传入的值需要按照位置顺序传入# 实例:求x的n次方def xPowN(x,n):        # 传入的值按照x,n的位置顺序传入    s = 1    while n > 0:        n = n - 1        s = s * x    return sprint("2的5次方的值为:",xPowN(2,5))print("5的2次方的值为:",xPowN(5,2))# 结果输出:# 2的5次方的值为: 32# 5的2次方的值为: 25
# 2.默认参数# 实例:求x的n次方def xPowN(x,n = 2):            s = 1    while n > 0:        n = n - 1        s = s * x    return sprint("2的5次方的值为:",xPowN(2,5))      # 当n有新的值传入,则使用新值计算,如果没有,则默认print("5的2次方的值为:",xPowN(5))        # n的值默认为2print("---------------------------")print("---------------------------")# 设置默认参数的注意事项:# 1.必选参数在前,默认参数在后;# 2.当函数有多个参数时,把变化大的参数放在前面,变化小的参数放在后面;# 变化小的参数可以作为默认参数;# 3.使用默认参数可以降低调用函数的难度;# 4.定义默认参数时,默认参数必须指向不变对象,如果是可变对象,则出现问题,如:list# 实例:学生信息登记def studentInfo(name,gender,age,city = "Shenzhen"):    print("学生的名字为:",name)    print("学生的性别为:",gender)    print("学生的年龄为:",age)    print("学生来自的城市为:",city)print("同学1的信息如下:")print("-----------------------------")studentInfo("Willard","男",18)                # 使用默认参数Shenzhenprint("*****************************")print("同学2的信息如下:")print("-----------------------------")studentInfo("ChenJD","女",18,"Maoming")        # 传入新的参数Maoming替换Shenzhen

 # 结果输出:
2的5次方的值为: 32
5的2次方的值为: 25
---------------------------
---------------------------
同学1的信息如下:
-----------------------------
学生的名字为: Willard
学生的性别为: 男
学生的年龄为: 18
学生来自的城市为: Shenzhen
*****************************
同学2的信息如下:
-----------------------------
学生的名字为: ChenJD
学生的性别为: 女
学生的年龄为: 18
学生来自的城市为: Maoming

# 3.可变参数:传入的参数个数是可变的,可以是0、1、2到任意个# 传统方式传入参数时,可以以list或tuple传入# 实例(传统方式):def sumOfN(intNumbers):    sum = 0    for n in intNumbers:        sum = sum + n    return sumprint("前100项累加和为:",sumOfN(range(101)))print("前50项累加和为:",sumOfN(range(51)))print("任意项累加和为:",sumOfN([1,2,5,6,7,8,9,10]))print("任意项累加和为:",sumOfN((1,2,3,4,5,7,8,9,12)))print("---------------------------------------------------------")# 可变参数:在参数前添加*号def sumOfN(*intNumbers):    sum = 0    for n in intNumbers:        sum = sum + n    return sumprint("任意项累加和为:",sumOfN(1,2,3,4,6,7,8,9))print("任意项累加和为:",sumOfN(1,2,4))print("任意项累加和为:",sumOfN(3,4,5,6,7))print("---------------------------------------------------------")# 把list或tuple作为可变参数传入def sumOfN(*intNumbers):    sum = 0    for n in intNumbers:        sum = sum + n    return sum# 已经有list,*nums表示把nums的所有元素作为可变参数传入nums = [1,2,3,5]print("传入一个list:",sumOfN(*nums))

 # 结果输出:
前100项累加和为: 5050
前50项累加和为: 1275
任意项累加和为: 48
任意项累加和为: 51
---------------------------------------------------------
任意项累加和为: 40
任意项累加和为: 7
任意项累加和为: 25
---------------------------------------------------------
传入一个list: 11

# 4.关键字参数# 可变参数允许传入任意个参数,这些可变参数在函数调用时自动组装为一个tuple;# 关键字参数允许传入任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict;def personInfo(name,age,**kw):    print("name:",name,"age:",age,"other:",kw)print("Willard个人信息:")personInfo("Willard",18)print("------------------------------------------------------------------")print("Willard更详细的个人信息:")personInfo("Willard",18,gender = "男",job = "Enginner")print("------------------------------------------------------------------")print("ChenJD个人信息:")personInfo("ChenJD",18,gender = "女")print("------------------------------------------------------------------")# 关键字参数:可以扩展函数的功能# Eg:用户注册功能,用户名和年龄是必填信息,其他信息均为可选# 可以先组装出dict,然后把dict转换为关键字参数传入extrainfo = {"gender":"Man","city":"Shenzhen","job":"Engineer"}print("hackerLuo个人信息如下:")personInfo("hackerLuo",18,gender = extraInfo["gender"],job = extraInfo["job"])print("------------------------------------------------------------------")# 使用简化写法print("简化写法传入hackerLuo个人信息:")personInfo("hackerLuo",18,**extraInfo)

 # 结果输出:
Willard个人信息:
name: Willard age: 18 other: {}
------------------------------------------------------------------
Willard更详细的个人信息:
name: Willard age: 18 other: {'gender': '男', 'job': 'Enginner'}
------------------------------------------------------------------
ChenJD个人信息:
name: ChenJD age: 18 other: {'gender': '女'}
------------------------------------------------------------------
hackerLuo个人信息如下:
name: hackerLuo age: 18 other: {'gender': 'Man', 'job': 'Engineer'}
------------------------------------------------------------------
简化写法传入hackerLuo个人信息:
name: hackerLuo age: 18 other: {'gender': 'Man', 'city': 'Shenzhen', 'job': 'Engineer'}

# 5.命名关键字参数# 函数调用者可以传入任意不受限制的关键字参数;# 传入了哪些参数,需要在函数内通过kw检查;def personInfo(name,age,**kw):    if "city" in kw:        pass    if "job" in kw:        pass    print("name:",name,"age:",age,"other:",kw)    # 如果要限制关键字参数的名字,可以用命名关键字参数# 只接收gender,job作为关键字参数# 命名关键字参数需要*作为分隔符,*后面的参数视为命名关键字参数# 命名关键字参数必须传入参数名def personInfo(name,age,*,gender,job):    print(name,age,gender,job)# 调用方式:print("命名关键字参数调用!")personInfo("Willard",18,gender = "男",job = "Engineer")print("------------------------------------------------------------------")# 如果函数定义中已经有一个可变参数,则后面跟着命名关键字参数不需要*分隔符def personInfo(name,age,*args,gender,job):    print(name,age,args,gender,job)    # 命名关键字参数的缺省值def personInfo(name,age,*,gender,job = "Engineer"):    print(name,age,gender,job)    print("命名关键字参数有缺省值!")personInfo("Willard",18,gender = "男")

# 结果输出:
命名关键字参数调用!
Willard 18 男 Engineer
------------------------------------------------------------------
命名关键字参数有缺省值!
Willard 18 男 Engineer 

# 6.参数组合# 常用参数:必选参数、默认参数、可变参数、关键字参数、命名关键字参数# 参数定义顺序:必选参数、默认参数、可变参数、命名关键字参数、关键字参数def egFunc1(name,age,gender = "男",*args,**kw):    print("name:",name,"age:",age,"gender:",gender,"args:",args,"kw:",kw)def egFunc2(name,gender = "男",*,job,**kw):    print("name:",name,"gender:",gender,"job:",job,"kw:",kw)    # 调用print("egFunc1传入name和age参数:")egFunc1("Willard",18)print("------------------------------------------------------------------")print("egFunc1传入name,age,gender参数:")egFunc1("ChenJD",18,"女")print("------------------------------------------------------------------")print("egFunc1传入name,age,gender,args参数:")egFunc1("hackerLuo",18,"男",170,60)print("------------------------------------------------------------------")print("egFunc1传入name,age,gender,args,kw参数:")egFunc1("Willard",18,"男",170,60,job = "Engineer")print("------------------------------------------------------------------")print("egFunc2传入name,gender,job,kw参数:")egFunc2("Willard",job = "Engineer",ext = None)print("------------------------------------------------------------------")print("egFunc1通过tuple和dict传入参数:")args = ("Willard",18,"男",170,60)kw = {"job":"Engineer"}egFunc1(*args,**kw)# Tips:# 1.默认参数一定要用不可变对象,如果是可变对象,程序运行时出现逻辑错误;# 2.*args是可变参数,args接收的是一个tuple;# 3.**kw是关键字参数,kw接收的是一个dict;# 4.可变参数可以直接传入:func(1,2,3,4),也可以先组装list或tuple,# 通过*args传入:func(*(1,2,3,4));# 5.关键字参数可以直接传入:func(a = 1,b = 2),也可以先组装dict,# 通过**kw传入:func(**{"a":1,"b":2});# 6.命名关键字参数在没有可变参数的情况下需要写分隔符*

# 结果输出:
egFunc1传入name和age参数:
name: Willard age: 18 gender: 男 args: () kw: {}
------------------------------------------------------------------
egFunc1传入name,age,gender参数:
name: ChenJD age: 18 gender: 女 args: () kw: {}
------------------------------------------------------------------
egFunc1传入name,age,gender,args参数:
name: hackerLuo age: 18 gender: 男 args: (170, 60) kw: {}
------------------------------------------------------------------
egFunc1传入name,age,gender,args,kw参数:
name: Willard age: 18 gender: 男 args: (170, 60) kw: {'job': 'Engineer'}
------------------------------------------------------------------
egFunc2传入name,gender,job,kw参数:
name: Willard gender: 男 job: Engineer kw: {'ext': None}
------------------------------------------------------------------
egFunc1通过tuple和dict传入参数:
name: Willard age: 18 gender: 男 args: (170, 60) kw: {'job': 'Engineer'}
 

2.递归函数

# 在函数内部,可以调用其他函数,亦可以调用函数本身,则为递归函数# 计算阶乘:n!=1×2×3...×ndef fact(n):    if n == 1:        return 1    return n * fact(n - 1)print("5的阶乘为:",fact(5))print("100的阶乘为:",fact(50))# print("10000的阶乘为:",fact(10000))   # print("10000的阶乘为:",fact(10000))    # 栈溢出# 在计算机中,函数调用是通过栈数据结构实现,每进入一个函数调用,# 栈会加一层栈帧,当函数返回,栈减少一层栈帧,递归调用次数过多,会导致栈溢出;# 读者尝试fact(1000),fact(10000),可能fact(1000)就已经栈溢出,# 笔者测试fact(1000)还是可以正常输出的,fact(10000)栈溢出

# 结果输出:
5的阶乘为: 120
100的阶乘为: 30414093201713378043612608166064768844377641568960512000000000000

读到这里,这篇“Python函数参数实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: Python函数参数实例分析

本文链接: https://www.lsjlt.com/news/321391.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python函数参数实例分析
    本文小编为大家详细介绍“Python函数参数实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python函数参数实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.函数参数# 1.位置参数...
    99+
    2023-06-28
  • Python函数参数案例分析
    本篇内容主要讲解“Python函数参数案例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python函数参数案例分析”吧!1. 参数分类函数,在定义的时候,可以有参数的,也可以没有参数。从函...
    99+
    2023-07-05
  • Python函数与参数实例代码分析
    这篇文章主要介绍了Python函数与参数实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python函数与参数实例代码分析文章都会有所收获,下面我们一起来看看吧。函数...
    99+
    2022-10-19
  • C++函数参数实例分析
    这篇文章主要介绍了C++函数参数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数参数实例分析文章都会有所收获,下面我们一起来看看吧。一、函数参数的默认值C++ 中可以在函数声明时为参数提供一个默...
    99+
    2023-06-30
  • Python中函数的参数类型实例分析
    今天小编给大家分享一下Python中函数的参数类型实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、Python的函...
    99+
    2023-07-02
  • Python函数参数案例代码分析
    这篇文章主要介绍“Python函数参数案例代码分析”,在日常操作中,相信很多人在Python函数参数案例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python函数参数案例代码分析”的疑惑有所帮助!...
    99+
    2023-07-05
  • ES6函数自带参数实例分析
    本篇内容介绍了“ES6函数自带参数实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ES6函数...
    99+
    2022-10-19
  • 函数参数的示例分析
    这篇文章将为大家详细讲解有关函数参数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。函数的参数(实参和形参):形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,...
    99+
    2023-06-15
  • Python的pytest参数化实例分析
    今天小编给大家分享一下Python的pytest参数化实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。源代码分析def...
    99+
    2023-06-26
  • Python map接收参数实例分析
    这篇文章主要介绍“Python map接收参数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python map接收参数实例分析”文章能帮助大家解决问题。说明map函数接收两个参数,一个是函...
    99+
    2023-06-30
  • PHP中函数参数的示例分析
    小编给大家分享一下PHP中函数参数的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP 函数参数可以通过参数向函数传递...
    99+
    2022-10-19
  • pytest fixtures函数及测试函数的参数化实例分析
    这篇文章主要介绍“pytest fixtures函数及测试函数的参数化实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytest fixtures函数及测试函数的参数化实...
    99+
    2023-06-30
  • python参数+关键字参数+inspect模块实例分析
    这篇文章主要讲解了“python参数+关键字参数+inspect模块实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python参数+关键字参数+inspect模块实例分析”吧!函数内...
    99+
    2023-06-30
  • ES6函数参数必须的示例分析
    小编给大家分享一下ES6函数参数必须的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!函数参数必须ES6中可以给参数指定默...
    99+
    2022-10-19
  • Python之matplotlib.pyplot基本参数实例分析
    这篇文章主要介绍了Python之matplotlib.pyplot基本参数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python之matplotlib.pyplot基本参数实例分析文章都会有所收获,...
    99+
    2023-07-02
  • Python可变参数用法实例分析
    本文实例讲述了Python可变参数用法。分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import math def ca...
    99+
    2022-06-04
    实例 参数 Python
  • Python argparse参数模块之命令行参数实例分析
    这篇文章主要介绍“Python argparse参数模块之命令行参数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python argparse参数模块之命令行参数实例分析”文章能帮助大家解...
    99+
    2023-07-02
  • Python 函数参数11个案例分享
    目录1. 参数分类2. 十一个案例3. 传参的坑大家好,今天给大家分享一下明哥整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80%...
    99+
    2023-02-27
    Python 函数参数 Python 函数参数案例
  • python关键字传递参数实例分析
    1、说明 关键词传递以“形参变量名=实参”的形式参与实参关联,根据形参的名称进行参数传递,使实参和形参的顺序不一致。不用担心定义函数时参数的顺序,直接在传参时指定相应的名称即可。 2、两种形式 makeup_ur...
    99+
    2022-06-02
    python 关键字 传递参数
  • JS中函数参数传递与同名参数的示例分析
    这篇文章主要为大家展示了“JS中函数参数传递与同名参数的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中函数参数传递与同名参数的示例分析”这篇文章吧...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作