我的函式中有兩種情況,1:所有引數都是字串,這個沒有問題。2:也會有int或float。我想要做的是,檢查 *vars 的型別,如果有 int 或 float 型別,找到這種型別的索引。
def fonk(comp, *vars):
varList = []
varList.append(vars)
varList = [x for xs in varList for x in xs]
for i in range(len(varList)):
if all(isinstance(x, str) for x in varList) == False:
if type(varList[i]) == int or float:
例如:
fonk(">","str1", 1, "str2", 2.5)
所以 int 和 float 型別將是 vars[1] 和 vars[3]。我怎樣才能確定這一點?提前致謝。
uj5u.com熱心網友回復:
def fonk(comp, *vars):
if not all(isinstance(x, str) for x in varList):
return [i for i, val in enumerate(vars) if isinstance(val, (int, float))]
無需復制vars到varList,并且all()測驗不應在回圈內。
if type(varList[i]) == int or float:
不是測驗某事物是否等于多個值之一的正確方法。請參閱為什么“a == x or y or z”總是評估為 True?
你可以給出isinstance()一個型別的元組,它會測驗它是否是其中任何一個的實體。
uj5u.com熱心網友回復:
要檢查型別,您要分別檢查每個并根據型別進行操作。
def fonk(comp, *vars):
for var in vars:
if isinstance(var, str):
pass
elif isinstance(var, (int, float)):
pass
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411401.html
標籤:
