2016-11-30 2 views
0

Я пытаюсь добавить возвращаемое значение функции parityOf в функцию appendParity. Я понимаю, что это не будет return, как у меня в моем коде, но я не уверен, как правильно добавить возвращаемое значение. Ниже мой код.Как добавить возвращаемое значение

def parityOf(list_bits, parity): 
    y = parity 
    x = list_bits.count(1) 

    if (x % 2 == 0 and y % 2 == 0) or (x % 2 != 0 and y % 2 != 0): 
     return 0 
    else: 
     return 1 

def appendParity(list_bits, parity): 
    return list_bits.append(parityOf(return)) 

ответ

1

Я не уверен, что понял вопрос правильно, но я верю в appendParity вы хотите сначала вычислить бит четности, а затем добавить его в список. Чтобы вычислить бит четности (используя parityOf), вам необходимо позвонить parityOf(list_bits, parity), а не parityOf(return), что является недопустимым синтаксисом. Собираю вместе, вы получите

def appendParity(list_bits, parity): 
    return list_bits.append(parityOf(list_bits, parity)) 

Обратите внимание, что метод append по спискам имеют эффект от добавления значения в список и возвращаетNone (не имеет смысла значения), поэтому обратное заявление эта функция не нужна и потенциально запутанна (вы можете подумать, что она возвращает список, но это не так). Может быть, сделать

def appendParity(list_bits, parity): 
    list_bits.append(parityOf(list_bits, parity)) 
+0

Спасибо, что сработал! – Brooke

0
>>> def aNum(): 
...  return 10 
... 
>>> foo = [1,2,3,4,5,6,7,8,9] 
>>> foo.append(aNum()) 
>>> foo 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
>>> 
0

Вы были почти правы. Но вам нужно изменить возврат от «appendParity» от return list_bits.append(parityOf(return)) до return list_bits.append(parityOf(list_bits,parity)).

Обратите внимание, что метод «parityOf» получает 2 параметра

Смежные вопросы