python设置默认参数设置
Ⅰ python input输入框如何设置默认值
这个很简单,在input后面加 “or 默认值”就行了,原理是这样的:如果未输入任何内容,则input将返回空字符串. python中的空字符串是False bool(“”) – >假。
按你的例子:
a=input("2+2=?") or "4"
print a
Ⅱ python中定义函数时如何书写可变参数和默认参数
参数名前面加*是可变位置参数,
加**是可变关键字参数;
参数名=默认值可以用来为参数指定默认值。
下面是一个例子:
#/使前面的参数成为仅仅是位置参数
def f(a=1,b=2,/,c=3,*args,**kwargs):print(a,b,c,*args,kwargs)
def f2(a=1,b=2,c=3,*args,**kwargs):print(a,b,c,*args,kwargs)
#*使后面的参数成为仅仅是关键字参数
def f3(a=1,b=2,*,c=3,d=4):print(a,b,c,d)
#/使前面的参数成为仅仅是位置参数
def f4(a=1,b=2,/,c=3,d=4):print(a,b,c,d)
f()
f(11,22)
#f(a=11,b=22)
f(c=666)
f(1,2,3,4,5,x=5,y=6)
f2()
f2(a=11,b=22)
f2(c=888)
f2("a","b","c",1,2,p="ok")
f3(1001,2222)
f3(a=1001)
f3(111,c=333,d=444)
f3(6,6,c=6,d=6)
#f3(6,6,6,6)
f4(1001,2222)
#f4(1001,b=2222)
f4(1001)
#f4(a=1001)
f4(111,c=333,d=444)
f4(1,2,3,4)
运行结果截图如下:
Ⅲ 关于python带默认值的参数只能放在后面的问题
第一个那个*x是*args的意思,就是任意个参数,C++里的 va_arg,...符号这种,python函数里可以有*args和**kwargs。
*args之后可以随便放有默认值的和没有默认值的。
因为这之后的任何东西都得用”y=1“”z=1“这种来赋值。
比如说第一个函数,def fun(*x, y=4, z),我写fun(1,2,3,4,5),这五个数全跑到*x里了。我想给y和z赋值必须要写fun(1,2,3,4,5,y=6,z=7)。相当于z跟有默认值的那种也差不多了。所以规定可以把z放在*x后面的任何位置,包括y=4后面,它们的位置关系已经没有用了。
规定def fun(x=4, y) y必须放在x前,就是要保留这种位置关系,要不我写fun(1),你说这个1是给x的还是y的?就有了歧义。所以必须要有正确的位置关系。但是*x后面所有东西都是用参数名赋值的,位置关系不起作用了,所以可以任意顺序了。
要理解规定背后的原因。同理,**kwargs放在最后,也是这个原因。消除歧义性。
Ⅳ ubuntu安装python3.10并设置默认
python3.10版本pip3貌似有问题,我降到3.9了。
出现问题:
ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.9/distutils/__init__.py)
添加仓库出现错误:
MoleNotFoundError: No mole named 'apt_pkg'
修改:
/usr/bin/add-apt-repository 中文件头指向原始python版本
如:#!/usr/bin/python3.6
Ⅳ python默认参数
这样写的:
defgreet(msg='hello'):
printmsg
Ⅵ Python中定义函数默认参数值的使用注意事项
4.7.1. 默认参数值
最常用的一种形式是为一个或多个参数指定默认值。这会创建一个可以使用比定义是允许的参数更少的参数调用的函数,例如:
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
while True:
ok = input(prompt)
if ok in ('y', 'ye', 'yes'):
return True
if ok in ('n', 'no', 'nop', 'nope'):
return False
retries = retries - 1
if retries < 0:
raise OSError('uncooperative user')
print(complaint)
这个函数可以通过几种不同的方式调用:
只给出必要的参数:
ask_ok('Do you really want to quit?')
给出一个可选的参数:
ask_ok('OK to overwrite the file?', 2)
或者给出所有的参数:
ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')
这个例子还介绍了 in 关键字。它测定序列中是否包含某个确定的值。
默认值在函数 定义 作用域被解析,如下所示:
i = 5
def f(arg=i):
print(arg)
i = 6
f()
将会输出 5。
重要警告: 默认值只被赋值一次。这使得当默认值是可变对象时会有所不同,比如列表、字典或者大多数类的实例。例如,下面的函数在后续调用过程中会累积(前面)传给它的参数:
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
这将输出:
[1]
[1, 2]
[1, 2, 3]
如果你不想让默认值在后续调用中累积,你可以像下面一样定义函数:
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L