zoukankan      html  css  js  c++  java
  • python函数传参和返回值注意事项

    函数传参

    • 空参数
      定义函数时括号里面没有形参,调用时不用传参。
    def func():
        print('null para.')
    
    # 调用
    func()
    
    • 位置传参
      规定形参的数量,调用时必须传递相同数量的形参。
    def func(a, b):
        print(a,b)
    
    # 调用
    func(11, 22)
    
    • 带默认参数的形参
      带默认值的参数位于非默认值参数的后面, 即位于位置参数,可变参数后面。
    def func(a, b, c=0):
        print(a, b, c)
    
    # 调用
    func(11, 22)
    
    • 传递元组型可变参数
    def f2(a, b, *args):
        print(a)
        print(b)
        print(args)
    
    rest =  f2(10, 20, 30, 40, 50)
    print(rest)
    
    执行结果:
    10
    20
    (30, 40, 50)
    
    
    • 元组传参传递的另一种方式:
    def f2(a, b, *args):
        print(a)
        print(b)
        print(args)
    
    my_tuple = (30, 40, 50)
    rest =  f2(10, 20, *my_tuple)
    print(rest)
    
    执行结果:
    10
    20
    (30, 40, 50)
    
    除位置参数10, 20以后的数据自动赋值给了元组形参*args
    如果只传10,20这2个参数给f2函数也不会报错,此时元组接收的参数为空。
    
    • 传递字典型可变参数
    def f2(a, b, **kwargs):
        print(a)
        print(b)
        print(kwargs)
    
    rest =  f2(10, 20, ka=558, kb='bbb')
    print(rest)
    
    执行结果:
    10
    20
    {'ka': 558, 'kb': 'bbb'}
    
    • 传递字典参数的另一种形式:
    def f2(a, b, **kwargs):
        print(a)
        print(b)
        print(kwargs)
    
    kw_para = {'ka': 558,' kb': 'bbb'}
    
    rest =  f2(10, 20, **kw_para)
    print(rest)
    
    执行结果:
    10
    20
    {'ka': 558, 'kb': 'bbb'}
    
    • 位置参数、元组参数、字典参数混合传参
    def f2(a, b, *args, **kwargs):
        print(a)
        print(b)
        print(args)
        print(kwargs)
    
    my_kw = {'ka': 558, 'kb': 'bbb'}
    my_tuple = (30, 40, 50)
    rest =  f2(10, 20, *my_tuple, **my_kw)
    print(rest)
    
    结果:
    10
    20
    (30, 40, 50)
    {'ka': 558, 'kb': 'bbb'}
    按位置参数、元组参数、字典参数的顺序定义函数和调用,位置顺序不能调换!
    除非有带默认参数的位置参数,此时带有默认参数的位置参数需要放到元组参数和字典参数之间。
    
    • 带有默认参数的位置参数、元组参数、字典参数混合传参
    def f2(a, *args, b=0, **kwargs):
        print(a)
        print(b)
        print(args)
        print(kwargs)
    
    my_kw = {'ka': 558, 'kb': 'bbb'}
    my_tuple = (30, 40, 50)
    rest =  f2(10, *my_tuple, **my_kw)
    print(rest)
    
    结果:
    10
    0
    (30, 40, 50)
    {'ka': 558, 'kb': 'bbb'}
    

    函数返回值

    • 函数执行完不出现return语句,或者return语句不返回值,此时调用者收到的返回值为None。
    • 可以返回一个元组。
    def func():
        return 1, 2, 3
    
    x, y, z = func()
    
    
    • 返回其他对象等。
  • 相关阅读:
    [ Luogu 3398 ] 仓鼠找sugar
    [ JLOI 2014 ] 松鼠的新家
    AtcoderGrandContest 005 F. Many Easy Problems
    Codeforces 388 D. Fox and Perfect Sets
    Codeforces 1037 H. Security
    「学习笔记」wqs二分/dp凸优化
    「NOI2017」游戏
    「SCOI2014」方伯伯的商场之旅
    「SCOI2015」情报传递
    「SCOI2016」美味
  • 原文地址:https://www.cnblogs.com/bryant24/p/11439729.html
Copyright © 2011-2022 走看看