python 3.4 - 输入、匹配键、打印值

python 3.4 - input, match key, print value

第一次在这里提问,如有遗漏请见谅

我是一名初级程序员,我从 python 3.4.

开始

我有一个我创建的函数(如下),它在执行时运行良好,但我正在尝试压缩我的代码占用空间。

def PwrPriSel (PwrPri):
#Physical Abilities
Dismiss1 = "I'm sorry, but you are not the person I have been waiting for."
Dismiss2 = "Please answer the question"
PhyPwr = 'Strength, Flight, Speed, Invisibility, Invincibility, Shapeshift: '
Strength = "Your Strenth will be overwhelming, your resolve un-wavering. You will be a hammer made of flesh."
Flight = "You will be at home in the sky. You will feel as light as air, able to leap to enormous heights and control your descent with sheer willpower. With mastery wings will form and you will become a creature of the heavens."
Speed = "Time will be your slave. With mastery of this ability, life is controllable."
Invisibility = "Move unseen, unheard and unknown. In time, true mastery will be evident when reality forgets you are there."
Invincibility = "You will not be harmed or negatively affected by any event unless you wish to be harmed and to a specific extent."
Shapeshift = "You can change the way you look and how you sound by willing it to be. With mastery your form can transform into a desired being instead of just impersonation."
PhyPwrDict = {"Strength" : Strength, "Flight" : Flight, "Speed" : Speed, "Invisibility" : Invisibility, "Invincibility" : Invincibility, "Shapeshift" : Shapeshift}


if PwrPri == 'Strength':
  print(PwrPri)
  print(PhyPwrList[0])
elif PwrPri == 'Flight':
  print(PwrPri)
  print(PhyPwrList[1])
elif PwrPri == 'Speed':
  print(PwrPri)
  print(PhyPwrList[2])
elif PwrPri == 'Invisibility':
  print(PwrPri)
  print(PhyPwrList[3])
elif PwrPri == 'Invincibility':
  print(PwrPri)
  print(PhyPwrList[4])
elif PwrPri == 'Shapeshift':
  print(PwrPri)
  print(PhyPwrList[5])
else:
  print(Dismiss2)
  sys.exit(0)

PhyPwrDict 以前是一个列表,我会从中调用索引,但我希望我的代码更加动态。

我已经研究了大约 2 天,none 我发现的示例完全符合我的要求。

我希望将 PwrPri 输入的任何内容与我的 PhyPwrDict 字典中的所有键进行比较,当找到键匹配时,我希望将值(包含描述键的信息的变量)打印在屏幕上,所以如果说;

PwrPri = Strength 的输入,应在 PhyPwrDict 中搜索 Strength 键,并在找到时打印 Strength 变量的内容。

你所有的 if .. elif .. else 逻辑都可以替换为:

if PwrPri in PhyPwrDict:
    print(PhyPwrDict[PwrPri])
else:
    print(Dismiss2)
    sys.exit(0)

这表示,"if the PwrPri key is in the dictionary, print its corresponding value, else print Dismiss2 and exit"。