一、包含返回值的函数

下面来看一个函数,它接收名和姓并返回完整的姓名:

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)的更多相关文章

  1. Python中split()函数的用法及实际使用示例

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  2. Python中利用函数装饰器实现备忘功能

    Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   " ...

  3. python中range()函数的用法

    python中range()函数可创建一个整数列表,一般用在for循环中. range()函数语法: range(start,stop[,step]) 参数说明: star: 计数从star开始.默认 ...

  4. Python 中的函数

    学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...

  5. python中format函数

    python中format函数用于字符串的格式化 通过关键字 1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 2 grade = {'nam ...

  6. Python中readline()函数 去除换行符

    从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: f = open ...

  7. Python中int()函数的用法浅析

      int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int)  Help on class int in module __builti ...

  8. 【313】python 中 print 函数用法总结

    参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...

  9. python中filter函数

    python中filter()函数   filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断 ...

  10. Python中print()函数不换行的方法

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

随机推荐

  1. PHP 遍历一个文件夹下所有文件和子文件夹的方法

    话不多说,直接上代码 <?php function my_dir($dir) { $files = []; if(@$handle = opendir($dir)) { while(($file ...

  2. 《算法竞赛进阶指南》1.6Trie

    142. 前缀统计 给定N个字符串S1,S2-SN,接下来进行M次询问,每次询问给定一个字符串T,求S1-SN中有多少个字符串是T的前缀. 输入字符串的总长度不超过106,仅包含小写字母. 输入格式 ...

  3. 优先队列 POJ 3253 Fence Repair

    题目传送门 题意:一块木板按照某个顺序切成a[1], a[2]...a[n]的长度,每次切都会加上该两段木板的长度,问选择什么顺序切能使得累加和最小 分析:网上说这是哈夫曼树.很容易想到先切掉最长的, ...

  4. Linux下文件权限的设置

    文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 ) 其语法格式为:chmod ...

  5. P2629 好消息,坏消息

    题目描述 uim在公司里面当秘书,现在有n条消息要告知老板.每条消息有一个好坏度,这会影响老板的心情.告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度.最开始老板的心情是0,一旦老板 ...

  6. Ubuntu系统下配置PHP支持SQLServer 2005

    最近在做一个项目,该项目的数据库是微软公司的的SQLserver ,数据库安装在另一台windows服务器上,而项目却部署在ubuntu server上.那么这样就会涉及到项目在linux上如何链接S ...

  7. LibreOJ #109. 并查集

    题目描述 这是一道模板题. 维护一个 nnn 点的无向图,支持: 加入一条连接 uuu 和 vvv 的无向边 查询 uuu 和 vvv 的连通性 由于本题数据较大,因此输出的时候采用特殊的输出方式:用 ...

  8. COGS 1361. 树

    ★   输入文件:treed.in   输出文件:treed.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 在一个凉爽的夏夜,xth和rabbit来到花园里砍树.为啥 ...

  9. Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)

    一. 移动支付:       用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...

  10. Django 你需要了解的入门操作

    创建一个django project   (我的版本是1.11.11) django-admin startproject mysite cd mysite 当前目录下会生成mysite的工程,目录结 ...