你好我试图根据用户输入调用一个或多个函数。这是我到目前为止所写的内容。
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))
这是我的代码我卡住了请帮忙。问题是它没有选择正确的功能
答案 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)