首页 > 解决方案 > 在 Python 中迭代地分配变量

问题描述

别介意占位符变量名;如何以我在这里尝试的方式分配给 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”。我需要什么才能将输入分配给正在循环的列表中的变量(同时也不重复自己)?

标签: pythonscopevariable-assignment

解决方案


def get_input(axis):
    while True:
        user_input = input(f"{axis}-Axis: ")
        try:
            axis_int = int(user_input)
        except ValueError:
            continue
        else:
            break
    return axis_int

print("Input 3 search coordinates")
x, y, z = [get_input(axis) for axis in "XYZ"]

推荐阅读