根据用户输入

时间:2018-01-04 19:19:39

标签: python function keyword

你好我试图根据用户输入调用一个或多个函数。这是我到目前为止所写的内容。

a = 0
b = 1
c = 2
def keyword(a):
  print("what is the boss")
def keyword(b):
  print("who is the boss")
def keyword(c):
  print("where is the boss")


key_words=["what","who","where","when","why"]
x= input("ask.. ").split()
for a in x:
   if str(a) in key_words:
      keyword(key_words.index(a))

这是我的代码我卡住了请帮忙。问题是它没有选择正确的功能

3 个答案:

答案 0 :(得分:3)

您只能拥有一个名称相同的函数(变量)。对于您的示例,请使用词典:

keywords = {
    "what": lambda: print("what is the boss"),
    "who": lambda: print("who is the boss"),
    "where": lambda: print("where is the boss"),
}

words = input("ask.. ").split()
for word in words:
   if word in keywords:
      keywords[word]()

答案 1 :(得分:0)

一般来说,函数根本不起作用(有一些例外情况,但与您的案例无关)。

将实现您的愿望的是一个函数,该函数根据传递给它的参数打印结果。

像这样:

def keyword(a):
    if a == 0:
        print("what is the boss")
    elif a == 1:
        print("who is the boss")
    elif a == 2:
        print("where is the boss") 

除了您根本不需要设置a,b,c变量之外,其余代码可以相同。

答案 2 :(得分:0)

正如安德鲁已经指出的那样,你的功能是覆盖了之前的功能。这可以做你想要输出的内容,但也许不是你想要学习的内容。

def keyword(word):
  print(word + " is the boss")

#key_words=["what","who","where"]
x= input("ask.. ").split()
for a in x:
    if str(a) in key_words:
        keyword(a)