如何为每个用户输入创建唯一变量名?现有报错代码能否实现?
实现为每个用户输入创建唯一变量名的需求
你的原代码存在几个明显错误:
- 未定义变量
n,range(n)会直接触发报错; x(i) = input()是非法语法,Python不支持用函数调用的形式定义变量名。
不过这个需求是可以实现的,但不推荐直接创建x1、x2这类独立变量,更规范的做法是用字典或列表存储输入,既能避免命名污染,也方便后续访问和维护。
推荐实现方式:使用字典存储
字典的键可以设为你想要的唯一变量名(如x1、x2),对应的值为用户输入:
# 获取需要输入的数量 count = int(input()) # 初始化字典存储输入 input_storage = {} for i in range(1, count + 1): var_name = f'x{i}' input_storage[var_name] = input() # 打印结果:先输出数量count(对应原代码的x),再输出所有输入 print(count, end=' ') for var in input_storage.values(): print(var, end=' ')
不推荐的实现方式:动态创建全局变量
如果一定要生成x1、x2这类独立变量,可以借助globals()函数动态修改全局命名空间,但这种方式会让代码可读性变差,还容易引发命名冲突,仅作参考:
count = int(input()) x = count # 对应原代码中x的赋值 for i in range(1, count + 1): var_name = f'x{i}' globals()[var_name] = input() # 打印x、x1、x2... print(x, end=' ') for i in range(1, count + 1): print(globals()[f'x{i}'], end=' ')
内容的提问来源于stack exchange,提问作者John Smith
相关产品推荐
相关产品推荐

