【问题标题】:Python incrementally set a variable to equal another variable [duplicate]Python增量设置一个变量等于另一个变量[重复]
【发布时间】:2021-02-26 22:54:08
【问题描述】:

我正在尝试根据我所在循环的迭代将一个变量的值设置为增量等于另一个变量的值。

我有以下代码:

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) 

然而,打印出来的值只是返回一个 NoneType 对象。我希望 Keyword1 的值根据我所在的循环迭代来取 cat_ 变量的值。

请有人帮忙解释我做错了什么并帮助我改正吗?

谢谢,

D

【问题讨论】:

  • 不要那样做。使用列表。
  • 顺便说一句,no_keywords 应该是 4
  • 使用eval(),而不是exec()
  • @Barmar “不要那样做。使用列表”和“使用 eval(),而不是 exec()”似乎是相互矛盾的建议。
  • @khelwood 第一个是推荐,第二个是如何修复他的代码。

标签: python loops iteration increment


【解决方案1】:

试试这个:

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 没有返回值,但您可以在传递给它的命令中设置变量。

【讨论】:

  • 谢谢!效果很好:)
  • 也可以使用eval()来返回表达式的值。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
相关资源
最近更新 更多