zoukankan      html  css  js  c++  java
  • python基础-函数基本特性和用法

    函数:

    初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数。自变量x的取值范围叫做这个函数的定义域.

    python中函数定义方法:

    def test(x):
      "The function definitions"
      x+=1
      return x

    def:定义函数的关键字
    test:函数名
    ():内可定义形参
    "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
    x+=1:泛指代码块或程序处理逻辑
    return:定义返回值

    总结可概括使用函数的三大优点
    1.代码重用
    2.保持一致性
    3.可扩展性

    在python中函数分两类:内置函数,自定义函数

    #内置函数
    # sum
    # max
    # min
    # a=len('hello')
    # print(a)
    # b=max([1,2,3])
    # print(b)


    #自定义函数

    # # ******
    # # ******
    # # ******
    # # hello world
    # # ******
    # # ******
    # # ******
    # def print_star():
    # print('#'*6)
    # def print_msg():
    # print('hello world')
    # print_star()
    # print_star()
    # print_star()
    # print_msg()
    # print_star()
    # print_star()
    # print_star()

    #定义函数的三种形式
    #一:无参数函数:如果函数的功能仅仅只是执行一些操作而已,就定义成无参函数,无参函数通常都有返回值
    def print_star():
    print('#'*6)

    #二:定义有参函数:函数的功能的执行依赖于外部传入的参数,有参函数通常都有返回值
    # def my_max(x,y):
    # res=x if x >y else y
    # return res

    #三:空函数

    # def auth():
    # """认证功能"""
    # pass
    # auth()

    函数参数:

    形参:形式参数,不是实际存在,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)

    实参:实际参数,调用函数时传给函数的参数,可以是常量,变量,表达式,函数,传给形参

    区别:形参是虚拟的,不占用内存空间,.形参变量只有在被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
    2.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)
    3.默认参数
    4.参数组

    def test (x,y): #x,y是形参 位置参数
    print(x)
    print(y)
    test(1,2)#实参
    #形参和实参是一一对应

    def test (x,y):
    print(x)
    print(y)
    test(4,y=0)#关键字参数#与顺序无关
    #关键字要在位置参数前面

    #默认参数
    def test(x,y=2):#两种位置和关键字
    print(x)
    print(y)

    #默认参数的值通常定义成不可变类型

    #4.参数组

     1 def foo(x,y,*args): #*会把溢出的按位置定义的实参都接收,以元组的形式赋值给args
     2     print(x,y)
     3     print(args)
     4 
     5 foo(1,2,3,4,5)
     6 
     7 
     8 def add(*args):
     9     res=0
    10     for i in args:
    11         res+=i
    12     return res
    13 print(add(1,2,3,4))
    14 print(add(1,2))
    15 
    16 
    17 
    18 def foo(x, y, **kwargs):  # **会把溢出的按关键字定义的实参都接收,以字典的形式赋值给kwargs
    19     print(x, y)
    20     print(kwargs)
    21 foo(1,2,a=1,name='egon',age=18)
    View Code

    #补充:函数定义阶段到底干了什么事情:只检测函数体的语法,并不会执行

     5.按照有参和无参可以将函数调用分两种

    1 def foo():
    2     print('from foo')
    3 
    4 def bar(name):
    5     print('bar===>',name)
    6 
    7 #按照有参和无参可以将函数调用分两种
    8 foo() #定义时无参,调用时也无需传入参数
    9 bar('egon') #定义时有参,调用时也必须有参数
    View Code
    def my_max(x,y):
    res=x if x >y else y
    return res

    # res=my_max(1,2)*10000000 #调用函数的表达式形式
    # print(res)


    res=my_max(my_max(10,20),30) #把函数调用当中另外一个函数的参数
    print(res)

    函数返回值
    以下三种情况返回值都为None:
    没有return
    return 什么都不写
    return None
    1 def foo():
    2     print('from foo')
    3     x=1
    4     return 1,[2,3],(4,5),{}
    5 res=foo()
    6 print(res) #打印结果:(1,[2,3],(4,5),{})
    7 a,b,c,d=foo()
    8 print(d)
    View Code
    return 值1,值2,值3,...   返回结果:(值1,值2,值3,...)

    函数的调用
     1 def foo():
     2     print('from foo')
     3 
     4 def bar(name):
     5     print('bar===>',name)
     6 
     7 #按照有参和无参可以将函数调用分两种
     8 foo() #定义时无参,调用时也无需传入参数
     9 bar('egon') #定义时有参,调用时也必须有参数
    10 
    11 
    12 #按照函数的调用形式和出现的位置,分三种
    13 
    14 foo() #调用函数的语句形式
    15 
    16 def my_max(x,y):
    17     res=x if x >y else y
    18     return res
    19 
    20 # res=my_max(1,2)*10000000 #调用函数的表达式形式
    21 # print(res)
    22 
    23 
    24 res=my_max(my_max(10,20),30) #把函数调用当中另外一个函数的参数
    25 print(res)
    View Code
     
    
    
  • 相关阅读:
    看见一个希腊字母表
    剑桥的技术报告列表
    CompaqDEC的技术报告
    linux动态链接库的使用
    Vectored I/O or ScatterGather I/O
    week reference
    Cache pingpong
    [zz] References on Mutual Excuslion
    redis: event loop
    看WinForm源代码的笔记
  • 原文地址:https://www.cnblogs.com/zjltt/p/6867051.html
Copyright © 2011-2022 走看看