2013-06-08 2 views
1

пытается сравнить элементы в a и b и возвращает наибольшее число при каждом индексе в списке big - результат должен быть [9, 14,9,14,15,18,15] .doing это для класса, необходимо использовать во время цикла и счетчикwhile цикл не прерывается, должен прерываться, когда счетчик не меньше длины массива

a = [7,12,9,14,15,18,12] 
b = [9,14,8,3,15,17,15] 
big = [] 
i = 0 
length = len(a) 
while i < length: 
    if a[i] > b[i]: 
     big.append(a[i]) 
    else: 
     big.append(b[i]) 
    i = i + 1 
print(big) 
+0

В чем проблема? a и b имеют одинаковый размер? – nachokk

+2

Это сломается. Что заставляет вас думать, что это не так? Кроме того, вы можете сделать это гораздо лучше с помощью 'map':' map (max, zip (a, b)) '. – Blender

+1

Вы пропустили важную часть информации: на каком языке это? Лучше всего включить его в теги, связанные с вопросом, поэтому люди, которые знают этот язык, скорее всего это обнаружат. – IMSoP

ответ

1

Если запустить свой код непосредственно в оболочке Python, вы получите SyntaxError.

Для получения дополнительной информации см http://bugs.python.org/issue11433

Если вы сохраните код вниз в файле, скажем test.py, а затем запустить python test.py, он выдаст результат, как и ожидалось.

Edit:

Этот ответ в настоящее время имеющий рейтинг -1. Перед тем, как спустить вниз, можете ли вы на самом деле прочитать и попытаться понять ответ?

Это то, что я говорю:

enter image description here

+0

-1. Нет ничего плохого в использовании вышеуказанного кода в оболочке Python. Это точно то, что ожидает OP. – dansalmo

+0

Извините, забыл указать, что это python, я запускаю его в pyscripter, и кажется, что он не сломается. Мне нужно убить программу. – kflaw

+0

@dansalmo. Я не думаю, что вы действительно попробовали ее внутри интерпретатора python. Вы понимаете разницу? –

1

Там нет ничего плохого с кодом. Я просто скопировал его и пробежал по IDLE. Вывод точно так же, как вы указали

+0

Я не получил ошибку, я пытаюсь запустить в pyscripter, и он просто продолжает работать, и мне нужно убить программу. почему это должно быть – kflaw

+0

Этого не происходит ни для кого другого. Я бы добавил инструкцию 'print i, length' в цикле и посмотреть, что она делает. – dansalmo

+0

Проблема может заключаться в использовании pyscripter. – Bakuriu

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