在这段python代码中需要“或默认值”是什么?

2024-05-19 05:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是代码all_笑话是一个字典,其中有一些类别映射到笑话

def select_joke(category):
    jokes = all_jokes[category or 'default']
    shuffle(jokes)
    return jokes[0]

Tags: or代码defaultreturn字典defall类别
3条回答

如果category的值不是truthy,则返回all_jokesdict中default键的值:

from random import shuffle

all_jokes = {
    'joke1': ['This is joke1'],
    'joke2': ['This is joke2'],
    'default': ['This is default joke']
}

def select_joke(category):
    jokes = all_jokes[category or 'default']
    shuffle(jokes)
    return jokes[0]

print("----------------------------------------")
print(f"input:{0} output:{select_joke(0)}")
print(f"input:{None} output:{select_joke(None)}")
print(f"input:{''} output:{select_joke('')}")
print("----------------------------------------")

输出:

----------------------------------------
input:0 output:This is default joke
input:None output:This is default joke
input: output:This is default joke
----------------------------------------

意思是,

if category is false (or empty or None) use 'default' as key.

可能不知道代码的其余部分,all_jokes是一个包含default选项的字典

与许多其他语言一样,or如果第一个元素是“truthy”,则返回第一个元素,否则返回第二个元素

在这种情况下,如果category是0,或者无,或者是空字符串,等等,我们得到all_jokes['default']。否则,我们得到all_jokes[category]

相关问题 更多 >

    热门问题