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