python函数2(返回值、传递列表...)

1、返回值

1.1、返回简单的值

 #返回简单值
def get_formatted_name(first_name,last_name):
"""返回整洁的名字"""
full_name = first_name + ' ' + last_name
return full_name.title() #将首字母大写 musician = get_formatted_name('jim','harry')
print(musician)

执行结果:

Jim Harry

1.2、实参可选

什么叫参数可选,就是在调用函数时,如果形参中定义的值在函数调用时并不存在,那么怎么要实参可选呢?就是把形参定义一个默认值,这个默认值为即可。

 #实参可选
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() musician = get_formatted_name('jim','harry')
print(musician)
musician = get_formatted_name('jim','harry','coo')
print(musician)

执行结果:

Jim Harry
Jim Py Harry

1.3、返回字典

函数可以返回任意值,包括列表、字典等复杂的数据结构

 #返回字典
def get_formatted_name(first_name,last_name):
"""返回整洁的名字"""
full_name = {'first':first_name,'last':last_name}
return full_name musician = get_formatted_name('jim','harry')
print(musician)

执行结果:

 {'last': 'harry', 'first': 'jim'}

还可以增加年纪等信息

 #拓展,增加年纪等信息
def get_formatted_name(first_name,last_name,age = ''):
"""返回整洁的名字"""
person = {'first':first_name,'last':last_name}
if age:
person['age'] = age
return person
musician = get_formatted_name('jim','harry',age = '')
print(musician)

执行结果:

 {'age': '', 'last': 'harry', 'first': 'jim'}

1.4、结合使用函数和while循环

函数可以结合之前学过的while循环进行使用,让人机交互成为可能。

#结合使用函数和while循环
def get_formatted_name(first_name,last_name):
"""返回整洁的名字"""
full_name = first_name + ' ' + last_name
return full_name while True:
print("\nPlease inter your name?")
print("inter q to quit!") f_name = input('First name :')
if f_name == 'q':
break l_name = input('Last name:')
if l_name == 'q':
break
musician = get_formatted_name(f_name,l_name)
print(musician)

2、传递列表(修改列表、禁止函数修改列表)

使用背景:向函数传递列表很有用,这种列表包含的可能是名字、数字或者更复杂的对象(如字典),将列表传递给函数后,函数就可以直接访问其内容。

示例:

将打印出对每个人的问候语。

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

执行结果:

 Hello,Harry!
Hello,Kobe!
Hello,James!

2.1、在函数中修改列表

将列表传递给函数后,函数可对其进行修改,在函数中对这个列表所做的任何修改都是永久性的。

 #禁止函数修改列表
def print_models(unprinted_desgins,completed_models):
"""
模拟打印每个设计,直到没有未打印的设计为止
打印每个设计后,都将其移到列表completed_models中
"""
while unprinted_desgins:
current_design = unprinted_desgins.pop() #模拟根据设计制作3D打印模型的过程
print('Printing model:' + current_design)
completed_models.append(current_design) def show_completed_models(completed_models):
"""显式打印好的所有模型"""
print("\nThe following models have been printed:")
for completed_model in completed_models:
print(completed_model) unprinted_designs = ['iphone case','robot pendant','dodecahedron']
completed_models = [] print_models(unprinted_designs,completed_models)
show_completed_models(completed_models)

执行结果:

 Printing model:dodecahedron
Printing model:robot pendant
Printing model:iphone case The following models have been printed:
dodecahedron
robot pendant
iphone case

2.2、禁止函数修改列表

#禁止函数修改列表
print_models(unprinted_designs[:],completed_models)

执行结果:

Printing model:dodecahedron
Printing model:robot pendant
Printing model:iphone case

3、传递任意数量的实参

使用背景:不知道函数需要接受多少个实参,函数无法处理超出预定形参的实参数量,那么可以只用一个形参 *toppings;

这样不管提供了多个实参,都可以收入。

示例:

 #传递任意数量的实参
def user_name(*toppings):
print(toppings) user_name('Harry','james','kobe')

执行结果:

('Harry', 'james', 'kobe')

以上,将执行结果封装在一个元祖中。

也可以对输入的实参进行遍历操作:

 def user_name(*toppings):
print("\n点名情况如下:")
for topping in toppings: #进行遍历操作
print(topping) user_name('Harry','james','kobe')

执行结果:

 点名情况如下:
Harry
james
kobe

3.1、结合使用位置实参和任意数量实参

可以在函数名增加一些班级、性别等形参,这样就会使用位置实参

 #结合使用位置实参和任意数量实参

 def user_name(classes,*toppings):
print(classes + "点名情况如下:")
for topping in toppings:
print(topping) user_name("高3(1)班",'Harry','james','kobe')

执行结果:

高3(1)班点名情况如下:
Harry
james
kobe

python函数2(返回值、传递列表...)的更多相关文章

  1. 函数的学习2——返回值&传递列表——参考Python编程从入门到实践

    返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数的返回值被称为返回值. 1. 简单的返回值 def get_formatted_name(first_name, l ...

  2. Python函数之返回值、作用域和局部变量

    一.函数返回值 说到返回值,相信大家肯定都认识,没错,就是return. 所谓返回值可以这样理解:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回. 那具体怎么用呢?接 ...

  3. Python函数的返回值和作用域

    函数的返回值和作用域 1.返回值 def guess(x):    if x > 3:        return "> 3"    else:        retu ...

  4. 『无为则无心』Python函数 — 27、Python函数的返回值

    目录 1.返回值概念 2.return关键字的作用 3.返回值可以返回的数据类型 4.函数如何返回多个值 5.fn5 和 fn5()的区别 6.总结: 1.返回值概念 例如:我们去超市购物,比如买饮料 ...

  5. Python 函数作为返回值

    函数作为返回值高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回. def lazy_sum(*args): def sum(): ax=0 for n in args: ax = ax ...

  6. python函数的返回值 讲解

    我们一起来聊聊python函数返回值的特殊情况,之前我也碰到过类似方面的问题,到后来查阅了一些资料后,发现原来是这样. 首先,写函数的时候,一定要写函数的文档,这样方便我们识别函数是做什么的.我记得很 ...

  7. python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变

    函数参数传递本质上和变量整体复制一样,只是两个变量分别为形参a和实参b.那么,a=b后,a变了,b值是否跟着变呢?这取决于对象内容可变不可变 首先解释一下,什么是python对象的内容可变不可变? p ...

  8. python函数的返回值

    返回值:return1.没有返回值    #不写return    #只写return:结束一个函数    #return None2.有一个返回值    #可以返回任何数据类型    #只要返回就可 ...

  9. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

  10. python中函数的返回值

    函数返回值(一) <1>“返回值”介绍 现实生活中的场景: 我给儿子10块钱,让他给我买包烟.这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,让儿子买烟这个事情最终的目标是 ...

随机推荐

  1. Oracle 数据泵expdq,impdq

    使用数据泵技术实现逻辑备份 数据泵概述 数据泵(DATA PUMP)是一种在数据库之间.数据库与操作系统之间,高速传输数据的技术(10g推出). 逻辑备份概述 逻辑备份是对数据库对象(如用户.表.存储 ...

  2. [Oracle]Oracle的闪回归档

    Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...

  3. Serverless 设计理念:从头创建品牌标识

    本文首发于 Serverless 中文网,译者:Aceyclee.如需转载,请保留原作者和出处. 如何在开源技术社区中做设计?本文来自 Serverless 团队中首席设计的分享 -- 展现了设计过程 ...

  4. Yolo V3整体思路流程详解!

    结合开源项目tensorflow-yolov3(https://link.zhihu.com/?target=https%3A//github.com/YunYang1994/tensorflow-y ...

  5. linux文件通配符

    * #匹配任意字符 ? #匹配任意单个字符 ~ #当前用户家目录 ~user #用户user的家目录 ~+ #当前工作目录 ~- #前一个工作目录 [0-9] #匹配的数字范围 [a-z] #匹配小写 ...

  6. 如何在ArcGIS中恢复注记文字

    文字标注是地图上一种特殊的视觉元素,可通过文字表达图形符号难以说明的地图内容,它与图形符号结合在一起存在于地图上,是关乎地图构图美的关键因素之一. MapGIS软件下子图对象和注释对象统统保存在点文件 ...

  7. 深入理解es6中的Promise

    https://www.jianshu.com/p/9e4af5b77253 https://zhuanlan.zhihu.com/p/30797777 https://segmentfault.co ...

  8. Airtest入门篇

    Airtest是啥? 简单理解:基于图像识别的UI自动化测试框架 俗人理解:截图即可完成自动化测试 适用场景:游戏.APP.PC软件,支持Window.Android.IOS Airtest官方文档 ...

  9. 开源导入导出库Magicodes.IE 导出教程

    要点 导出特性 如何导出Excel表头 如何导出数据.如何进行数据的切割.如何使用筛选器 导出特性 ExporterAttribute Name: 名称(当前Sheet 名称) HeaderFontS ...

  10. 打包一份py给大家用!!!

    好不容易写完了代码,却发现对面无法使用自己的python代码,其无奈可想而知 在这里就给大家介绍一下pyinstaller的简单用法 你所需要的就是在电脑上安装好 https://blog.csdn. ...