学习python之函数

函数

函数时带名字的代码块,用于完成具体的工作。

  1. 定义函数
    下面举一个python函数的简单例子:
def greet_user():
	""" display  """
	print("hello!")

greet_user()
hello!


------------------
(program exited with code: 0)
Press return to continue

关键字def来告诉python要定义一个函数,这是函数定义,向python指出了函数名。
三个引号中间的文字描述被称为文档字符串(docstring)的注释,描述函数是做什么的,python用它来生成有关程序中函数的文档。
在前面的简单例子中,函数中没有定义参数,下面来说说怎么向函数中传递参数,传递参数的形式和C语言是相似的,只不过没有C语言那样复杂。
比如向前面的函数中传递一个名字(username),来看例子:

def greet_user(username):	
	print("Hello, " + username.title() + "!")
	
greet_user('aaron')
Hello, Aaron!


------------------
(program exited with code: 0)
Press return to continue

怎么样很简单吧,好像python中接受参数的形式全部以字符串或字符的形式显示。
下面再来说说python函数中的形参和实参:
在函数greet_user()的定义中,变量username是一个形参-----函数完成其工作所需的一项信息。在例子中调用函数的地方greet_user(‘aaron’),里面的aaron是实参,实参是调用函数时传递给函数的信息。

def favorite_book(name , place):
	""" display """
	print("One of my favorite books is " + name.title() + " in " + place.title())
	
favorite_book('alice', 'wonderland')
One of my favorite books is Alice in Wonderland


------------------
(program exited with code: 0)
Press return to continue

  1. 传递实参
    当然函数中一般不会只有一个形参,可能会包含多个形参,因此调用函数中也会包含多个实参。向函数传递实参的方式有很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。
    首先来看看位置实参的例子:
def describe_pet(animal_type , pet_name):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet('hamster','harry')
I have a hamster.
My hamster's name is Harry.


------------------
(program exited with code: 0)
Press return to continue

在调用函数时,python将函数调用中的每个实参都关联到函数定义中的对应位置的形参,因此这种最简单的关联方式时基于实参的顺序,这种关联方式被称为位置实参。
调用函数时一种效率极高的工作方式,在使用位置实参的时候,实参的传递顺序是非常滴重要,如果顺序错误就会出现如下不同的结果:

def person_breath(person , output):
	print(person.title() + " hu xi O2, pai chu " + output.title())
	
person_breath('CO2' , 'Bob')
Co2 hu xi O2, pai chu Bob


------------------
(program exited with code: 0)
Press return to continue

本来是人吸进氧气,呼出二氧化碳,结果呢,哈哈~(English 勿怪)
》关键字实参
关键字实参是传递给函数的名称-值对。直接在参数中将形参的名称和值关联起来,因此向函数传递实参的时候,就不会混肴了。关键字实参也不用考虑函数调用中的实参的顺序,还清楚的指出了函数调用中各个值的用途。

def describe_pet(animal_type , pet_name):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet( pet_name = 'harry', animal_type = 'hamster')

I have a hamster.
My hamster's name is Harry.


------------------
(program exited with code: 0)
Press return to continue

》默认值
编写函数时,可给每个形参一个默认值。在调用函数中给形参提供实参时,python将使用指定的实参值;否则,将使用形参的默认值。给形参指定默认值后,可在函数调用中省略相应的实参,例如:

def describe_pet(pet_name , animal_type = 'dog'):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet( pet_name = 'willie')
I have a dog.
My dog's name is Willie.


------------------
(program exited with code: 0)
Press return to continue

在这里要注意一下,在函数的定义中,修改了形参的排列顺序,由于给animal_type指定定了默认值,无需通过实参来指定动物类型,因此在函数调用中只包含一个实参—宠物的名字,python依然将这个实参是为位置参数,因此函数调用中只包含宠物的名字,这个实参将关联到函数定义中的第一个形参,这就是需要将pet_name放在形参列表开头的原因所在。
》等效的函数调用
因为可以混合使用位置实参,关键字实参和默认值,通常有多种等效的函数调用方式

def describe_pet(pet_name , animal_type = 'dog'):

基于这种定义,在任何情况下都必须给pet_name提供实参;指定该实参时可以使用位置方式,也可以使用关键字方式。如果要描述的动物不是小狗,还必须在函数调用中给animal_type提供实参;同样,指定该实参时可以使用位置方式,也可以使用关键字方式下面对这个函数的调用都可行:

describe_pet('willie')
describe_pet( pet_name = 'willie')

describe_pet('harry' , 'hamster')
describe_pet( pet_name = 'harry' , animal_type = 'hamster')
describe_pet( animal_type = 'hamster' , pet_name = 'harry')

练习:

def make_shirt(word, size):
	print("the T-shirt size:" + size + " the pattern is :" + word)
make_shirt('HelloWorld', '175');
the T-shirt size:175 the pattern is :HelloWorld
------------------
(program exited with code: 0)
Press return to continue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Lambda表达式是Python中的一种匿名函数,它可以在一行代码中定义一个函数。Lambda表达式通常用于简单的函数,它们可以作为参数传递给其他函数或作为返回值返回。 Lambda表达式的语法如下: lambda 参数列表: 表达式 其中,参数列表是用逗号分隔的形式参数,表达式是函数的返回值。 例如,下面的代码定义了一个简单的Lambda函数: f = lambda x: x * x 这个函数接受一个参数x,并返回x的平方。我们可以像调用普通函数一样调用它: print(f(5)) # 输出25 Lambda表达式还可以用于定义匿名函数,例如: g = lambda x, y: x + y 这个函数接受两个参数x和y,并返回它们的和。我们可以像调用普通函数一样调用它: print(g(2, 3)) # 输出5 总之,Lambda表达式是Python中一种非常方便的函数定义方式,它可以让我们更加简洁地编写代码。 ### 回答2: Lambda表达式是Python函数中的一种简洁方式,它可以定义在一行内的匿名函数。Lambda使用关键字“lambda”来表示,后面跟随一个或多个参数,分隔符为逗号,然后是冒号和一个表达式。返回值是该表达式的结果。 Lambda表达式的基本语法如下: lambda arguments: expression 其中arguments参数可以是0个、1个或多个参数,expression表达式是lambda函数的返回值。 Lambda表达式的使用场景比较广泛,通常用于函数式编程、过滤器(filter)、映射器(map)、排序器(sort)等操作中。 例如,我们可以使用lambda表达式来定义一个简单的函数: x = lambda a : a + 10 print(x(10)) # 输出结果为20 上述例子中,lambda表达式定义了一个参数“a”,表达式为“a+10”,即函数返回值为传入参数a加上10。 当需要对一个列表中的元素进行操作时,我们可以使用map函数结合lambda表达式来实现: lst = [1, 3, 5, 7] result_lst = list(map(lambda x:x*2, lst)) print(result_lst) # 输出结果为[2, 6, 10, 14] 上述例子中,lambda表达式定义了一个参数“x”,表达式为“x*2”,即将列表中的每个元素乘以2。map函数将该lambda表达式应用于lst中的每个元素,返回一个新的列表。 Lambda表达式比较适用于简单的函数定义和一些简单的操作,但对于较为复杂的任务或需要频繁使用的代码,建议还是使用函数进行定义。 ### 回答3: Python是一种广泛使用的编程语言,而函数Python编程的重要部分。在Python中,函数是一个特殊的代码块,可以接受一些输入(参数),并在执行一些操作后返回输出。其中,lambda表达式是定义函数的一种不同方式。 lambda表达式也被称为匿名函数,因为它们可以定义一个没有名称的函数。与普通函数不同,lambda函数只能包含一个表达式,而不是一条语句块。语法如下: lambda 参数: 表达式 下面是一个简单的例子: add = lambda x, y: x + y print(add(2, 3)) # 输出5 在这个例子中,lambda函数的定义是add = lambda x, y: x + y,其中参数是x和y,表达式是x + y。定义后,我们可以像使用普通函数一样使用它。 lambda函数有许多用途。其中之一是作为其他函数的参数,例如在sort()函数中进行排序。例如,我们可以使用lambda函数按照列表中每个元素的第二个元素进行排序。实现方式如下: a = [(1, 2), (4, 1), (9, 10), (13, -3)] a.sort(key=lambda x: x[1]) # 按每个元组的第二个元素进行排序 print(a) 输出结果为:[(13, -3), (4, 1), (1, 2), (9, 10)] 总之,Lambda表达式是Python语言中一个十分有用的特性,它允许我们创建匿名函数,使代码变得更加简洁和易读。在实际编程中,可以将其用于诸如函数参数传递、过滤器、排序等许多编程任务中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值