【发布时间】:2019-09-05 22:57:56
【问题描述】:
不要介意占位符变量名;如何按照我在这里尝试的方式分配给 D、E 和 F?
print("Input 3 search coordinates")
D, E, F, = 0, 0, 0
for axes in [[D, "Y"], [E, "X"], [F, "Z"]]:
while True:
try:
axes[0] = int(input("{}-Axis: ".format(axes[1])))
break
except:
print("No, a natural number!")
print(axes)
print(str(D) + str(E) + str(F))
最后这一点打印调试输出“000”,而不是输入,例如“444”。我需要什么才能将输入分配给正在循环的列表中的变量(同时也不重复自己)?
【问题讨论】:
-
不要使用动态变量,只使用容器,例如
list或dict -
列表元素不记得它的初始值来自变量
D;为列表元素分配一个新值使D不受干扰。 -
@JohnGordon 作为学术兴趣的问题,编译器对第一个和第二个
D做了什么? (有没有办法从编译中将 Python 变成 C 的程序集,或者那会非常难以阅读?) -
这段代码的组织方式,我认为您无法检索输入值,因为您没有为外部列表分配名称。您可以访问的唯一名称是
axes,当 for 循环完成时,它将仅包含最后一个子列表。
标签: python scope variable-assignment