在 Python 中,如果我让用户输入数字 X,然后程序进入用户输入 X 值的 for 循环,有没有办法/让变量名自动递增是个坏主意?
IE:
user inputs '6'
value_1 = ...
value_2 = ...
value_3 = ...
value_4 = ...
value_5 = ...
value_6 = ...
我可以让变量名称像这样递增,以便我可以拥有用户输入的变量数量吗?还是应该使用完全不同的方法,例如将所有新值附加到列表中?
您应该将所有值附加到一个列表中,这样您以后就可以轻松地遍历这些值,并且不会用无用的变量和魔法乱扔您的命名空间。
虽然在这里使用列表或字典当然是正确的方法,但可以使用 exec() 创建命名变量。您会错过列表和字典提供的所有便捷操作(想想 len()、插入、删除、排序等),但有可能:
count = raw_input('Number of variables:')
for i in xrange(count):
exec('var_' + str(i) + ' = ' + str(i))
exec() 接受并执行包含有效 Python 表达式的字符串。所以上面的代码是动态生成和执行代码的。
也许这会帮助你。
filenamee = 'Value_'
counter1 = 1
counter2 = 2
list1 = []
list2 = range(30) #random number, given len needed
for x in list2:
counter1 = str(counter1)
full_name = (filenamee+counter1)
list1.append(full_name)
counter1 = counter2
counter2+=1
for x in list1:
print(x)
如果您要创建增量变量,这对我有用。我不知道这是否是干净的编程...... :)
小心