博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 函数(补充)
阅读量:6907 次
发布时间:2019-06-27

本文共 1838 字,大约阅读时间需要 6 分钟。

  函数返回值:

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

返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。

  • 返回简单值:

  下面来看一个函数,它接受名和姓并返回简洁的姓名:

def formatted_name(first_name,last_name):    full_name = first_name + " " + last_name    return full_name.title()message = formatted_name("zi","li")print(message)#输出结果:Li Zi

  我们原本只需编写下面的代码就可输出整洁的姓名,相比于此,上面的代码好像太多了:

print("Li Zi")

  但在需要分别存储大量名和姓时的大型程序中,像formatted_name()这样的函数非常有用。你分别存储名和姓,每当需要显示姓名时都调用这个函数。

  • 返回字典:

  函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。例如,下面的函数接受姓名的组成部分,并返回一表示人的字典:

def build_person(first_name,last_name):    """返回一个字典,其中包含有关一个人的信息"""    person = {
"first":first_name,"last":last_name} return personmessage = build_person("zi","li")print(message)#输出结果:{'first':'zi','last':'li'}

  函数build_person()接受名和姓,并将这些值封装到字典中。这个函数接受简单的文本信息,将其放在一个更适合的数据结构中,让你不仅能打印这些信息,还能以其他方式处理它们。也可扩展这个函数,使其接受可选值,如年龄、职业或用户要求的其他信息。例如,下面的修改让你还能存储年龄:

def build_person(first_name,last_name,age=' '):    """返回一个字典,其中包含有关一个人的信息"""    person = {
"first":first_name,"last":last_name} if age: person['age'] = age """在字典中添加age的键值对""" return personmessage = build_person("zi","li",age=18)print(message)#输出结果:{'first':'zi','last':'li','age':18}

  传递列表:

  将列表传递给函数后,函数就能直接访问其内容。下面使用函数来提高处理列表的效率。假设有一个用户列表,我们要问候其中的每位用户。下面示例将一个名字列表传递给一个名为greet_users()的函数,这个函数中问候列表中的每个人:

def greet_users(names):    """向列表中的每位用户都发出简单的问候"""    for name in names:        msg = "Hello," + name.title() + "!"        print(msg)username = ['lizi','qianqian','qiqi']greet_users(usernames)#输出结果:Hello,Lizi!#输出结果:Hello,Qianqian!#输出结果:Hello,Qiqi!

  输出完全符合预期,每位用户都看到了一个个性化的问候语。每当你要问候一组用户时,都可调用这个函数。

  函数编写指南:

  1. 指定描述性名称,且只在其中使用小写字母和下划线
  2. 每个函数都应包含简要地阐述其功能的注释
  3. 建议每行代码不超过79字符,若超过时,可在函数定义中输入左括号后按回车键,并在下一行按两次Tab键,从而将形参列表和只缩进一层的函数体区别开。
  4. 如果程序包含多个函数,可使用两个空行将相邻的函数分开。

 

转载于:https://www.cnblogs.com/Chestnut-g/p/9930429.html

你可能感兴趣的文章
samba服务器的安装
查看>>
nginx添加第三方模块,以及启用nginx本身支持的模块
查看>>
(转)由12306.cn谈谈网站性能技术
查看>>
PHP MySQL操作类(基于PDO)
查看>>
IOS——定位单元格子视图
查看>>
HTML DIV+CSS制作通栏总结
查看>>
Ubuntu 14.0.4下 JDK + Tomcat + Intellij IDEA 安装配置
查看>>
【设计模式】链接模式
查看>>
编程思想之回调
查看>>
Mac下如何获取JAVA_HOME路径
查看>>
LockSupport和synchronized混合死锁问题
查看>>
左旋转字符串
查看>>
Oracle 11g学习笔记(三)
查看>>
整理linux平台下的vim插件配置,减少到11M,简化安装
查看>>
解决CentOS 7.0 VMware虚拟机没有网卡,配置网卡信息
查看>>
PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计...
查看>>
09.List集合
查看>>
Java网络编程——12.UDP
查看>>
全局NSTimer导致的内存泄露及解决办法
查看>>
数据结构-深入浅出细谈八大排序
查看>>