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()
返回表达式的值。