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

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

1、返回值

1.1、返回简单的值

1 #返回简单值
2 def get_formatted_name(first_name,last_name):
3     """返回整洁的名字"""
4     full_name = first_name + ‘ ‘ + last_name
5     return full_name.title() #将首字母大写
6
7 musician = get_formatted_name(‘jim‘,‘harry‘)
8 print(musician)

执行结果:

Jim Harry

1.2、实参可选

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

 1 #实参可选
 2 def get_formatted_name(first_name,last_name,middle_name = ‘‘):
 3     """返回整洁的名字"""
 4     if middle_name:
 5         full_name = first_name + ‘ ‘ + middle_name + ‘ ‘+ last_name
 6     else:
 7         full_name = first_name + " " + last_name
 8     return full_name.title()
 9
10 musician = get_formatted_name(‘jim‘,‘harry‘)
11 print(musician)
12 musician = get_formatted_name(‘jim‘,‘harry‘,‘coo‘)
13 print(musician)

执行结果:

Jim Harry
Jim Py Harry

1.3、返回字典

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

1 #返回字典
2 def get_formatted_name(first_name,last_name):
3     """返回整洁的名字"""
4     full_name = {‘first‘:first_name,‘last‘:last_name}
5     return full_name
6
7 musician = get_formatted_name(‘jim‘,‘harry‘)
8 print(musician)

执行结果:

1 {‘last‘: ‘harry‘, ‘first‘: ‘jim‘}

还可以增加年纪等信息

1 #拓展,增加年纪等信息
2 def get_formatted_name(first_name,last_name,age = ‘‘):
3     """返回整洁的名字"""
4     person = {‘first‘:first_name,‘last‘:last_name}
5     if age:
6         person[‘age‘] = age
7     return person
8 musician = get_formatted_name(‘jim‘,‘harry‘,age = ‘27‘)
9 print(musician)

执行结果:

1 {‘age‘: ‘27‘, ‘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、传递列表(修改列表、禁止函数修改列表)

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

示例:

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

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

执行结果:

1 Hello,Harry!
2 Hello,Kobe!
3 Hello,James!

2.1、在函数中修改列表

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

 1 #禁止函数修改列表
 2 def print_models(unprinted_desgins,completed_models):
 3     """
 4     模拟打印每个设计,直到没有未打印的设计为止
 5     打印每个设计后,都将其移到列表completed_models中
 6     """
 7     while unprinted_desgins:
 8         current_design = unprinted_desgins.pop()
 9
10         #模拟根据设计制作3D打印模型的过程
11         print(‘Printing model:‘ + current_design)
12         completed_models.append(current_design)
13
14 def show_completed_models(completed_models):
15     """显式打印好的所有模型"""
16     print("\nThe following models have been printed:")
17     for completed_model in completed_models:
18         print(completed_model)
19
20 unprinted_designs = [‘iphone case‘,‘robot pendant‘,‘dodecahedron‘]
21 completed_models = []
22
23 print_models(unprinted_designs,completed_models)
24 show_completed_models(completed_models)

执行结果:

1 Printing model:dodecahedron
2 Printing model:robot pendant
3 Printing model:iphone case
4
5 The following models have been printed:
6 dodecahedron
7 robot pendant
8 iphone case

2.2、禁止函数修改列表

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

执行结果:

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

3、传递任意数量的实参

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

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

示例:

1 #传递任意数量的实参
2 def user_name(*toppings):
3     print(toppings)
4
5 user_name(‘Harry‘,‘james‘,‘kobe‘)

执行结果:

(‘Harry‘, ‘james‘, ‘kobe‘)

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

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

1 def user_name(*toppings):
2     print("\n点名情况如下:")
3     for topping in toppings: #进行遍历操作
4         print(topping)
5
6 user_name(‘Harry‘,‘james‘,‘kobe‘)

执行结果:

1 点名情况如下:
2 Harry
3 james
4 kobe

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

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

1 #结合使用位置实参和任意数量实参
2
3 def user_name(classes,*toppings):
4     print(classes + "点名情况如下:")
5     for topping in toppings:
6         print(topping)
7
8 user_name("高3(1)班",‘Harry‘,‘james‘,‘kobe‘)

执行结果:

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

原文地址:https://www.cnblogs.com/aszeno/p/10386149.html

时间: 2024-10-09 22:09:35

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

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

一.函数返回值 说到返回值,相信大家肯定都认识,没错,就是return. 所谓返回值可以这样理解:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回. 那具体怎么用呢?接着往下看: #!/usr/bin/env python3 #-*- coding:utf-8 -*- # write by congcong # return 表示一个程序的结束,他可以返回任意的元素,列表或字典 def stu_info(name,age,course): print(name,a

PYTHON 函数的返回值

def sum(): #定义一个函数名 为 sum print("你好") return 123 # 返回函数值 ret = sum() print(ret) 如果,你好 打印成功了  那么  return返回一个值   ,这个值是可变的 , 你想返回什么就返回什么

【Tips】Python 针对函数返回值实现列表推导

背景 设想这样一个场景,我们定义函数foo来生成一个大于0的随机code.但是函数执行可能会出现异常,对于异常情况我们指定函数返回-1. 在批量处理的情况下,我们想要得到所有成功执行的foo函数的返回值集合,而忽略返回-1的情况.基本的逻辑如下: result = [] for item in item_lst: code = foo(item) if code != -1: result.append(code) 使用列表推导的解决方案 如果想用列表推导的方式实现,有下面几种解决方案: Sol

(一)Python入门-5函数:02形参和实参-文档字符串-函数注释-返回值详解

一:形参和实参 [操作]定义一个函数,实现两个数的比较,并返回较大的值. 1 def printMax(a,b): 2 '''实现两个数的比较,并返回最大值!''' 3 if a >b: 4 print(a,'较大值') 5 else: 6 print(b, '较大值') 7 8 printMax(20,30) 9 printMax(30,5) 10 11 #测试文档字符串的使用 12 help(printMax) 13 help(printMax.__doc__) 上面的 printMax 函

Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 传入函数 函数的本身也可以作为参数. Python内建的mapreduce的函数.(来源于谷歌的,后来被道格这家伙开源了,成为当今处理大数据最火热的hadoop中的计算模型---MapReduce) 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序

Python全栈__函数的初识、函数的返回值、函数的参数

1.函数的初识 def关键字 空格 函数名(与变量名命名规则相同):英文冒号 函数体 执行函数:函数名+() 函数是以功能为导向的. def login(): pass def register(): pass 1 def my_len(): 2 l1 = [1, 2, 3, 1, 6, 9, 10] 3 count = 0 4 for i in l1: 5 count += 1 6 my_len() 2.函数的返回值 return: 1.函数中遇到 return 结束函数,下面代码不执行. d

Python学习笔记之函数作为返回值、闭包的解释

函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! def lazy_sum(*args): def sum(): ax = 0 for n in args:

python 闭包 Closure 函数作为返回值

一.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 1 >>> def lazy_sum(*args): 2 ... def sum(): 3 ... ax = 0 4 ... for n in args: 5 ... ax = ax + n 6 ... return ax 7 ... return sum 8 ... 9 >>> f = lazy_sum(1, 3, 5, 7, 9) 10 >>> f 11 <

函数的返回值

1.params 可变参数  必须出现在参数列表的最后. 2.ref 仅仅是一个地址,引用传递,可以把值传递强制改为引用传递 3.out 让函数可以输出多个值 •1.在方法中必须为out参数赋值 •2.out参数的变量在传递之前不需要赋值,即使赋值了也不能在方法中使用.(赋值没意义) 3ref •参数在传递之前必须赋值 •在方法中可以不为ref参数赋值,可以直接使用. ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所. 函数的返回值,布布扣

Python_初识函数和返回值_22

#len s = '金老板小护士' len(s) def my_len(): #自定义函数 i = 0 for k in s: i += 1 print(i) length = my_len() print(length) #函数没有返回值所以打印None 结果:# None # 函数 # 定义了之后,可以在任何需要它的地方调用 # 没有返回长度,只是单纯的打印 #返回的重要性 #a,b #len(a) #内置函数 #len(b) def my_len(): #自定义函数 i = 0 for k