【问题标题】:How do you assign a value to different values in an array?如何将值分配给数组中的不同值?
【发布时间】:2020-05-29 11:54:15
【问题描述】:

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

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)

【问题讨论】:

  • 你的问题不清楚。请正确解释并尝试评论您的代码。

标签: python arrays loops


【解决方案1】:

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

其他几件事:

  • values[i] += ... 将产生一个IndexError,因为这些元素尚未初始化,我认为您的意思是改写values += ...(或者您可以使用.append 而不是+=):
  • 由于input的返回类型,unknown_array已经存储了strs,所以不需要执行str(unknown_array...
x = -1
for i in range(len(unknown_array)):
    values += [input('enter the value of ' + unknown_array[x+1] + ': ')]
    x += 1

更好的是,由于x + 1i 的值相同,因此您应该只使用i 迭代器而不是x + 1

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

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多