猿问

当我从函数返回一个字符串时,它有逗号吗?

我写了一个函数来返回一个条件为假的字符串,但是每次它返回它时,字符串中都有逗号。我不知道为什么。


key = 0


test_dictionary = {1: 'a', 2: 'b', 3: 'c', 4: 'd'} 


def show_value(a, b):

    for item in b:

        if item == a:

            return(b[a])

    if key == 0:

        return(a, str('is not a valid key'))


狐的传说
浏览 143回答 3
3回答

暮色呼如

跑步show_value(5, test_dictionary)让我着迷(5, 'is not a valid key')。哪个没有在您的字符串中添加逗号。如果您想要一个看起来像句子的字符串,请尝试:def show_value(a, b):    for item in b:        if item == a:            return(b[a])    if key == 0:        return "{} is not a valid key".format(a)如果您想真正花哨,可以使用:key = 0test_dictionary = {1: 'a', 2: 'b', 3: 'c', 4: 'd'} def show_value(a, b):    return b.get(5, "{} is not a valid key".format(a))

守着一只汪

问题是您返回的是元组,(a, "is not a valid key")而不是字符串。假设您使用的是 Python 3.6+,您可以使用 f-string:return f'{a} is not a valid key'正如@MasonCaiby 所建议的,您可以使用get字典的方法在没有与键关联的值时返回一个值,并且还可以组合 f 字符串:return b.get(5, f"{a} is not a valid key")

收到一只叮咚

return(a, "is not a valid key")返回一个元组。相反,做return(str(a) + " is not a valid key")编辑:其他答案很有趣,我会在这里总结一下。首先,在字符串中插入变量的 Pythonic 方法是 '{} is not a valid key'.format(a).从 3.6 开始,您可以使用 "f" 字符串,它允许更清晰的插入 : f"{a} is not a valid key"。最后,您可以用属性替换您的答案dict.get(key,message_to_display_if_key_not_found),这正是您想要的。您甚至可以抛出异常消息:最终代码将是:return b.get(a, f"{a} is not a valid key")
随时随地看视频慕课网APP

相关分类

Python
我要回答