2015-04-19 2 views
0

Я новичок в python и программировании в целом. Эта проблема требует параллельный массив для 10 грузовиков, массив для миль, массив для галлонов и другой для затрат на галлон. Если у кого-то есть рекомендация на полезные сайты или видео, я мог бы взглянуть на рисунок python, который был бы потрясающим! Спасибо за помощь заранее. До сих пор у меня есть это ..миль для нескольких грузовиков python array

size = 10 
miles[size] 
gallons[size] 
costs[size] 

for index == 1 in size - 1: 
    print("Enter the miles, gallons, and costs of fuel for truck 1.", index + 1) 
miles[index] = int(input("miles:") 
gallons[index] = int(input("gallons:") 
costs[index] = int(input("costs:") 
+2

С какой проблемой вы сталкиваетесь? Ошибка, неожиданный выход? – sshashank124

+0

im получение недопустимой синтаксической ошибки для строки 6 == – EVar

+2

Это не то, как работают списки Python - вы не оцениваете их как массивы на других языках. Кроме того, отступы важны - ваш 'input' ** находится вне ** вашего цикла' for'. Попробуйте выполнить руководство, например. https://docs.python.org/3/tutorial/index.html – jonrsharpe

ответ

1

Что-то, как это должно работать:

size = 10 
miles = [] 
gallons = [] 
costs = [] 

for index in range(size): 
    print("Enter the miles, gallons, and costs of fuel for truck {}.".format(index + 1)) 
    miles.append(int(input("miles:"))) 
    gallons.append(int(input("gallons:"))) 
    costs.append(int(input("costs:"))) 

Существовали несколько вопросов с вашей оригинальной версии:

  1. Как указано в комментариях, вы обычно не инициализируете список Python, чтобы начинать с определенного размера, вместо этого вы создаете его пустым, а затем добавляете в него столько же, сколько вам нужно.

  2. Цилиндр for должен быть в форме for <var> in <iterable>. Затем вы можете использовать range(x) в качестве своего итерабельного, в Python 2.7 range вернет список всех чисел в этом диапазоне, в Python 3 он возвращает итератор (что более эффективно с памятью). range(3) позволит вам перебирать 0, 1 и 2 (всего 3 итерации).

  3. Оператор печати можно немного подобрать. Используя <string>.format(), вы можете сделать вывод намного проще. Для получения полной документации см. https://docs.python.org/2/library/string.html#format-examples.

+0

по какой-то причине строка 9 ** галлон ** дает мне недопустимый синтаксис – EVar

+0

Было 3 '(', но только 2 ')' на всех этих входных строках , Я исправил это, но вы должны были его заметить! У вашего исходного кода была аналогичная проблема ;-) –

+0

Я вижу, что вы говорите. Спасибо всем за помощь – EVar