python函数

1、定义函数

def greet_user():

         Print(“Hello”)

greet_user()

关键字def 表示要定义一个函数,后面跟着函数名,括号用来完成函数为完成工作还需要的添加的信息,也可以没有。最后以冒号结尾

向函数传递信息:当调用函数的时候,向函数提供执行函数体所需要的信息。可以多次调用函数。

def greet_user(name):

         Print(“Hello” + name)

greet_user(“a”)

形参和实参:

在定义函数的时候,要求给name指定一个值。变量name为形参,值”a”为一个实参,实参是调用函数的时候传递的信息,将实参传递给函数,实参的值被存储在name里

 

2、传递实参

在函数的定义中可以包含多个形参,也可以不包括形参。传递实参的方式:位置实参,关键字实参,还可以使用字典和列表
位置实参:函数调用的每个实参的位置对应函数定义中每一个形参的位置

def describe_pets(animal_type,pet_name):
    """显示程序的所有的信息"""
   
print("\nI have a "+animal_type + " .")
    print("My " + animal_type +" 's name is " + pet_name)
describe_pets("bb","cc")

注意:位置要对应好,顺序很重要

关键字实参:传递给函数的名称-值对

在实参中将名称和值一一对应起来,但是在函数定义中,形参的变量要和实参的名称一致,这样即使形参和实参的位置不一致,也无碍。

def describe_pets(animal_type,pet_name):
    """显示程序的所有的信息"""
   
print("\nI have a "+animal_type + " .")
    print("My " + animal_type +" 's name is " + pet_name)
describe_pets(animal_type  = "bb",,pet_name ="cc")

默认值,定义函数的时候,可以给形参赋值,当函数调用中有实参的时候,使用指定的实参,否则使用形参的默认值。

def describe_pets(animal_type,pet_name = "aa"):
    """显示程序的所有的信息"""
   
print("\nI have a "+animal_type + " .")
    print("My " + animal_type +" 's name is " + pet_name)
describe_pets("bb","cc")

describe_pets("bb")

3、返回值

函数并不是总是直接输出的,有时候也会返回一个值或者一组值。在函数体里,可以使用return将值返回到调用函数的代码行。调用含有返回值的函数时,需要一个变量,用来放置返回值

让实参变成可选:可以采用默认值来使实参变成可选,在定义函数的时候,将需要变成可选的形参默认值为空字符串,并将该形参放置在末尾。在函数体中,检查该形参是否有只时,如果有值,为True,如果依然为空字符串,则  为False

def get_formated_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
name = get_formated_name("aa","bb","cc")
print(name)

函数可以返回任何类型的值,包括列表和字典。还可以将while和函数放在一起使用

4、传递列表

将列表传递给函数,这样函数就能直接访问列表里面的内容

在函数中修改列表:将列表传递给函数时,函数对列表的修改是永久性的,但是有时候不愿意永久性的修改列表,可以将列表的切片传递给函数,这样类似于传递了副本,对副本的改变,并不会改变列表

"""首先创建一个列表,包含未一些要打印的设计"""
def print_model(unprint_model,completed_print):
    while unprint_model:
        model = unprint_model.pop()
        print("\n现在正在打印的是:"+model)
        completed_print.append(model)
def show_model(complete_model):
    print("\n打印如下列表:")
    for model in complete_model:
        print(model)
unprint_model = ["aa","bb","cc"]
complete_print = []
print_model(unprint_model[:],complete_print)
show_model(complete_print)
print(unprint_model)

5、传递任意数量的实参

有时候在定义函数的时候,不知道需要接受多少个实参的时候,可以在定义函数的时候,在形参名称之前加*,这样在传递实参值的时候,将其全部放置在定义的元祖里。

如果让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集在最后一个形参里。

使用任意数量的关键字实参,需要在定义函数的形参名前加**,在时候表示的是一个字典,实参是以关键字的形式即键-值对传入字典里。

6、将函数存储在模块里(在主程序里)

导入整个模块:import 文件名      文件名.调用函数

导入特定的函数:from 文件名 import 函数名

使用as 可以给函数指定别名  from 文件名 import 函数名 as 别名

使用as给模块指定别名    import 文件名as 别名

还可以导入模块的所有的函数:from 文件名 import *

 

 

posted on 2018-07-10 15:15  小季123  阅读(103)  评论(0编辑  收藏  举报

导航