在此程序中,我将这些值放入数组中,并为这些值分配一个浮点数。 它应该像这样工作: 例如。
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)
答案 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