Python编程:从入门到实践读书笔记-8 函数

xiaoxiao2021-02-28  109

有想一起学Python,遇到问题想一起交流探讨的,请私信我联系方式,一个人学习还是有点累!遇到问题全靠度娘,据说遇到问题得尽量google... 今天看了会儿java,发现学习Python对学习java还是有帮助的,当初学习java觉得好难,就放弃了,学习Python暂时还没觉得很难,学的也比较开心,此书超级适合小白啊,加油学。学完Python后,再返回来学习java, 说不定效果更好!!!     函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回 的值被称为返回值。可使用return语句将值返回到调用函数的代码行。 8.3 返回值 8.3.1 返回简单值      情景:定义一个函数,变量为姓和名,返回整洁的姓名。      eg:           def get_formatted_name(first_name,last_name):                full_name = first_name + ' ' + last_name                return full_name.title()           musician = get_formatted_name('jimi','hendrix')           print(musician)      op:           Jimi Hendrix      注意1. 就输出结果而言,print("Jimi Hendrix")即可完成,但在需要分别存储大量名和姓的                   大型程序中,像get_formatted_name()这样的函数非常有用。
8.3.2 让实参变成可选的      有时候,需要让实参变成可选的,这样使用函数的人就只需在必要时才提供额外的信息。可 使用默认值来让实参变成可选的。      情景:定义一个函数,变量为姓,中间名,名,如果有中间名就输出全名,如果没有中间名,只输出姓名。      eg:           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('jimi','hendrix')           print(musician)      op:           Jimi Hendrix      注意1. 若让实参middle_name可选,给其指定一个默认值-空字符串,在用户没有没有提供                   中间名时,不使用这个实参。                2.让get_formatted_name()在没有提供中间名时依然可行, 可给实参middle_name指定                   一个默认值——空字符串,并将其移到形参列表的末尾。
8.3.3 返回字典      函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。      情景:返回一个人的字典。      eg:           def build_person(first_name,last_name):                person = {'first':first_name,                                'last':last_name}                return person           musician = build_person('jimi','hendrix')           print(musician)      op:           {'first': 'jimi', 'last': 'hendrix'}      还可以扩展此函数,比如添加年龄,职业等信息,如下:      eg:           def build_person(first_name,last_name,age = ''):                person = {'first':first_name,                                'last':last_name,                                'age':age}                return person           musician = build_person('jimi','hendrix','30')           print(musician)      op:           {'first': 'jimi', 'last': 'hendrix', 'age': 29}
8.3.4 结合使用函数和while循环      情景:用户输入姓和名之后,问好用户,直到用户输入姓或名为'q'终止。      eg:           def get_formatted_name(first_name,last_name):                full_name = first_name + ' ' + last_name                return full_name.title()           while True:                print("\nPlease tell your name:")                print("(Enter 'q', you can quit)")                f_name = input("First Name: ")                if f_name == 'q':                    break                l_name = input("Last Name:")                if l_name == 'q':                break          formatted_name = get_formatted_name(f_name,l_name)          print("\nHello, " + formatted_name + "!") 练习: 8.6 def city_country(name,country):           fullinfo = '"' + name + ' ' + country + '"'           return fullinfo.title() citycountry = city_country('huhan','china') print(citycountry) citycountry = city_country('los angles','america') print(citycountry) citycountry = city_country('london','britain') print(citycountry) 8.7 def make_album(singer_name,album_name):     singer_album = {'singer':singer_name,                     'album':album_name}     return singer_album album_message = make_album('lizhi','tiankongzhicheng') print(album_message) album_message = make_album('zhaolei','chengdu') print(album_message) album_message = make_album('zhangweiwei','midian') print(album_message)
def make_album(singer_name,album_name,music_num = ''):     if music_num:         singer_album = {'singer':singer_name,                         'album':album_name,                         'number':music_num}     else:         singer_album = {'singer':singer_name,                         'album':album_name}     return singer_album album_message = make_album('lizhi','tiankongzhicheng','8') print(album_message) album_message = make_album('zhaolei','chengdu') print(album_message) 8.8 def make_album(singer_name,album_name):     album = {'singer':singer_name,              'album':album_name}     return album while True:     print("Please enter information about your favorite album:")     print("(You can enter 'quit' at anytime to end it)")     singer_name = input("singer name: ")     if singer_name == 'quit':         break     album_name = input("album name: ")     if album_name == 'quit':         break     m_album = make_album(singer_name,album_name)     print(m_album) 8.8 出现问题较多      1.  SyntaxError: 'break' outside loop           原因: python中break,continut只能用于for,while这样的循环中,不然会报错。      2. 代码运行后没反应           原因:缩进不对      3. 学习时,代码理解有误           原因:学习时,先定义函数后,认为先执行函数,再执行while循环,做8.8时发现,应该是先执行while循环,                     循环调用函数后,才执行函数语句,最后才是while循环中的输出。
转载请注明原文地址: https://www.6miu.com/read-65291.html

最新回复(0)