zoukankan      html  css  js  c++  java
  • 函数的参数及返回值

    默认参数

    def stu_register(name,age,country,course):
        print("----注册学生信息------")
        print("姓名:",name)
        print("age:",age)
        print("国籍:",country)
        print("课程:",course)
      
    stu_register("王山炮",22,"CN","python_devops")
    stu_register("张叫春",21,"CN","linux")
    stu_register("刘老根",25,"CN","linux")
    注意:发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你不填写,默认就会是 中国, 这就是通过默认参数实现的,把country变成默认参数非常简单
    def stu_register(name,age,course,country="CN"):

    这样,这个参数在调用时不指定,那默认就是CN,指定了的话,就用你指定的值。

    另外,你可能注意到了,在把country变成默认参数后,我同时把它的位置移到了最后面,为什么呢?

    关键参数

    正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

    stu_register(age=22,name='alex',course="python",)

    非固定参数

    若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

    def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式
        print(name,age,args)
      
    stu_register("Alex",22)
    #输出
    #Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
      
    stu_register("Jack",32,"CN","Python")
    #输出
    # Jack 32 ('CN', 'Python')

     还可以有一个**kwargs

    def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
        print(name,age,args,kwargs)
      
    stu_register("Alex",22)
    #输出
    #Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
      
    stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
    #输出
    # Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
    代码示例:
     1 def print_info(name,age):
     2     print('Name: %s'%name)
     3     print('Age: %s'%age)
     4 
     5 print_info('alex',35) #必须参数
     6 
     7 def print_info(name,age):
     8     print('Name: %s'%name)
     9     print('Age: %s'%age)
    10 
    11 print_info(age=35,name='alex') #关键字参数
    12 
    13 def print_info(name,age,sex='male'):
    14     print('Name: %s'%name)
    15     print('Age: %s'%age)
    16     print('Sex: %s'%sex)
    17 
    18 print_info('alex',35)
    19 print_info('wuchao',20)
    20 print_info('jinxin',18)
    21 print_info('xiaoyu',18,'female') #默认参数(必须放在必须参数的后面)
    22 
    23 def add(x,y,z): #low加法器
    24     print(x+y+z)
    25 
    26 add(1,2,3)
    27 
    28 def add(*args): #不定长参数(高大上加法器)
    29     #print(args)
    30     sum = 0
    31     for i in args:
    32         sum += i
    33     print(sum)
    34 
    35 add(1,2,3,4,5,6) #传入的是无命名参数
    36 
    37 def print_info(*args, **kwargs):  # 不定长参数(键值对)
    38 
    39     print(args)  # ('alex', 35, 'male') 无命名参数被args接收
    40     print(kwargs)  # {'jop': 'IT', 'hobby': 'girl', 'height': 188} 声明参数被kwargs接收
    41 
    42 
    43 print_info('alex', 35, 'male', jop='IT', hobby='girl', height=188)  # 传入的是声明参数
    44 
    45 
    46 def print_info(**kwargs):  # 不定长参数(键值对)
    47 
    48     print(kwargs)  # {'jop': 'IT', 'hobby': 'girl', 'height': 188} 声明参数被kwargs接收
    49     for i in kwargs:
    50         print('%s:%s'%(i,kwargs[i]))
    51 print_info(jop='IT', hobby='girl', height=188)  # 传入的是声明参数
    52 
    53 #不定长参数的位置
    54 #*args放在左边,**kwsrgs放在后边
    55 def f(*args,**kwargs): #无命名参数必须放左边,声明参数放右边
    56     pass
    57 f(1,2,[3,4,5],name='alex')
    58 
    59 def print_info(sex='male',*args,**kwargs):  # 不定长参数(键值对) 默认参数必须放在不定长参数的左边
    60     print(args)
    61 
    62     print(kwargs)
    63     for i in kwargs:
    64         print('%s:%s'%(i,kwargs[i]))
    65 print_info('female',1,2,3)
    66 print_info(1,2,3,'female',name='alex')
    67 
    68 #函数参数的优先级
    69 def dfun(name,age=22,*args,**kwargs):#必须参数-关键字参数-不定长(无命名参数)-不定长(声明参数) 

     函数的返回值

    要想获取函数的执行结果,就可以用return语句把结果返回

    注意:

    1. 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
    2. 如果未在函数中指定return,那这个函数的返回值为None
    3. return多个对象,解释器会把这多个对象组装成一个元组作为一个整体结果输出
     
     
  • 相关阅读:
    无向图的邻接表
    tensorflow安装问题:ImportError:DLL load failed找不到指定模块
    《梦断代码》阅读笔记(三)
    《梦断代码》阅读笔记(二)
    《梦断代码》阅读笔记(一)
    个人总结
    第十六周总结
    团队开发冲刺第二阶段(最终日总结)
    第十五周总结
    "百度输入法"评测
  • 原文地址:https://www.cnblogs.com/NumerOne/p/11457342.html
Copyright © 2011-2022 走看看