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. Spring Security详解

    Spring Security 一. 简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文 ...

  2. 用TensorFlow做图像识别(python)

    一.TensorFlow简介 TensorFlow是由谷歌开发的一套机器学习的工具,使用方法很简单,只需要输入训练数据位置,设定参数和优化方法等,TensorFlow就可以将优化结果显示出来,节省了很 ...

  3. Snipaste - 可以提高你工作效率的截图软件

    使用Snipaste提高您的工作效率 Snipaste是一个简单但功能强大的剪切工具,还允许您将屏幕截图固定在屏幕上.下载并启动应用程序,按F1开始剪切,然后按F3将其粘贴为浮动窗口.而已! 您还可以 ...

  4. oracle官网下载jdk跑不动太慢了,给出快速下载方式mac

    oracle官网下载jdk8跑不动太慢了,给出快速下载方式 之前在oracle官网下载jdk1.8实在速度太慢,只有20K左右的下载速度,有时候甚至不动,最关键的慢也就算了,cookie有效期有限,有 ...

  5. 关于Springboot找不到mapper.xml问题

    今天在写springboot项目时报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),找 ...

  6. linux下安装cmake方法(1)---下载压缩包

    OpenCV 2.2以后的版本需要使用Cmake生成makefile文件,因此需要先安装cmake:还有其它一些软件都需要先安装cmake 1.在linux环境下打开网页浏览器,输入网址:http:/ ...

  7. 2017CCPC杭州(ABCDJ)

    所有的题目在这里<--- 待补... Problem A. HDU6264:Super-palindrome 题意: 题目定义了一个超级回文串,这个串满足:它的任一奇数长度的串都是回文串. 现在 ...

  8. 假设检验的Python实现

    结合假设检验的理论知识,本文使用Python对实际数据进行假设检验. 导入测试数据 从线上下载测试数据文件,数据链接:https://pan.baidu.com/s/1t4SKF6U2yyjT365F ...

  9. JVM之GC算法的实现(垃圾回收器)

    上一节:<JVM之GC算法> 知道GC算法的理论基础,我们来看看具体的实现.只有落地的理论,才是真理. 一.JVM垃圾回收器的结构 JVM虚拟机规范对垃圾收集器应该如何实现没有规定,因为没 ...

  10. [AI开发]小型数据集解决实际工程问题——交通拥堵、交通事故实时告警

    这篇文章其实主要是想介绍在深度学习过程中如何使用小型数据集,这种数据集样本数量一般在1000以下,有时候甚至只有几百.一般提到神经网络,大家都会说数据量越丰富,准确性越高,但是实际工作中,可能收集不了 ...