如何使用变量的值而不是它的标识符?
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")
【讨论】:
以上是关于如何使用变量的值而不是它的标识符?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 displot 在 python 中制作 seaborn 图,在其中我们计算一个字段中的唯一值而不是总行数?
你可以转换 switchMap observable 的结果来获取它的值而不是 observable 本身吗?