example.py
dumpVar = ['a','b','c','d','e','f','g']
def examineVar():
container = input('Which var would you like to examine? ')
for i in range (len(container)):
print(container[i])
.
Python 3.5(32位)
>>> exec(open(r'c:\users\me\desktop\code\example.py').read())
>>> examineVar()
Which variable would you like to examine? _
.
这里的运行 - 我有一个名为'示例'的.py文件我从解释器运行以加载我可以使用的代码环境。这个特殊的环境包含一个单独的数组(已经填充),以及一个带有一些基本命令的函数,用于一次返回有关输入一行的信息。
我想要做的是输入我用脚本创建的变量名,并让函数句柄打印内容。
我意识到我可以轻松地>>> dumpVar
,看到数组显示在一行中 - 但是我试图弄清楚如何通过...我想元信息......通过用户输入到解释器。如果这是有道理的。
无论如何,我一直试图使用exec()
,但是我把它放在函数中的任何地方都会产生异常,并且它唯一没有产生异常的时候,它只打印了一个一次dumpVar
的字符,每次都创建一个新行(当然新行是所需的行为)。
那么,如何修改我的函数来生成变量的内容,而不是输入字符串的字符呢?
答案 0 :(得分:1)
来自OP的评论更新。他的目的是通过输入来引用变量,而他的原始标题并未明确表达。解决方案是实现一个字典,通过字符串键引用对象:
list_a = ['a', 'b', 'c', 'd', 'e', 'f']
my_variables = {'list_a' : list_a}
def examineVar():
for i in my_variables[input('>>> ')]:
print(i, end='')
print('\n')
examineVar()
输出:
python3 variable_referencing.py
>>> list_a
abcdef
使用list()
:
>>> x = 'hello'
>>> list(x)
['h', 'e', 'l', 'l', 'o']
>>>
修改功能:
def examineVar():
container = list(input('Which var would you like to examine? '))
for i in range (len(container)):
print(container[i])
此外,没有必要在可迭代(range(len(container))
中定义一个范围,这就足够了:
for i in container:
print(i)
如果您想知道项目的索引以及项目,请使用enumerate()
:
for i, v in enumerate(container):
print("Index:{} - Value:{}".format(i, v)