【发布时间】:2021-12-27 17:30:34
【问题描述】:
我需要一个函数来检查输入列表是否全部由数字组成。我知道其他解决方案,但我正在寻找的是有点不同。该函数的输入是使用 *args 提供的元组,我需要该函数处理列表以及数字。此外,它还必须捕获写成字符串的数字。
这意味着它必须适用于以下输入:
- instance = CheckNumbersType([1,2,3,4,5,...])
- instance = CheckNumbersType(['1','2','3','4','5',...])
- instance = CheckNumbersType(1,2,3,4,5,...)
- instance = CheckNumbersType('1','2','3','4','5',...)
这是我的代码,它可以工作,但我认为它效率不高,而且对我来说也有点迂腐。是否有任何图书馆或 oyu 有任何其他想法来避免嵌套所有 if...else 和 try...except?
class CheckNumbersType:
def __init__(self, *args):
self.values = args
def isfloat(self):
var = None
check = True
for item in self.values:
if type(item) == list:
for value in item:
try:
float(value)
var = True
except ValueError:
var = False
print(var)
else:
try:
float(item)
var = True
except ValueError:
var = False
check = check and var
return check
【问题讨论】:
-
创建类有什么意义?
-
CheckNumbersType([1, 2, 3], ["a", "b", "c"])怎么样?还是不会出现? -
@balderman 因为我想定义三种方法。 isfloat、isinteger 和 isnumber
-
@Stuart 也是