Python连接变量
在Python 3中,有没有一种方法可以将字符串/变量连接到(另一个)变量? 假设我有一些具有相似名称的变量(为了简单起见,它们是变量;实际上,我想使用类和对象): 用户输入一个数字,脚本使用else if语句打印:Python连接变量,python,python-3.8,Python,Python 3.8,在Python 3中,有没有一种方法可以将字符串/变量连接到(另一个)变量? 假设我有一些具有相似名称的变量(为了简单起见,它们是变量;实际上,我想使用类和对象): 用户输入一个数字,脚本使用else if语句打印: choice = input("Please select a number (1-2) >") if choice = 1: print(var1) elif choice = 2: print(var2) 但我想做的是直接打印,
choice = input("Please select a number (1-2) >")
if choice = 1:
print(var1)
elif choice = 2:
print(var2)
但我想做的是直接打印,而不必使用else if/switch语句/字典等。我希望它打印(var+choice)
,其中choice将连接到var,因此如果choice=1,它将是打印(var1)
;如果choice=3,它将打印(var3)
(这将给出一个错误,未定义的变量)
如果没有方法可以这样做,那么打印具有相似名称的变量选项的最干净的方法是什么?在这种特殊情况下,可以使用变量列表,然后简单地打印索引变量
var = ['Hello', 'Greetings']
...
print(var[choice-1]) # since python is 0-indexed
这不是一个好的做法,但您可以使用
eval
:
print(eval('var'+str(choice)))
使用globals()
动态获取变量值
该函数返回模块范围内的变量字典,以便您可以使用
selected_greeting=globals()[f“var{choice}]
请参阅链接文档,了解您将访问哪些变量的注意事项
进一步阅读:将允许您动态获取其他对象的变量值
使用口述或列表
我们最终通过dict访问var1
和var2
,因此,如果您的程序允许,您仍然可以使用dict或列表
#一个dict示例
#注意:我在这里使用var1和var2仅用于连续性。
#如果需要,请提供更具描述性的键
问候语={
“var1”:“你好”,
“var2”:“问候”,
}
选定的问候语=问候语[f“var{choice}]
#列表示例
问候语=[“你好”,“问候语”]
selected_greeting=greetings[int(choice)-1]#转换为int,输入为字符串。还可以减去1,因为列表的索引为零
您能详细说明一下为什么不想使用dict吗?它们是为这种类型的东西构建的:使用列表:vars=[var1,var2]
然后通过用户输入进行访问:print(vars[choice-1])
。如果没有这样的变量,它将抛出一个索引器。这是否回答了您的问题?这仍然不能解释为什么你不能使用列表或听写。。。您是否知道可以执行vars=[Variable(“问候”),Variable(“Hello”)]
?列表只是其他对象的容器。。。对这些对象没有限制。它们甚至可以是更多的列表!祝你学习顺利。我建议您仔细阅读,使用以帮助您理解自己的代码,最后阅读您遇到代码问题并想在此处提问时的相关内容
print(eval('var'+str(choice)))