在 Python 中迭代分配变量
Iteratively assigning variables in 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”。我需要什么才能将输入分配给循环列表中的变量(同时也不重复我自己)?
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"]
改用dictionary
:
- 将
list
替换为dict
,然后调用key
更新value
- 在更新命名变量(例如
x
、y
、z
)的情况下,字典更好 data type
。
coor_dict = {'x': 0, 'y': 0, 'z': 0}
for k in coor_dict.keys():
while True:
try:
coor_dict[k] = int(input(f'{k}-Axis: '))
break
except ValueError:
print('No, a natural number!')
print(coor_dict)
执行输出:
x-Axis: 4
y-Axis: 5
z-Axis: 6
{'x': 4, 'y': 5, 'z': 6}
不用管占位符变量名;如何按照我在这里尝试的方式分配给 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”。我需要什么才能将输入分配给循环列表中的变量(同时也不重复我自己)?
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"]
改用dictionary
:
- 将
list
替换为dict
,然后调用key
更新value
- 在更新命名变量(例如
x
、y
、z
)的情况下,字典更好data type
。
coor_dict = {'x': 0, 'y': 0, 'z': 0}
for k in coor_dict.keys():
while True:
try:
coor_dict[k] = int(input(f'{k}-Axis: '))
break
except ValueError:
print('No, a natural number!')
print(coor_dict)
执行输出:
x-Axis: 4
y-Axis: 5
z-Axis: 6
{'x': 4, 'y': 5, 'z': 6}