Python增量地将一个变量设置为等于另一个变量
我试图根据循环的迭代,将一个变量的值设置为增量等于另一个变量的值 我有以下代码:Python增量地将一个变量设置为等于另一个变量,python,loops,iteration,increment,Python,Loops,Iteration,Increment,我试图根据循环的迭代,将一个变量的值设置为增量等于另一个变量的值 我有以下代码: no_keywords=3 cat_0='Alpha' cat_1='Bravo' cat_2='Charlie' cat_3='Delta' for _ in range(no_keywords): keyword1 = exec(f'cat_{_}') print(keyword1) 但是,打印的值只返回一个非类型对象。我希望关键字1的值根据我所在循环的迭代采用cat_uu变量的值 请
no_keywords=3
cat_0='Alpha'
cat_1='Bravo'
cat_2='Charlie'
cat_3='Delta'
for _ in range(no_keywords):
keyword1 = exec(f'cat_{_}')
print(keyword1)
但是,打印的值只返回一个非类型对象。我希望关键字1的值根据我所在循环的迭代采用cat_uu变量的值
请有人帮我解释一下我做错了什么并帮我背诵一下好吗
谢谢
试试这个:
no_keywords = 3
cat_0 = 'Alpha'
cat_1 = 'Bravo'
cat_2 = 'Charlie'
cat_3 = 'Delta'
for _ in range(no_keywords):
keyword1 = None
exec(f'keyword1 = cat_{_}')
print(keyword1)
似乎
exec
不返回值,但您可以在传递给它的命令中设置变量。不要这样做。使用列表。顺便说一句,no_关键字
应该是4
。使用eval()
,而不是exec()
@Barmar“不要这样做。使用列表”和“使用eval(),而不是exec()”似乎是相互矛盾的建议。@khelwood第一条是建议,第二条是如何修复他的代码。谢谢!这非常有效:)您还可以使用eval()
返回表达式的值。