Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python连接变量_Python_Python 3.8 - Fatal编程技术网

Python连接变量

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) 但我想做的是直接打印,

在Python 3中,有没有一种方法可以将字符串/变量连接到(另一个)变量?

假设我有一些具有相似名称的变量(为了简单起见,它们是变量;实际上,我想使用类和对象):

用户输入一个数字,脚本使用else if语句打印:

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)))