zoukankan      html  css  js  c++  java
  • 第八章 函数

    • 函数简单的定义:

    01 def greet_user(username):

    02 """显示简单的问候语"""

    03 print("Hello, " + username.title() + "!")

    04 greet_user('jesse')

    >>>
    Hello, Jesse!

    • 函数中的两种传递函数的方式:
    • 位置实参

    01 def describe_pet(animal_type, pet_name):

    02 """显示宠物的信息"""

    03 print(" I have a " + animal_type + ".")

    04 print("My " + animal_type + "'s name is " + pet_name.title() + ".")

    05 describe_pet('hamster', 'harry')

    06 describe_pet('dog', 'willie')

    >>>

    I have a hamster.

    My hamster's name is Harry.

       

    I have a dog.

    My dog's name is Willie.

    • 关键词实参

      注意:使用关键字实参时, 务必准确地指定函数定义中的形参名

    01 def describe_pet(animal_type, pet_name):

    02 """显示宠物的信息"""

    03 print(" I have a " + animal_type + ".")

    04 print("My " + animal_type + "'s name is " + pet_name.title() + ".")

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

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

    >>>

    I have a hamster.

    My hamster's name is Harry.

       

    I have a hamster.

    My hamster's name is Harry.

    • 函数中的默认值

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

    02 """显示宠物的信息"""

    03 print(" I have a " + animal_type + ".")

    04 print("My " + animal_type + "'s name is " + pet_name.title() + ".")

    05 describe_pet('willie');

    06 describe_pet('harry','hamster')

    >>>

    I have a dog.

    My dog's name is Willie.

       

    I have a hamster.

    My hamster's name is Harry.

    • 函数中的返回值,并且实参可选:可以根据情况,选择性的输入输出。

    01 def get_formatted_name(first_name, last_name, middle_name=''):

    02 """返回整洁的姓名"""

    03 if middle_name:

    04 full_name = first_name + ' ' + middle_name + ' ' + last_name

    05 else:

    06 full_name = first_name + ' ' + last_name

    07 return full_name.title()

    08 musician = get_formatted_name('jimi', 'hendrix')

    09 print(musician)

    10 musician = get_formatted_name('john', 'hooker', 'lee')

    11 print(musician)

    >>>

    Jimi Hendrix

    John Lee Hooker

    • 字典的返回:

    01 def build_person(first_name, last_name, age=''):

    02 """返回一个字典, 其中包含有关一个人的信息"""

    03 person = {'first': first_name, 'last': last_name}

    04 if age:

    05 person['age'] = age

    06 return person

    07 musician = build_person('jimi', 'hendrix', age=27)

    08 print(musician)

    >>>

    {'first': 'jimi', 'last': 'hendrix', 'age': 27}

    • 列表的传递

    01 def print_models(unprinted_designs, completed_models):

    02 """

    03 模拟打印每个设计, 直到没有未打印的设计为止

    04 打印每个设计后, 都将其移到列表completed_models

    05 """

    06 while unprinted_designs:

    07 current_design = unprinted_designs.pop()

    08 # 模拟根据设计制作3D打印模型的过程

    09 print("Printing model: " + current_design)

    10 completed_models.append(current_design)

    11 def show_completed_models(completed_models):

    12 """显示打印好的所有模型"""

    13 print(" The following models have been printed:")

    14 for completed_model in completed_models:

    15 print(completed_model)

    16 unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']

    17 completed_models = []

    18 print_models(unprinted_designs, completed_models)

    19 show_completed_models(completed_models)

       

    >>>

    Printing model: dodecahedron

    Printing model: robot pendant

    Printing model: iphone case

       

    The following models have been printed:

    dodecahedron

    robot pendant

    iphone case

    • 禁止函数修改列表:利用:利用切片创建列表副本

    01 def show_magicians(magicians_names):

    02 for name in magicians_names:

    03 print(name);

    04

    05 def make_great(input_names):

    06 num=len(input_names);

    07 i=0;

    08 for name in input_names:

    09 input_names[i]='the Great '+name;

    10 i+=1;

    11 show_magicians(input_names);

    12 return input_names

    13

    14 magicians_list=['Joan Jett','Gun & Roses','Bonjovi'];

    15 show_magicians(magicians_list);# 未改变前列表

    16 print('');

    17 new_list=make_great(magicians_list[:]);#改变后

    18 print(new_list);

    >>>

    Joan Jett

    Gun & Roses

    Bonjovi

       

    the Great Joan Jett

    the Great Gun & Roses

    the Great Bonjovi

    ['the Great Joan Jett', 'the Great Gun & Roses', 'the Great Bonjovi']

    • 传递任意数量的实参(位置实参与任意数量实参的联用)

    01 def make_pizza(size, *toppings):

    02 """概述要制作的比萨"""

    03 print(" Making a " + str(size) +

    04 "-inch pizza with the following toppings:")

    05 for topping in toppings:

    06 print("- " + topping)

    07 make_pizza(16, 'pepperoni')

    08 make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

    >>>

    Making a 16-inch pizza with the following toppings:

    - pepperoni

       

    Making a 12-inch pizza with the following toppings:

    - mushrooms

    - green peppers

    - extra cheese

    • 使用任意数量的关键字实参

      目的:将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。

    01 def build_profile(first, last, **user_info):

    02 """创建一个字典, 其中包含我们知道的有关用户的一切"""

    03 profile = {}

    04 profile['first_name'] = first

    05 profile['last_name'] = last

    06 for key, value in user_info.items():

    07 profile[key] = value

    08 return profile

    09 user_profile = build_profile('albert', 'einstein',

    10 location='princeton',

    11 field='physics')

    12 print(user_profile)

    >>>

    {'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}

    • 函数存储在模块中:

      最为有效的方法:https://blog.csdn.net/eriol/article/details/83955142

    • 使用as给函数和模块指定别名

    01 # 使用as给函数指定别名

    02 from pizza import make_pizza as mp

    03 mp(16, 'pepperoni')

    04 mp(12, 'mushrooms', 'green peppers', 'extra cheese')

    05 # 使用as给模块指定别名

    06 import pizza as p

    07 p.make_pizza(16, 'pepperoni')

    08 p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

    >>>

    Making a 16-inch pizza with the following toppings:

    - pepperoni

       

    Making a 12-inch pizza with the following toppings:

    - mushrooms

    - green peppers

    - extra cheese

       

    Making a 16-inch pizza with the following toppings:

    - pepperoni

       

    Making a 12-inch pizza with the following toppings:

    - mushrooms

    - green peppers

    - extra cheese

    • 导入模块中的所有函数

      import 语句中的星号让Python将模块pizza 中的每个函数都复制到这个程序文件中。 (不推荐)

    01 from pizza import *

    02 make_pizza(16, 'pepperoni')

    03 make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

    >>>

    Making a 16-inch pizza with the following toppings:

    - pepperoni

       

    Making a 12-inch pizza with the following toppings:

    - mushrooms

    - green peppers

    - extra cheese

       

       

       

       

       

       

       

    为更美好的明天而战!!!
  • 相关阅读:
    爬虫工具简单整理
    vue单页面处理SEO问题
    深入浅出MyBatis-快速入门
    js的匿名函数 和普通函数
    Javascript位置 body之前、后执行顺序!
    eclipse中的ctrl+H使用中的问题
    Eclipse中ctrl+shift+r与ctrl+shift+t的区别
    Java 判断字符串是否为空的四种方法、优缺点与注意事项
    eclipse 快捷键
    只缩进新加一段代码的方法
  • 原文地址:https://www.cnblogs.com/lovely-bones/p/10994574.html
Copyright © 2011-2022 走看看