如何将值分配给数组中的不同值?

时间:2020-05-29 11:54:15

标签: python arrays loops

在此程序中,我将这些值放入数组中,并为这些值分配一个浮点数。 它应该像这样工作: 例如。

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 :(得分:0)

您不会在第二个x循环内递增for的值,因此它将始终引用unknown_array中的相同元素。换句话说,在循环的每次迭代中,它将引用unknown_array[0]或您输入的第一个未知数,在您的示例中为x。您应该添加一行以在循环中递增此值。

其他一些事情:

  • values[i] += ...将产生IndexError,因为这些元素尚未初始化,我想您的意思是写values += ...(或者您可以使用.append而不是{ {1}}):
  • 因为+=的返回类型,str(unknown_array...已经存储了unknown_array,所以不需要进行str
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