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

时间:2019-03-13 11:06:57

标签: python python-2.7 jupyter-notebook jupyter python-2.x

原始问题

这是使用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)

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

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

4 个答案:

答案 0 :(得分:1)

使用raw_input。在良好情况下,input将覆盖现有值,在更坏的情况下,将提高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)

注意,这几乎是一种hack,使用这种方式,用户将能够访问任何定义的本地变量。如果您想限制用户可以访问的内容,请使用预定义的词典,如其他一些答案所建议的那样。

答案 1 :(得分:0)

使其成为字典

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

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

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

答案 2 :(得分:0)

尝试此代码! 您需要使用条件语句(if子句)来检查用户输入的值为blue。如果为true,则输出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 

答案 3 :(得分: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])

您可以使用eval或从locals直接访问变量。但这通常被认为是一个坏主意,除非您实际上别无选择。我也认为这没有任何实际原因会更加复杂。

正在发生的事情的解释:

我们创建了一个新的字典,称为options,以“ blue”和“ red”作为键,分别以24和18作为值。

现在,当我们需要答案时,可以使用options[answer]来访问它,因为我输入了“ blue”作为输入答案,所以它与options["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开始,以获取有关如何处理该问题的说明。