好的,所以我环顾四周,看到了类似的问题,并尝试了一些不同的事情。这就是我想要达到的目标。我有一个变量列表,上面已经分配了浮点值。我希望能够要求用户从列表中选择一个变量,并将浮点值添加到现有变量中,或者创建一个新变量,并为其赋值,然后将其添加到列表中。(我使用的是python3)
这是我目前的情况
A = 0.00
B = 0.00
C = 0.00
List = [A,B,C]
while True:
Var = int(input("add to A(0), B(1), C(2) or add new varible (100)"))
if Var != 100:
amount = float(input("amount"))
List[Var] = List[Var] + amount
if Var == 100:
newVar = input("Var name, amount").split(' ')
newVar[0] = float(newVar[1])
List = List + newVar[0]
因此,我试图让用户命名变量并定义数量,然后将其添加到此列表中。当我运行它时,我得到了这个消息
Traceback (most recent call last):
File "/Users/jmc/Documents/test.py", line 14, in <module>
newVar[0] = float(newVar[1])
IndexError: list index out of range
添加到现有的功能部分是好的,我相信。我真的很感激如果有人能告诉我哪里做错了,或者如果这是一个荒谬的方式来做这件事。如果是,有什么更有效的方法?你知道吗
只要输入包含空格,这个程序就不应该抛出
IndexError
。 如果您的输入不包含空格,按' '
拆分将创建一个长度为1的列表,其中包含整个输入字符串,如果您尝试访问索引1
处的元素,则会导致IndexError
。你知道吗解决方法是将每个变量分配给它自己的
input
:但是,在当前形式下,代码将在下一行抛出
TypeError
:您需要将
amount
变量转换为要连接的列表。可以使用方括号执行此操作:虽然现在可以这样做了,但是当您想将名称与存储在列表中的值相关联时,您可能需要使用^{} 。这允许您访问存储值的名称,而不是使用^{} 在输出字符串中硬编码它们
但是,您需要检查,如果用户选择添加到新名称,它是否已经不是字典中的键,因为先前的值将被覆盖。你知道吗
该计划的起点可以如下所示:
尽管你可能不想给你的字典命名
List
。你知道吗相关问题 更多 >
编程相关推荐