def twist_data(n):
n=list(n)
a=[]
b=[]
for i in n:
if i<=0:
a.append(i)
if i>0:
b.append(i)
n=[len(a),sum(b)]
return n
gum=[2,4,5,-6,-7,]
print (twist_data (gum))
def all_ints(numbers):
return all(isinstance(number, int) for number in numbers)
def validate_list(numbers):
return all((isinstance(numbers, list), all_ints(numbers))
def twist_data(numbers):
if not validate_list(numbers):
raise TypeError('"numbers" must be of type "list", where all elements integers')
positives, negatives = [], []
for number in numbers:
if number <= 0:
negatives.append(number)
if i > 0:
positives.append(number)
return [len(negatives), sum(positives)]
def twist_data(numbers):
positives, negatives = [], []
try:
for number in numbers:
if number <= 0:
negatives.append(number)
if i > 0:
positives.append(number)
return [len(negatives), sum(positives)]
except TypeError:
raise TypeError('"numbers" must be of type "list", where all elements integers')
虽然做显式类型检查不是一般的python,但有时这是不可避免的。这是一个非常直接的方法。然而,请求原谅比请求允许更容易,所以这是另一种可能性:
这里,如果您尝试在不可比较的类型之间进行比较,则会引发
TypeError
。然后可以捕获异常并用自己的消息重新发送。你知道吗还要尽量避免使用单字母变量名。跟踪发生的事情会容易得多。你知道吗
相关问题 更多 >
编程相关推荐