函数 7、位置参数与默认参数之间的关系

默认参数只能放在位置参数后,如果放在位置参数前就会报错

def my_max(a,b=5,c=20): # a为位置参数,b为默认参数
    if a>b:
        return a
    else:
        return b
i=my_max(10)
print(i)

#加一个c,如果c不赋值那就只能放在b默认参数前
#如果赋值,就可以放在b后 因为c成了默认参数
def my_max(a,b=15,c=20):
    if a>b>c:
        return a
    elif b>a>c:
        return b
    else:
        return c
i=my_max(10)
print(i)

原文地址:https://www.cnblogs.com/StevenSunYiwen/p/8877095.html

时间: 2024-08-28 03:46:16

函数 7、位置参数与默认参数之间的关系的相关文章

python函数参数类型:位置参数、默认参数、动态参数

1.位置参数:调用函数的时候传的参数,参数默认按顺序赋值,如果是指定那个参数赋值,不关注顺序.指定参数a=1,b=2 就在函数体内a=1,b=2 2.默认参数:在定义函数的时候,给某个参数设置默认值 3.动态参数:*args 调用函数是可以传入任意个参数或者不传,传递到函数内部会把这些函数存入到一个元组 4.一个函数有位置参数,默认参数时位置参数必须在默认参数前面 原文地址:https://www.cnblogs.com/mo-nian/p/11841066.html

python的位置参数、默认参数、关键字参数、可变参数区别

一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8 def print_hello(name, sex): sex_dict = {1: u'先生', 2: u'女士'} print 'hello %s %s, welcome to python world!' %(name, sex_dict.get(sex, u'先生')) # 两个参数的顺序必须一一对应,且少一个参数都不可以 # print_hello('t

函数声明和函数定义中的默认参数浅析

默认参数是存在于函数的声明中,还是函数的定义中呢? 我在VS6.0和VS2008下做了如下实验,并做出了简单的总结,有不足或者不准确的地方,欢迎大家拍砖,我会及时修正相关内容. 实验一:默认参数不能同时存在于函数声明和函数定义中. #include <iostream> #include <tchar.h> using namespace std; void SetHeight(double dHeight = 183.5); int _tmain(int argc, TCHAR*

[python][oldboy]关键字参数和位置参数,默认参数,可变长参数(无名,有名)

关键字参数和位置参数是在函数调用的时候定义 关键字参数是以键-值对出现,无序,多一个不行,少一个不行 位置参数,有序,多一个不行,少一个不行 混搭:所有位置参数必须在关键字参数的左边 默认参数是在函数定义的定义,在函数调用的时候可以不用传改参数 可变长参数:*args, **kwargs 可变长参数和位置参数的混搭 1 def add(x,y): 2 return x + y 3 def add_1(x=0, y=1): 4 return x + y 5 6 def list_add(x, *a

位置参数,默认参数,非关键字可变长参数,关键字可变长参数

def f(name, gender = 'male', *args, **kw): pass 位置参数:name 默认参数:gender 非关键字可变长参数:args 关键字参数:kw tips:四者的顺序必须是(位置参数)+(默认参数)+(非关键字可变长参数)+(关键字参数) 特殊情况: def f(name, gender = 'male', *args, **kw): print 'name: %s' % name print 'gender: %s' % gender if args

Python - 在定义函数时,为什么默认参数不能放在必选参数前面?

直接定义这样的函数时,Python会报错: Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:16:31) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> def foo(p1, p2=6, p3): return 0

python函数——形参中的:位置参数,关键字参数,默认参数,*args 和 **kwargs的关系

位置参数:按照参数位置依次赋值 def foo(a,b,c): print("a:" + a) print("b:" + b) print("c:" + c) foo("aaa","bbb","ccc") 运行结果: a:aaa b:bbb c:ccc 关键字参数:用于函数调用,通过"键-值"形式加以指定.可以让函数更加清晰.容易使用,同时也清除了参数的顺序需求. #

函数的非固定参数,默认参数,参数组

默认参数: 也可以给默认参数赋值,这个时候就取代了默认的值了: 默认参数的特点:调用函数的时候,默认参数非必须传递: 作用:1.自定义安装软件,默认安装值: 2.连接数据库的参数:比如默认端口号3306 参数组: *args,这个就是参数组,前面有一个星号*,后面可以跟任意字母,定义一个参数组. 接受多个实参,然后把实参放到一个元祖里去.下面的列表作为实参,也是可以的.不过都是转换为元祖. 也可以这么应用,如下图: 如果传输字典实参到函数,可以如下:**kwargs,两个*.把N个关键字参数,转

我爱Python之位置参数、关键字参数、默认参数

1.位置参数: >>> def check_web_server(host, port, path): print .... >>> check_web_server('www.python.org', 80, '/') 三个参数的顺序必须一一对应,且少一参数都不可以 2.(函数调用里的)关键字参数: 可以让函数更加清晰.容易使用,同时也清除了参数的顺序需求,关键字参数通过“键-值”形式加以指定,用于函数调用 >>> check_web_server(