例如num = 1010
,那么num
是4位数长,您可以自动创建4个变量吗?
例如:
num = 1010
len(num)
num_2 = whatever
num_3 = whatever
num_4 = whatever
num_5 = whatever
因为num
有4个数字,你添加了4个额外的变量(不管哪个名字)所以如果num
是5位数字,你有num_2 - num_6(所以它是2,3,4,5,6)等等。因此,如果有更多的数字,它会自动创建新的变量(或更少的数字,更少的变量)
因为如果用if来写它会花很长时间,当num可以是1也可以是1000(使用input())
使用字典代替多个几乎相同名称的变量
num = 1010
length = len(str(num))
res = {i+1:str(num)[i-1] for i in range(1, length+1)}
res[1] = num
这提供了一种更好、更简单的方法来访问变量
num[1]
是用来存储num
变量的原始值的,如果不需要的话可以删除它
所需的值将存储在res
字典
如果你想使用num
的名称来访问值,如num_
,你是熟悉的(我猜)然后改变res为num
num = res
访问1010
(这里是1)的第一位,如num[2]
或者你也可以使用一个简单的列表来存储它们,比如
res = [num, *[i for i in iter(str(num))]]
这里,您需要的变量值将在res
列表
或者如果你仍然想要num_
格式变量,那么
for i in range(2, len(str(num))+2):
globals()[f'num_{i}'] = str(num)[i-2]
值将被存储在像num_2
,num_3
,num_4
,…这样的变量中
一行以上相同的代码
globals().update({f'num_{i}': str(num)[i-2] for i in range(2, len(str(num))+2)})
如果它不适合你,告诉我…