Python函数学习(一)

    print("\tfullname is "+fullname.title())
    print("\tlocation is "+location.title())
函数调用时传递给函数的信息是实参,
编写一个名为display_message() 的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确认显示的消息正确无误
 
#喜欢的图书的图书 :编写一个名为favorite_book() 的函数,
# 其中包含一个名为title 的形参。这个函数打印一条消息,
# 如One of my favorite books is Alice in Wonderland 。调用这个函数,并将一本图书的名称作为实参传递给它。
def favorite_book(title):
    print("one of my favorite book is "+title)

favorite_book('Alice in Wonderlan')
 
 
向函数传递实参的方式很多:
可使用位置实参,这要求实参的顺序与形参的顺序相同;
也可使用关键字实参,其中每个实参都由变量名组成;
还可使用列表和字典
在函数中,可根据需要使用任意数量的位置实参,
Python将按顺序将函数调用中的实参关联到函数定义中相应的形参

关键字实参

关键字实参 是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def describle_pet(animal_type,animal_name):
   
print("\nI have a "+animal_type+".")
   
print("My "+animal_type+"'s name is "+animal_name+".")
describle_pet(
animal_type='hamster',animal_name='harry')
describle_pet(
animal_name='maomao',animal_type='dog')

 

关键字实参的顺序无关紧要,因为Python知道各个值该存储到哪个形参中。注意:使用关键字实参时,务必准确地指定函数定义中的形参名

 

使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。

等你开始使用函数后,如果遇到实参不匹配错误,不要大惊小怪。你提供的实参多于或少于函数完成其工作所需的信息时,将出现实参不匹配错误。

 

编写一个名为describe_city() 的函数,它接受一座城市的名字以及该城市所属的国家。这个函数应打印一个简单的句子,如Reykjavik is in Iceland 。给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,且其中至少有一座城市不属于默认国家

描述城市国家的函数
defdescrible_city(city,country='China'):
   
print(city+"is in "+country+'\n')
describle_city(
'Beijing')
describle_city(
'Lundon')

describle_city('Shanghai')


函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回。在函数中,可使用return 语句将值返回到调用函数的代码行。 返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。

#返回简单值
def get_formatted_name(first_name,last_name):
    full_name=first_name+
" "+last_name
   
return full_name.title()
muscian=get_formatted_name(
'jimi','hendrix')

print(muscian)

在需要分别存储大量名和姓的大型程序中,像get_formatted_name() 这样的函数非常有用。你分别存储名和姓,每当需要显示姓名时都调用这个函数。


#让实参变成可选的

并非所有的人都有中间名,但如果你调用这个函数时只提供了名和姓,它将不能正确地运行。为让中间名变成可选的,可给实参middle_name 指定一个默认值——空字 符串,并在用户没有提供中间名时不使用这个实参。为让get_formatted_name() 在没有提供中间名时依然可行,可给实参middle_name 指定一个默认值——空字符串, 并将其移到形参列表的末尾

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()
muscian1=get_formatted_name('jimi','miss','hendrix')
muscian2=get_formatted_name('jin','ye')
print(muscian1)
print(muscian2)
 
调用这个函数时,如果只想指定名和姓,调用起来将非常简单。如果还要指定中间名,
就必须确保它是最后一个实参,这样Python才能正确地将位置实参关联到形参
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值