【问题标题】:(python) Let a string be recognised as a already defined variable(python) 让一个字符串被识别为一个已经定义的变量
【发布时间】:2021-05-26 09:49:52
【问题描述】:
x= 1

a_1_add = "message 1"
a_2_add = "message 2"

while x<3:
   y = "a_" + x + "_add"
   print(y)
   x += 1

如何让 python 让它打印“消息 1”、“消息 2”而不是“a_1_add”? 我想专门使 y 中的字符串被识别为变量。我该怎么做?

我想要一个自动从变量“a_1_add”更改为“a_2_add”等的代码,但不想手动写出来,因为差异只是中间的数字。

编辑:我知道“for循环”(感谢那些建议它的人)但是对于我的代码(不像我写的例子那么简单)我真的需要使用while循环。

提前致谢。我是python的初学者。非常感谢您的帮助。

【问题讨论】:

  • "专门让y中的字符串被识别为变量。" 不要那样做。字符串不是变量。变量名称不应包含数据。不要尝试从字符串中动态使用变量。使用容器,如列表或字典。

标签: python string variables


【解决方案1】:

既然你是初学者,我想你应该看看这样的东西:

a_1_add = "message 1"
a_2_add = "message 2"

container = [a_1_add, a_2_add]

for element in container:
    print(element)

注意,您仍然可以访问a_1_adda_2_add 这两个变量的内容,更改它们,向container 添加更多变量等等。

【讨论】:

    【解决方案2】:

    也许您可以使用for 循环遍历所有变量。

    var1 = “message 1”
    var2 = “message 2”
    var3 = “message 3”
    
    for i in [var1, var2, var3]:
        print(i)
    

    编辑:

    是的,正如@juanpa.arrivillage 所建议的那样,stringlistdictionary 等都是 Python 中的数据类型(内置)。 变量是用户定义的,只是一个代表分配给它的值的名称。

    我想我明白你的意思了:比如使用whilè loop 创建变量?如果是这样,恐怕是不可能的。也许您可以使用数组来包含所有这些值?并使用indexslicing 访问它们。

    x = 1
    all_val = []  # this is a list here
    
    while x < 3:
        all_val.append(f"a_{x}_add")
        x += 1
    
    print(all_val[0])
    print(all_val[1])
    print(all_val[1:])
    

    希望它能回答你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多