如何使用输入函数调用变量的值?
How do I use the input function to call the value of a variable?
原题
这是使用 Jupyter Notebook 在 Python 2 中编写的。如果 phrasing/terms 是非常规的,我提前道歉。我是初学者,不了解大多数编码约定。
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
将其设为字典
colour_dict = {'blue': 24, 'red': 18}
colour = input('what colour...')
print('your colour: ', colour, 'is number: ', colour_dict[colour])
试试这个代码!
您需要使用条件语句(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
使用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,使用这种方式用户将能够访问 any 定义的局部变量。如果您想限制用户可以访问的内容,请像其他一些答案所建议的那样使用预定义的字典。
我会为此使用字典
#!/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]
访问它,这与 options["blue"]
相同,因为我将 "blue" 作为输入的答案。
结果:
What color would you like to know the value for?
blue
24
备注:
如果您 运行 python 2 使用 raw_input
而不是 input
。
这是一个非常简单的解决方案,如果用户输入 "blue" 或 "red" 以外的任何内容,脚本将引发 KeyError
。我将从 I'm getting Key error in python 开始,以获取有关如何处理该问题的注释。
原题
这是使用 Jupyter Notebook 在 Python 2 中编写的。如果 phrasing/terms 是非常规的,我提前道歉。我是初学者,不了解大多数编码约定。
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
将其设为字典
colour_dict = {'blue': 24, 'red': 18}
colour = input('what colour...')
print('your colour: ', colour, 'is number: ', colour_dict[colour])
试试这个代码!
您需要使用条件语句(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
使用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,使用这种方式用户将能够访问 any 定义的局部变量。如果您想限制用户可以访问的内容,请像其他一些答案所建议的那样使用预定义的字典。
我会为此使用字典
#!/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]
访问它,这与 options["blue"]
相同,因为我将 "blue" 作为输入的答案。
结果:
What color would you like to know the value for?
blue
24
备注:
如果您 运行 python 2 使用 raw_input
而不是 input
。
这是一个非常简单的解决方案,如果用户输入 "blue" 或 "red" 以外的任何内容,脚本将引发 KeyError
。我将从 I'm getting Key error in python 开始,以获取有关如何处理该问题的注释。