zoukankan      html  css  js  c++  java
  • 函数基础

    一、定义

      1.函数

        1).函数包括定义函数,调用函数。定义函数使用 ----def 函数名(参数) ------的方式。

        2).定义函数可以增加可读性和复用性。

        3).函数有参数和返回值,函数内容就是函数体。

      2.参数

        1)形参:在函数定义的时候,不知道传入的值是多少,但函数体内部需要使用,于是写入形参。形参的名字和函数体内使用的名字必须一致。

        2)实参:在实际调用函数的时候,传入的参数。实参和形参的命名可以不一致。

      3.返回值

        1)返回值是函数执行完之后返回(return)的结果,如果不接收就令此值回收。

        2)函数如果执行到return语句,函数停止运行。如果是分支中有return,但没有运行到那个分支,不会停止运行。

    二、函数分类

      1.从返回值讲

        1)没有返回值

          不写return    只写return  或者return None

    def func1():
        print("asdf")
    func1()
    def func1():
        a=10
        b=20
        print(a+b)
        return
    
    func1()
    def func1():
        a=int(input("请输入一个1-10的数:"))
        for i in range(1,10):
            print(i)
            if i == a:
                return None
        return None
    
    print(func1())   #None

        2)返回一个值

          这个值可以是任意类型的值。如果之后会用到,可以在调用函数之后用变量接收返回值。

    def func1(a=10,b=20):
        sum=a+b
        return sum
    
    s=func1()   
    print(s)

        3)返回多个值

          返回的多个值可以用一个变量以元祖形式接收,也可以用多个变量依次接收。

    def func1(a=10,b=20):
        sum=a+b
        return sum,a,b
    #用一个变量接收
    s=func1()
    print(s)
    #多个变量依次接收
    x,y,z=func1()
    print("sum=",x)
    print("a=",y)
    print("b=",z)
    # (30, 10, 20)
    # sum= 30
    # a= 10
    # b= 20

      2.从参数讲

        1)没有参数

          函数体内不需要有外部传入的参数

    def func1():
        a=10
        b=20
        sum=a+b
        return sum,a,b
    #用一个变量接收
    s=func1()
    print(s)

        2)有一个参数

          --- def 函数名(参数)----的方式就可以,参数可以是默认传参,即如果在调用时不传入相应参数,就按照函数定义时的参数设置执行,如果调用时有参数传入,按照传入参数执行。

    def func1(a=10):
        b=20
        sum=a+b
        return sum,a,b
    #用一个变量接收
    s=func1(6)
    print(s)
    #(26, 6, 20)

        3)有多个参数

          --- def 函数名(参数1,参数2,……),也可以默认传参。

          不确定的多个参数可以使用---*args---的方式传入,多层参数也可以使用---**变量名---的方式传入。

    def funmx(a,b,*args):
        sum=a+b
        for i in args:
            sum+=i
        print(sum)
        return
    funmx(2,3,1,2,3,3,4,5)
    #23
    def funmx(a,b,*args,c):
        sum=a+b+c
        for i in args:
            sum+=i
        print(sum)
        return
    funmx(2,3,1,2,3,3,4,c=5)  #指定参数名传递,否则后面一串会依次被认为是*args中的
    #23
    
    def funcs(x,*args,**kwargs):    #*args+**kwargs几乎是万能的
        sum=x
        for i in args:
            sum+=i
        for i in kwargs.values():
            sum+=i
        print(sum)
    
    nums=[3,4]
    numm={"num1":5,"num2":6}
    funcs(1,2,*nums,**numm)
    #21

     ----------------------------------------------------一个示例------------------------------------------------------------

    def funcx(x):
        if type(x) is list and x:
            for i in x:
                if x== '':
                    return True
        elif x and type(x) is list or type(x) is tuple:
            for i in x:
                if not i:
                    return False
    a=10
    b=20
    c=a if a>b else b   #三元运算符。和c++里面的? :不一样
    print(c)
  • 相关阅读:
    java 静态代码块和spring @value等注解注入顺序
    中秋节
    IP切换
    MMF循环队列实现RPC
    Redis 集群方案
    简单Http多线程下载实现
    信息采集
    大四了
    懒懒交流会《前端,架构,框架与库》里面提到的一些问题
    [知识整理] 导数据工具
  • 原文地址:https://www.cnblogs.com/lowislucifer/p/10969733.html
Copyright © 2011-2022 走看看