Python3函数,形参,实参,返回值及相关细节

简介: 揭示和总结Python函数定义,形参实参,参数个数,函数返回值等等问题

Python3基础——函数

(赠言):编程实现某项功能最终都依赖与函数,函数是实现某个功能的代码集合体,实现某一逻辑功能的都可以定义成一个函数,它给程序提供了简洁,可读的优良特质。大家在编程过程中要尽量将某一逻辑功能的代码块定义成函数,这样能增加代码的可阅读性同时能是程序看起来更简洁。

  1. 函数声明定义:Python函数定义并不像c++,java,c.....定义那样c++函数定义.

    • c,c++,java函数定义
      (返回类型) 函数名(参数列表)

---返回类型有 void(无返回),int(返回一个整型值) ,double(返回一个双精度浮点值).....等等
:void getName(string name) ,int getNumber(int number) 。
下面我们来看看Python怎么进行函数定义的

  • Python函数定义
    def 函数名 (参数列表):

def是关键字,目的是让Python知道你定义了一个函数,而不是其他
子如:
**def get_name(name):
def get_number(number):**
-------为什么函数命名会是这样呢?我在Python基础--Python命名规范一文中详细阐述了
-------至于参数见下

  1. 参数:参数是用户或者程序员向函数传递信息的媒介或者说形式;参数分为:形参,实参

    • 形参:就是函数声明给出的括号内的 (目的:形参只是一个形式,让Python知道这个函数需要这要的参数,没有实际意义)如:def get_name(name):中的name就是形参。
    • 实参函数调用括号内出现的(具有忒定意义的值,有实际值,实际含义)
      我们调用函数

get_name("Daming")
调用函数时括号内出现的“Daming”这一字符串实体就是实参,有实际值,实际含义。

  • 形实对应相关问题:下面是关于可变参数,默认参数等一系列问题

    1. 位置实参 *:及函数调用时参数的位置不能随意变化,否则可能出现逻辑错误或者得不到你想要的结果
      如程序
  def get_people_hobby(name,hobby):
        """用于描述某人的爱好"""
                 print(name," likes ",hobby)
get_people_hobby("Daming".title(),"football")
get_people_hobby("football".title(),"Daming")
AI 代码解读

结果:调换实参位置之后并没有出现我们想要的结果------结论不可随便改变实参位置
_

  1. **关键字实参**:及在调用函数过程中将形参与实参绑定在一起,这样不论位置怎样都能得到我们想要的结果
AI 代码解读

def get_people_hobby(name,hobby):
        """用于描述某人的爱好"""
                 print(name," likes ",hobby)
#get_people_hobby("Daming".title(),"football")
#get_people_hobby("football".title(),"Daming")
get_people_hobby(name="Xiaohong".title(),hobby="piano")
get_people_hobby(hobby="piano",name="Xiaohong".title()
AI 代码解读

运行结果:当形参与实参绑定在一起之后,位置的改变并不会引起结果的改变
_

 1. **给参数设定默认值**:有的时候参数是用默认值的 (**注意:**有默认值得参数一定**位于所有未给**默认值形参的**后面**    如当这样定义函数时定义(**错误**):
AI 代码解读
def discrible_default(type="human",feature):
AI 代码解读

IDE给你指出错误:未给默认值参数位于有默认值参数之后
_

    **正确定义方式**:
AI 代码解读
def discrible_default(feature,type="human"):
        print(type.title()," is ",feature)
AI 代码解读
    当我们**调用有默认参数**的函数时:
AI 代码解读

若实参比形参少,Python会优先将前面的形参与给出的实参绑定(及按照先后顺序进行形参与实参绑定)有默认值得参数将会采用默认值:如下:

def discrible_default(feature,type="human"):
                 print(type.title()," is ",feature)
discrible_default("intelligent")
AI 代码解读

结果
_
当然有默认值的参数也可以改变值:如下:

def discrible_default(feature,type="human"):
                 print(type.title()," is ",feature)
discrible_default("intelligent")
discrible_default("fool","pig".title())
AI 代码解读

结果:_
总结:要想程序按照我们想的正确方向运行,形参和实参的绑定是关键,只要形参和实参正确绑定,那么结果就能正常运行,出现运行结果错误的无非是形参与传递的实参就绑定错误。

  1. ** 传递任意数量参数的函数定义:**用于预先不知道函数需要接受多少实参
AI 代码解读
def get_type(*types):
        # *type中的*相当于让Python创造一个名为type的空元组
                print(types)
get_type("human","monkey")            #两个实参
get_type("dog","pig","cat")           #三个实参
AI 代码解读
    ![_](https://yqfile.alicdn.com/2185e96ff78e226fb80f309dd8aef0d594a597b7.png)
  1. **传递任意关键字实参:**用于接受任意数量的实参,但是不知道传递给函数的是什么样的信息
AI 代码解读

如下程序:要求:创建一个用户信息,基本的有名字但是每个用户可以自己添加自己不同数量不同类型的详细信息

def build_user_information(name,age,**info):
        """创建用于存储基本信息和用户自定义信息的字典"""
                 users_information={}
                 users_information["name"]=name
                 users_information["age"]=age
                 for key,value in info.items():
                     users_information[key]=value
                 return users_information
print(build_user_information("Daming",32,address="beijing",work="programmer"))
#用户自己传递了自己的家庭住址和职业
print(build_user_information("Lihua","18",hobby="swim",height=170,midle_school_address="linshui"))
#除了名字,年龄外,用户自己传递了自己的爱好,身高以及中学学校地址
AI 代码解读
    结果:
AI 代码解读

_

  1. 返回值:有时候我们需要利用函数处理一些数据,然后将处理后的数据返回给用户,这时候就要用到返回值
    Python利用关键之return来达到返回数据的目的 return 后面的返回值得类型是多种多样的 可以是int ,double,string,也可以是元组,列表以及字典

如下实例:

def get_information(*info):
            """创建一个列表用于存储用户输入的信息,并返回这个列表"""
            information=[]
            for item in info:
                #循环,将用户输入的信息复制到information这个列表中
                information.append(item)
            return information
            #用于返回information列表
print(get_information("Daming",21,"student"))
AI 代码解读
结果:
AI 代码解读

_

blogs
+关注
目录
打赏
0
0
0
0
2
分享
相关文章
Python 的内建函数
Python 的内置函数列表,方便查询使用方法。
Python内置函数ord()详解
`ord()` 是 Python 中用于将单个字符转换为对应 Unicode 码点的核心函数,支持 ASCII、多语言字符及特殊符号。其返回值为整数(范围 0-1114111),适用于字符编码验证、数据清洗、自定义排序、基础加解密等场景。使用时需注意参数长度必须为 1,否则会触发 `TypeError`。结合 `chr()` 函数可实现双向转换,进阶技巧包括多字节字符处理、编码范围检测及字符分类验证等。
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
84 20
Python中main函数:代码结构的基石
在Python中,`main`函数是程序结构化和模块化的重要组成部分。它实现了脚本执行与模块导入的分离,避免全局作用域污染并提升代码复用性。其核心作用包括:标准化程序入口、保障模块复用及支持测试驱动开发(TDD)。根据项目复杂度,`main`函数有基础版、函数封装版、参数解析版和类封装版四种典型写法。 与其他语言相比,Python的`main`机制更灵活,支持同一文件作为脚本运行或模块导入。进阶技巧涵盖多文件项目管理、命令行参数处理、环境变量配置及日志集成等。此外,还需注意常见错误如全局变量污染和循环导入,并通过延迟加载、多进程支持和类型提示优化性能。
260 0
介绍返回值 | Python从入门到精通:高阶篇之七
本节重点介绍了返回值是什么,以及return、break、continue的区别。
介绍返回值 | Python从入门到精通:高阶篇之七
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
84 11
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
139 28
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
4月前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
63 4

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问