Как вызвать исключение, когда список содержит отрицательные значения - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу вычислить среднее значение гармоник c и вызвать исключение, если мой список "x" содержит отрицательные значения. Но код не работает. Как я могу настроить мой для +, если государственные деятели t, чтобы решить проблему? Спасибо.

x=[1,2,3.0,-3,,-2,1]

def hmean(x):
  sum= 0.0
  for i in x:
    if i < 0:
      raise Exception("list contains negative values")
    else:
      sum = 0.0
      for i in x:
        sum+= 1.0 / i
      return print(float(len(x) / sum))

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Есть несколько проблем с этим кодом:

def hmean(x):
  for i in x:
    if i < 0:
      raise Exception("list contains negative values")
  # no need for else:, we come here if exception is not raised
  s = 0.0 # do not use sum as variable name
  for i in x:
    s += 1.0 / i
  return float(len(x)) / s # return needs to be outside the for loop; also, no print() here
1 голос
/ 26 февраля 2020

Привет, если вы хотите исправить свой ответ, подумайте, что это поможет:

x=[1,2,3.0,-3,2,-2,1]

def hmean(x):
    s= 0.0
    for i in x:
        if i < 0:
            raise Exception("list contains negative values")
        else:

            s += 1.0 / i
    return float(len(x) / sum)
hm = hmean(x)
print(hm)
...