zoukankan      html  css  js  c++  java
  • python函数的定义

    函数的定义

    def 函数名(等同于变量名):
        '''对函数(工具)的描述信息'''
        代码块
    

    例子:

    def guess():
        '''给定两个数,打印较大的数'''
        x=20
        y=30
        if x>y:
            print(x)
         else:
            print(y)
    print(guess.__doc__)#打印注释
    

    函数定义的特性:函数定义过程,只检测语法,不执行代码。调用阶段,会执行代码。

    定义函数的三种形式

    空函数

    def shopping():
        pass
    

    有参函数

    def guess(x,y):
        '''给定两个数,打印较大的数'''
        if x>y:
            print(x)
         else:
            print(y)
    print(guess.__doc__)#打印注释
    guess(10,20)
    

    无参函数

    def guess():
        '''给定两个数,打印较大的数'''
        x=20
        y=30
        if x>y:
            print(x)
         else:
            print(y)
    print(guess.__doc__)#打印注释
    

    函数的调用

    调用:函数名()

    guess()# 调用
    print(guess)#函数的内存地址
    

    函数的返回值

    返回值:返回一个值(所有数据类型)

    def guess():
        '''给定两个数,打印较大的数'''
        x=20
        y=30
        if x>y:
            return x
         else:
            return y
    num=guess()
    print(num)
    

    return的特性:

    1.return返回一个返回值,如果没有返回值,就返回None

    2.没有return,默认返回None

    3.return会终止函数,不运行下面的代码,假设有多个return的时候,运行到第一个就会结束,不会运行第二个。

    4.return通过逗号隔开,可以返回多个值,返回值以元组的形式接受。

    函数的参数

    形参

    定义函数阶段的产物,具有接受是实参的用作,具有描述意义

    位置形参

    从左到右依次接受实参的值

    默认形参

    1.如果你不给值,使用默认值;如果调用的时候传值,使用传的值

    2.默认形参必须放在位置形参后面

    实参

    调用阶段的产物,传给形参一个具体的值,据有具体的值(可以位所以数据类型)

    位置实参

    从左到右依次给位置形参传值,一一对应,形参有多少,实参必须也有多少。

    关键字实参

    1.位置实参必须写在关键字实参的前面。

    2.按照形参名给形参传值(使用情况基本为0)——》函数的参数一般为0-3个,尽量不要超过3个。

    可变长参数

    可变长形参

    *lt,把所有传过来的实参全部接收,并且以元组的形式存储

    def min_10(a, b, c, *lt):  # *lt,把所有传过来的实参全部接收,并且以元组的形式存储
        print(lt)#(4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 11, 1)
        a, b, c, d, e, f, g, h, i, j, *_ = lt
        print(_)#[1, 1, 1, 1, 1, 1, 1, 11, 1]
    res = min_10(1, 2, 3, 4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 11,
                 1, )  # *,相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参
    print(res)
    

    可变长实参

    *相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参

    def min_10(a, b, c, d, e, f, g, h, i, j):
        print(a, b, c, d, e, f, g, h, i, j)#1 2 3 4 5 6 7 8 9 10
    lt = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    res = min_10(*lt)  # *,相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参
    print(res)
    
    
    

    *

    *形参名

    def f1(*args):#调用函数时,有多少个位置实参,我就接受多少个参数
        print(args)
    f1()#空元组
    

    *args(约定俗成得),用元组接受多余得位置实参

    *实参

    def f1(a, b, c, e, d, f, g):
        print(a, b, c, e, d, f, g)
    lt = [1, 2, 3, 4, 5, 6, 7]# f1(lt[0],lt[1],lt[2],lt[3],lt[4],lt[5],lt[6])
    f1(*lt)  # *lt把列表中的元素打散成位置实参依次传给位置形参
    

    **

    **形参

    def f1(**kwargs):
        print(kwargs)
    f1()#空字典
    

    **kwargs用字典接受多余得关键字实参

    **实参

    def f1(z, b):
        print(z, b)
    dic = {'z': 1, 'b': 2}  # a=1,b=2
    f1(**dic)  # **dic把字典打散成关键字实参然后传给函数f1
    
  • 相关阅读:
    memcached全面剖析--3.memcached的删除机制和发展方向
    memcached完全剖析--1. memcached的基础
    memcached全面剖析--2.理解memcached的内存存储
    memcached内存管理机制[未整理]
    memcached缓存基本概念
    有关memcached企业面试案例讲解
    网关协议学习:CGI、FastCGI、WSGI
    Redis和Memcached的区别
    Linux 日志切割工具cronolog详解
    vim粘贴代码格式变乱
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/12577934.html
Copyright © 2011-2022 走看看