Python 我在函数中定义了一个变量,但它在输出中不起作用。附上代码

Python 我在函数中定义了一个变量,但它在输出中不起作用。附上代码,python,python-3.x,function,variables,Python,Python 3.x,Function,Variables,我定义了一个函数,其中用户输入的语句,从如何、什么、什么时候应该在输出语句的末尾自动获得“?”开始。而其余的应该是“和” 现在我的问题在if语句的第四行。在这里,如果我将其替换为短语,则得到正确的结果,否则第5行在输出中不起作用,结果将默认为用户输入末尾的“.” 我已经调用并定义了变量caps中的“短语”caps=phrase.capitalize()。如果我按原样运行程序,那么所有的输出都不考虑如何,什么,当它以句子结尾给出输出 我的错误程序: def sent(phrase): a

我定义了一个函数,其中用户输入的语句,从如何、什么、什么时候应该在输出语句的末尾自动获得“?”开始。而其余的应该是“和”

现在我的问题在if语句的第四行。在这里,如果我将其替换为短语,则得到正确的结果,否则第5行在输出中不起作用,结果将默认为用户输入末尾的“.”

我已经调用并定义了变量caps中的“短语”
caps=phrase.capitalize()。如果我按原样运行程序,那么所有的输出都不考虑如何,什么,当它以句子结尾给出输出

我的错误程序:

def sent(phrase):
    a = ("how", "what", "when")
    caps = phrase.capitalize()
    if caps.startswith(a):
        return "{}?".format(caps)
    else:
        return "{}.".format(caps)

userinput = input("Say something: ")
print(sent(userinput))
所需输出的正确代码如下:

def sent(phrase):
    a = ("how", "what", "when")
    caps = phrase.capitalize()
    if phrase.startswith(a):
        return "{}?".format(caps)
    else:
        return "{}.".format(caps)

userinput = input("Say something: ")
print(sent(userinput))

这是因为
startswith()
区分大小写。您正在检查文本是否以单词
how
开头,但大写后的文本以
how
开头,而不是
how
开头。所以你能做的就是先检查,然后大写。

好好想想,在你把“how now brown cow”大写之后,它是以“how”开头的吗?