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

有想一起学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循环中的输出。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值