函数是带名字的代码块,用于完成具体的工作。 要执行函数定义的特定任务,可调用该函数。需要在程序中多次执行同一项任务时,无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运行其中的代码。通过使用函数,程序的编写、阅读、测试和修复都将更容易。

目录

一、定义函数

二、传递实参

1、位置实参

2、关键字实参

3、默认值

三、返回值

1、返回简单值

2、让实参变成可选的

3、返回字典

四、传递列表


一、定义函数

下面先展示一个简单的函数结构:

def greet_user():"""显示简单的问候语"""print("hi")greet_user()
  • 第一行的代码使用关键字def表示定义的是一个函数,greet_user()是函数名(函数名可能在括号内指出函数为了完成任务需要什么样的信息),该函数不需要任何的额外信息就可以完成它的任务,因此括号内是空的。另外,定义函数需要以冒号结尾。
  • 第二行的注释,使用三引号括起来,用来描述函数做了什么。
  • 代码行print("hi")是函数体内的唯一一行代码,greet_user()只做一项工作: 打印hi。
  • 要调用函数,可依次指定函数名以及用括号括起的必要信息,如最后一行代码所示,由于这个函数不需要任何信息,因此调用它时只需输入greet_user()即可。

二、传递实参

函数定义种可能包含多个实参,因此函数调用中也有可能有多个形参。向函数传递实参的方式很多,可以使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

1、位置实参

调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此, 最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。如下面的例子所示:

def introduce_myself(name,age):""""打印自己的姓名和年龄"""print("\n My name is "+ name +".")print("I am "+ age + " years old.")introduce_myself('wt',"20")

得到的结果为:

My name is wt.
I am 20 years old.

调用introduce_myself()时,需要按顺序提供名字和年龄,位置反了就不对了。此外,可以根据需要调用多次。

2、关键字实参

关键字实参是传递给函数的名称-值对,如下所示:

def describe_myself(name,age):""""打印自己的姓名和年龄"""print("\nMy name is "+ name +".")print("I am "+ age + " years old.")describe_myself(name='wt',age="20")
describe_myself(age="18",name="wj")

得到的结果如下所示:

My name is wt.
I am 20 years old.My name is wj.
I am 18 years old.

由上面的例子可以看出在关键字实参中,只要关键字正确,实参的顺序无关紧要。

3、默认值

编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用 指定的实参值;否则,将使用形参的默认值。如下:

def describe_myself(name,age="20"):""""打印自己的姓名和年龄"""print("\nMy name is "+ name +".")print("I am "+ age + " years old.")describe_myself(name='wt')
describe_myself(age="18",name="wj")

得到的结果为:

My name is wt.
I am 20 years old.My name is wj.
I am 18 years old.

正如上面的例子所示,如果没有提供age实参,将返回默认值,如果重新设置了age的参数,则返回设定的值。

三、返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回 的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。

1、返回简单值

下面先来看一个简单的例子:

def get_formatted_name(first_name,last_name):"""返回整洁的姓名"""full_name = first_name +' ' + last_namereturn full_name.title()user = get_formatted_name("xiao","ming")
print(user)

输出的结果为:

Xiao Ming

2、让实参变成可选的

有时候,需要让实参变成可选的,这样使用函数就只需要在必要时提供额外的信息。可以使用默认值让实参变成可选的。下面将函数get_formatted_name()进行扩展,使得该函数可以处理中间名,如下:

def get_formatted_name(first_name,last_name,middle_name = ""):"""返回整洁的姓名"""if middle_name:full_name = first_name + " " + middle_name+ ' ' + last_nameelse:full_name = first_name + ' ' + last_namereturn full_name.title()user1 = get_formatted_name("xiao","ming")
user2 = get_formatted_name("wang","xiao","hua")

输出的结果为:

user1:Xiao Ming
user2:Wang Hua Xiao

为了让实参变成可选的,可以将该实参设置为空字符串,并将其放在最后。

3、返回字典

函数可以返回任意类型的值,包括列表和字典等比较复杂的数据结构。如下:

def get_formatted_name(first_name,last_name,middle_name = ""):"""返回一个字典,其中包含一个人的信息"""person = {"first":first_name,'last':last_name}return  personuser1 = get_formatted_name("xiao","ming")
print(f"user1:{user1}")

输出的结果为:

user1:{'first': 'xiao', 'last': 'ming'}

四、传递列表

通常情况下,还可以给函数传递列表,列表中可以包含名字、数字或者更复杂的对象(如字典)。将列表传递给数字后,函数就能直接访问其内容。下面列举一个简单的例子:

def greet_users(names):"""向列表中的每位用户都发出简单的问候"""for name in names:msg = "Hello," + name.title() + "!"print(msg)usernames = ['mvkf','jvuhv','jush']
greet_users(usernames)

输出后的结果为:

Hello,Mvkf!
Hello,Jvuhv!
Hello,Jush!

[python编程:从入门到实践笔记]函数相关推荐

  1. Python编程从入门到实践笔记(超详细的精华讲解+内有2021最新版本代码)

    编程环境的安装请见我个人博客https://tianjuewudi.gitee.io/的另两篇文章<Pycharm安装方法>及<Pycharm配置和使用教程>,下面以你能正常使 ...

  2. python编程入门到实践目录-Python编程从入门到实践笔记——文件

    file_name = =#关键字with在不再需要访问文件后将其关闭.open(path)打开文件read()读取整个文件的内容 #2.文件路径Linux和OS X中:with open('text ...

  3. python crash coures python编程从入门到实践 笔记1 python常见函数

    一些内置函数 str.title() #.function() nothing in parentheses means no argument is given str.upper() str.lo ...

  4. python编程入门到实践笔记习题_Python编程从入门到实践笔记——列表简介

    python编程从入门到实践笔记--列表简介 #coding=utf-8 #列表--我的理解等于c语言和java中的数组 bicycles = ["trek","cann ...

  5. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  6. python基础学习[python编程从入门到实践读书笔记(连载一)]

    写在前面:本文来自笔者关于<python编程从入门到实践>的读书笔记与动手实践记录. 程序员之禅 文章目录 02变量和简单数据类型 03 列表简介 04 操作列表 05 if语句 06 字 ...

  7. 《Python编程 从入门到实践》简单读书笔记

    目录 第2章 变量和简单数据类型 第3章 列表简介 第4章 操作列表 第5章 if语句 第6章 字典 第7章 用户输入和while循环 第8章 函数 第9章 类 第10章 文件和异常 第11章 测试代 ...

  8. 《Python编程从入门到实践》袁国忠 译 P1~P200学习笔记

    <Python编程从入门到实践>袁国忠 译 P1~P200 学习笔记 <Python编程从入门到实践>袁国忠 译 P1~P200之前两天在学习时做的笔记总结,在这里也记录一下, ...

  9. 读书笔记——《Python编程从入门到实践》第二章

    读书笔记--<Python编程从入门到实践>第二章 读书笔记--<Python编程从入门到实践>第二章 变量 如何使用变量 如何规范变量命名 字符串 字符串是什么 如何修改字符 ...

  10. 《python编程从入门到实践》python入门级-学习笔记(1-2章)——持续更新中

    CSDN的小伙伴们你们好~从今天起我开始自学编程了. 恭喜你关注到一个成长型账号. 一以来作为美术出身的TA,我无数次的向往能打出几行属于自己的代码.为了跟上时代的步伐,也为了能更加深入TA这个职业, ...

最新文章

  1. kaggle之数据分析从业者用户画像分析
  2. gitk、Git GUI 图形化工具中文显示乱码的解决方案
  3. 专题3 标准IO编程
  4. tab-pane 怎么家点击事件_有好转?辛巴燕窝事件新进展曝光。二子爷老婆首次回应银行行长送奥迪!二子爷分析小样你家老铁太精...
  5. chrmoe debug
  6. mysql与配偶同性_mysql 左,右,内连接
  7. Windows Server 2008网络基础结构的实现与管理
  8. Launchpad services provided in HANA XS in multitenant
  9. Liunx下使用Nginx负载均衡
  10. CCF202112-2 序列查询新解
  11. ASP.Net Web 服务 – 如何使用会话状态
  12. SAP自学指南:案例公司的管理难题
  13. cranly:你的R包管理工具
  14. new 关键字做的事
  15. python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1)(个人笔记)
  16. 设计模式之组合模式-树形结构的处理
  17. 匈牙利命名法、驼峰式命名法、帕斯卡命名法
  18. 无法连接到internet 小黄叹号长时间不消失的问题
  19. 互联网 B C端产品对比分析
  20. trs ids身份服务器系统实现统一身份认证与单点登录平台技术,统一身份认证系统设计与实现...

热门文章

  1. 我收藏的罗永浩语录MP3(老罗语录)
  2. 新版 Microsoft Edge 完整版下载的正确姿势
  3. 基于STM32的水质浑浊度和PH值监测系统设计(仿真+程序+讲解)
  4. linux汇编格式化磁盘,如何进行硬盘格式化命令操作【详解】
  5. Android方向传感器的相关问题
  6. 专用无线系统服务器,轨道交通专用无线通信系统
  7. 滑向未来(现代 JS 与 CSS 滚动实现指南)
  8. 如何换算洁净室送风量及计算方法
  9. HVR之表数据类型长度不同的同步
  10. 施耐德电气庞邢健:以软件撬动可持续的未来工业