Как присвоить значение разным значениям в массиве? - PullRequest
0 голосов
/ 29 мая 2020

В этой программе я помещаю значения в массив и присваиваю этим значениям число с плавающей запятой. Это должно работать так: Пример

Formula name: Addition
how many unknown values?: 3
unknown value:x
unknown value:y
unknown value:z
enter the value of x: 2
enter the value of y: 3
enter the value of z: 

(вместо записи enter the value of y во второй последней строке он снова пишет enter the value of x), как я могу это исправить? Это код:

import math
name = input('Formula name: ')
unknown_values = int(input('how may unknown values?: '))
unknown_array = []
for i in range(unknown_values):
    unknown_name = input('unknown value:')
    unknown_array += [unknown_name]

values = []
x = -1
for i in range(len(unknown_array)):
    values[i] += [input('enter the value of ' + str(unknown_array[x+1] + ': '))]

print(values)

1 Ответ

0 голосов
/ 29 мая 2020

Вы не увеличиваете значение x внутри второго for l oop, поэтому оно всегда будет относиться к одному и тому же элементу в unknown_array. Другими словами, на каждой итерации l oop он будет ссылаться на unknown_array[0] или первое неизвестное, которое вы вводите, которое в вашем примере - x. Вы должны добавить строку для увеличения этого значения в l oop.

Пара других вещей:

  • values[i] += ... даст IndexError, поскольку эти элементы имеют еще не инициализирован, я думаю, вы хотели вместо этого написать values += ... (или вы можете использовать .append вместо +=):
  • Делать str(unknown_array... не нужно, потому что unknown_array уже хранит str s, из-за типа возвращаемого значения input
x = -1
for i in range(len(unknown_array)):
    values += [input('enter the value of ' + unknown_array[x+1] + ': ')]
    x += 1

Еще лучше, поскольку x + 1 - это то же значение, что и i, вам следует просто использовать итератор i. из x + 1:

for i in range(len(unknown_array)):
    values += [input('enter the value of ' + unknown_array[i] + ': ')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...