如何使用输入函数调用变量的值?

问题描述 投票:0回答:4

原始问题

这是使用Jupyter Notebook在Python 2中编写的。如果措词/术语是非常规的,我会提前道歉。我是初学者并且不了解大多数编码惯例。

blue = 24
red = 18

color = input('What color would you like to know the value for? \n')
print (color)

我希望能够运行代码,输入'blue'并打印24。

编辑:

理想情况下,我不想建立字典。这是我实际代码的简化。我已经定义了许多变量(一些定义需要用户输入),并且必须创建一个字典非常不方便。

这是我的(更现实的)代码:

blue = input('What is the value of blue?')
green = input('What is the value of blue?')
cyan = blue*green

color = input('What color would you like to know the value for? \n')
print (color)

我希望能够运行代码,输入青色并打印变量青色的数值。

例如:运行。输入3.输入5.输入青色。代码打印15

python python-2.7 jupyter-notebook jupyter python-2.x
4个回答
1
投票

使用raw_inputinput将覆盖好案例中的现有价值,更糟糕的情况是提高NameError。然后尝试从locals()中检索值:

blue = 24
red = 18

color = raw_input('What color would you like to know the value for? \n')
try:
   print locals()[color] 
except KeyError:
   print 'Color {} is not defined'.format(color)

请注意,这几乎是一个黑客攻击,使用这种方式,用户将能够访问定义的任何本地变量。如果您想限制用户可以访问的内容,请使用预定义的字典,如其他一些答案所示。


0
投票

把它变成一本字典

colour_dict = {'blue': 24, 'red': 18}

colour = input('what colour...')

print('your colour: ', colour, 'is number: ', colour_dict[colour])

0
投票

试试这个代码!您需要使用条件语句(if子句)来检查用户输入的值是否为blue。如果是真的那么打印blue变量值。

代码:

blue = 24
red = 18

color = input('What color would you like to know the value for? \n')
if (color==blue):
    print(blue)

输出:

What color would you like to know the value for?                                                                       
blue                                                                                                                   
24 

0
投票

我会用这本字典

#!/usr/bin/env python

options = {"blue":24, "red":18}

answer = raw_input('What color would you like to know the value for? \n')

print(options[answer])

您可以使用evallocals逐字地访问变量。但这通常被认为是一个坏主意,除非你实际上没有其他选择。我也认为没有真正原因会更复杂。

对正在发生的事情的解释:

我们创建了一个名为options的新词典,其中“blue”和“red”为键,24和18分别为其值。

现在,当我们想要我们的答案时,我们可以使用options[answer]访问它,这与options["blue"]相同,因为我将“blue”作为输入的答案。

结果:

What color would you like to know the value for? 
blue
24

笔记:

如果你正在运行python 2,请使用raw_input而不是input。这是一个非常简单的解决方案,如果用户输入“蓝色”或“红色”以外的任何内容,脚本将引发KeyError。我将从I'm getting Key error in python开始,了解如何处理它。

© www.soinside.com 2019 - 2024. All rights reserved.