Python中的函数(3)
一、包含返回值的函数
下面来看一个函数,它接收名和姓并返回完整的姓名:
def get_formatted_name(first_name,last_name):
"""返回整洁的姓名"""
full_name = first_name + ' ' + last_name
return full_name.title() myname = get_formatted_name('Joker','Pan')
print(myname)
console:

解释:函数 get_formatted_name() 的定义通过形参接收名和姓。它将姓和名合二为一,在它们之间加上空格,
并将结果存储在变量full_name中。然后将full_name 转为首字母大写的格式,并将结果返回给函数调用者。调
用有返回值的函数时需要一个变量接收这个参数,这里将返回值存储在了变量 myname 中,然后打印了myname。
二、让实参变成可选的
有时候需要将实参变成可选的,这样使用函数的人就只需要在必要的时候才提供额外的信息。实现方法就是
使用默认值。
如果上面的函数 get_formatted_user() 需要扩展一个信息如中间名,为此,可将其修改为类似下面这样:
def get_formatted_name(first_name,middle_name,last_name):
"""返回整洁的姓名"""
full_name = first_name + ' ' + middle_name + ' ' + last_name
return full_name.title() myname = get_formatted_name('Joker','smith','Pan')
print(myname)
console:

但是,可能不是所有的人都拥有中间名,所以需要让这个参数变为可选参数,如何去做?其实
只需要给中间名赋一个默认值--空字符串就可以了。如下:
def get_formatted_name(first_name,last_name,middle_name=''):
"""返回整洁的姓名"""
if middle_name :
full_name = first_name + ' ' + middle_name + ' ' + last_name
else:
full_name = first_name + ' ' + last_name
return full_name.title() myname = get_formatted_name('Joker','Pan','smith')
print(myname)
other_name = get_formatted_name('jack','chen')
print(other_name)
console:

需要注意的是:中间名是可选的,因此在函数定义中最后列出该形参,并将其默认值设置为空字符串。
在函数体中,我们做了判断,如果调用者提供了中间名, if middle_name 将为True,否则就为False,
所以会根据条件分别去执行不同的代码。所以,这个函数现在既适合有中间名的人调用也适合没有中间
名的人调用。
三、返回字典
函数可以返回任何类型的值,包括列表和字典等较复杂的数据结构。下面的函数接收姓和名,返回一个表示人的字典:
def generate_person(first_name,last_name):
person = {'first':first_name,'last':last_name}
return person myinfo = generate_person('joker','pan')
print(myinfo)
console:

解释:这个函数接受两个信息,名和姓,并将其存储在字典中并返回给调用者,可以看到控制台确实打印的是一个字典(因为它是用 { } 括起来的)。
叫醒我的不是诗和远方,也不是眼前的苟且,而是快递小哥
Python中的函数(3)的更多相关文章
- Python中split()函数的用法及实际使用示例
Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...
- Python中利用函数装饰器实现备忘功能
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下 " ...
- python中range()函数的用法
python中range()函数可创建一个整数列表,一般用在for循环中. range()函数语法: range(start,stop[,step]) 参数说明: star: 计数从star开始.默认 ...
- Python 中的函数
学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...
- python中format函数
python中format函数用于字符串的格式化 通过关键字 1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 2 grade = {'nam ...
- Python中readline()函数 去除换行符
从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: f = open ...
- Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builti ...
- 【313】python 中 print 函数用法总结
参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...
- python中filter函数
python中filter()函数 filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断 ...
- Python中print()函数不换行的方法
一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...
随机推荐
- SOA架构设计和相关案例分析
一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...
- hbase-shell + hbase的java api
本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装 .HBase的伪分布模式(1节点)的启动 .HBas ...
- CI框架错误汇总
2017年1月13日12:09:02 [1] A PHP Error was encounteredSeverity: NoticeMessage: Undefined variable: aticl ...
- Mysql的外键
概念:如果一个实体A的某一字段,刚好指向或引用另一个实体B的主键,那么实体A的这个字段就叫作外键,所以简单来说,外键就是外面的主键,就是其他表的主键. 例: 以上的学生表的班级字段,就是一个外键! 其 ...
- Cannot call sendRedirect()/forward after the response has been committed的问题
问题其实已经很明确了,说明就是不能重定向,因为已经有response了. 然后一检查,是前面已经用servlet的printWriter打印东西了. 所以,重定向前 必须先保证没有任何的输出,包括:1 ...
- 482 License Key Formatting 注册码格式化
详见:https://leetcode.com/problems/license-key-formatting/description/ C++: class Solution { public: s ...
- 153 Find Minimum in Rotated Sorted Array 旋转数组的最小值
假设一个按照升序排列的有序数组从某未知的位置旋转.(比如 0 1 2 4 5 6 7 可能变成 4 5 6 7 0 1 2).找到其中最小的元素.你可以假设数组中不存在重复的元素.详见:https:/ ...
- python_9(模块补充)
第1章 re模块补充 1.1 贪婪匹配:回溯算法 1.2 .*?的用法 1.3 例:分组<name>取值 1.4 匹配整数删除小数 1.5 正则测试地址 第2章 重点模块 2.1 hash ...
- Object类的几个方法
1.protected Object clone()创建并返回此对象的一个副本. 2. boolean equals(Object obj)指示其他某个对象是否与此对象“相等”. 3. protect ...
- windows 7 正确禁用 IPv6
与Windows XP和Windows Server 2003不同的是,Windows Vista和Windows Server 2008中的IPv6无法被卸载.然而,在Windows Vista和W ...