美文网首页
python基础(五)

python基础(五)

作者: 梦vctor | 来源:发表于2018-09-16 16:12 被阅读0次

1、传递实参

1.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 ahamster.

    My hamster's name is Harry.

注意:函数调用中实参的顺序与函数定义中形参的顺序一致

1.2 关键字实参

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

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

-->I have ahamster.

    My hamster's name is Harry.

    I have ahamster.

    My hamster's name is Harry.

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

1.3 默认值

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.

注意:在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。在使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参,这让python能正确解读位置实参。

2、返回值

2.1 返回简单值

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)

-->Jimi Hendrix

2.2 让实参变得可选

def get_formatted_name(first_name,last_name,middle_name=''):    //先让中间名字形参默认为空

if middle_name:    //用if语句判断

    full_name=first_name+" "+middle_name+" "+last_name    //有中间名字时加上实参

else:

    full_name=first_name+" "+last_name

return full_name.title()

musician=get_formatted_name('jimi','hendrix2')

print(musician)

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

print(musician)

-->Jimi Hendrix2

    John Lee Hooker

2.3 返回字典

def build_person(first_name,last_name):

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

    return person

musician=build_person('tom','smith')

print(musician)

-->{'first': 'tom', 'last': 'smith'}

3、传递列表

def greet_users(names):    //形参是一个列表

    for name in names:

        msg="Hello, "+name.title()+"!"

        print(msg)

usernames=['hahana','ty','margot']

greet_users(usernames)

-->Hello, Hahana!

    Hello, Ty!

    Hello, Margot!

3.1 在函数中修改列表

def print_models(unprinted_designs,completed_models):

    while unprinted_designs:

        current_design=unprinted_designs.pop()

        print("Printiing model: "+current_design)

        completed_models.append(current_design)

def show_completed_models(completed_models):

    print("\nThe following models have been printed:")

    for completed_model in completed_models:

        print(completed_model)

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

completed_models=[]

print_models(unprinted_designs,completed_models)

show_completed_models(completed_models)

-->Printiing model: dodecahedron    //每个函数只负责一项具体的工作

    Printiing model: robot pendant

    Printiing model: iphone case

    The following models have been printed:

    dodecahedron

    robot pendant

    iphone case

4、传递任意数量的实参

def make_pizza(*toppings):    //形参*toppings中的星号让Python创建一个名为toppings的空元组

    print(toppings)    

make_pizza('pepperoni')

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

-->('pepperoni',)

    ('mushrooms', 'green peppers', 'extra cheese')

4.1 结合使用位置参数和任意数量实参

def make_pizza(size,*toppings):

    print("\nMaking a "+str(size)+"-inch pizza with the following toppings:")

    for topping in toppings:

        print("-"+topping)

make_pizza(16,'pepperoni')

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

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

def build_profile(first,last,**user_info):    #形参**user_info中的两个星号让Python创建一个空字典,须放于形参最后位置

    profile={}

    profile['first-name']=first

    profile['last-name']=last

    for k,v in user_info.items():

        profile[k]=v

    return profile

a=build_profile('albert','einstein',location='princeton',field='physics')

print(a)

-->{'first-name': 'albert', 'last-name': 'einstein', 'location': 'princeton', 'field': 'physics'}

5、将函数存储在模块中

5.1 导入整个模块

pizza.py

def make_pizza(size,*toppings):

    print("\nMaking a "+str(size)+"-inch pizza with the following toppings:")

    for topping in toppings:

        print("-"+topping)

同目录下making_pizza.py

import pizza     //引用pizza则pizza.py中所有函数都能用

pizza.make_pizza(16,'pepperoni')

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

5.2 导入特定的函数

from module_name import function_name

通过用逗号分隔函数名,导入任意数量的函数

from module_name import function_0,function_1,function_2

5.3 使用as给函数指定别名

from module_name import function_name as fn

5.4 使用as给模块指定别名

import module_name as mn

5.5 导入模块中的所有函数

from module_name import *    #星号(*)运算符可导入模块中的所有函数

注意:所有的import语句都应放在文件开头,唯一例外的情形是,在文件开头使用了注释来描述整个程序

相关文章

  • Python基础入门6_文件和异常

    Python 基础入门前五篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • python基础(五)

    文本文件(包括CSV和JSON)的读写 open的参数(异常处理使用try...except...finally)...

  • python基础五

    匿名函数 例如: add = lambda x : x+1 add(5) # 6 add:函数名 lambda:定...

  • python基础五

  • python基础(五)

    1、传递实参 1.1 位置实参 def describe_pet(animal_type,pet_name): p...

  • Python基础(五)

    文件的打开与关闭 操作文件的整体过程: 打开文件,或者新建立一个文件 读/写数据 关闭文件 打开文件 在pytho...

  • python完全参考教程

    Python基础 Hello World! Python基础 基本数据类型 Python基础 序列 Python基...

  • 快速学习Python基础知识(4)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • 快速学习Python基础知识(3)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • 2019-10-11

    深度学习第五天 python基础: 文件操作:'w'表示可写,‘...

网友评论

      本文标题:python基础(五)

      本文链接:https://www.haomeiwen.com/subject/kjgzgftx.html