如何使用变量的值而不是它的标识符?

Posted

技术标签:

【中文标题】如何使用变量的值而不是它的标识符?【英文标题】:How to use variable's value instead of it's identifier? 【发布时间】:2022-01-09 22:46:19 【问题描述】:

我正在编写一个程序来从输入中输出特定水果的学名。这是我的来源:

import time;

fruits=
    "apple":"Malus domestica",
    "banana":"Musa acuminata",
    "orange":"Citrus sinensis",
    "lychee":"Litchi chinensis",
;

fruit=input("Enter a fruit(either an apple, banana, orange, or lychee):");

if fruit in fruits:
    print("Your fruit's scientific name is "+fruits.fruit+"\n");
else:
    print("Sorry, the fruit you entered was not in the database");

但是当我在控制台中输入“橙色”作为输入时,编译器会抛出错误消息:

Traceback (most recent call last):
  File "<string>", line 13, in <module>
AttributeError: 'dict' object has no attribute 'fruit'
> 

有没有什么办法可以使用“fruit”的值而不是把它用作 dict 元素?

【问题讨论】:

"有什么方法可以使用 "fruit" 的值而不是把它用作 dict 元素?" - 什么?但是您 dict,而您需要 是dict 索引。你为什么要问怎么做错事?如果你得到你想要的并检索名为orange而不是fruit的属性,你将得到一个不同的AttributeError 另外,您不需要手动添加 \n - print 自己会这样做,除非您告诉它不要这样做 - 并且 Python 在语句末尾不需要 ; . fruits.fruit 更改为 fruits[fruit] 【参考方案1】:

你应该从这里更新你的代码:

if fruit in fruits:
    print("Your fruit's scientific name is "+fruits.fruit+"\n");

到这里:

if fruit in fruits:
    print("Your fruit's scientific name is "+fruits[fruit]+"\n");

【讨论】:

【参考方案2】:

使用[]:

print(f"Your fruit's scientific name is fruits[fruit]\n")

【讨论】:

以上是关于如何使用变量的值而不是它的标识符?的主要内容,如果未能解决你的问题,请参考以下文章

在go语言中,如何在反引号中调用变量的值而不是变量名

我可以自动检测角度指令中的值而不是使用模板引用变量吗?

如何使用 displot 在 python 中制作 seaborn 图,在其中我们计算一个字段中的唯一值而不是总行数?

你可以转换 switchMap observable 的结果来获取它的值而不是 observable 本身吗?

如何使用jquery Highcharts在饼图中显示值而不是百分比

调试器如何只看到值而不是变量的内存地址