• 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(" I 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(" I 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(" I 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(" 现在正在打印的是:"+model)
            completed_print.append(model)
    def show_model(complete_model):
        print(" 打印如下列表:")
        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 *

     

     

  • 相关阅读:
    常用python机器学习库总结
    链接器link.exe 编译器cl.exe 资源编译器rc.exe
    LRESULT与wParam和lParam的问题
    CreateDialog和DialogBox
    如何通俗易懂地解释卷积?
    深度学习在graph上的使用
    一文弄懂神经网络中的反向传播法——BackPropagation
    WM_COMMAND消息
    win32编程中消息循环和WndProc()窗口过程函数
    使用UEditor 的时候,ajax注意使用同步的方法
  • 原文地址:https://www.cnblogs.com/xiaoji123/p/9289224.html
Copyright © 2020-2023  润新知