首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在这个FizzBuzz解决方案中,星星(*)在做什么?

在这个FizzBuzz解决方案中,星星(*)在做什么?
EN

Stack Overflow用户
提问于 2020-03-06 18:49:36
回答 5查看 207关注 0票数 1

学习Python编程和我正在做一些挑战。我遇到了一些我还没有学到的东西,我很好奇这段代码在做什么。

所以我的挑战被称为"FizzBuzz“挑战。说明很简单:

创建一个函数,该函数以一个数字作为参数,并返回"Fizz“、"Buzz”或"FizzBuzz“。

如果数字是3的倍数,输出应该是"Fizz“。如果给定的数字是5的倍数,则输出应该是"Buzz“。如果给定的数字是3和5的倍数,则输出应该是"FizzBuzz“。如果该数字不是3或5的倍数,则应自行输出该数字。

我编写了这段代码来解决这个问题(显然,它可能会更好):

代码语言:javascript
运行
复制
def fizz_buzz(num):
    if num % 3 == 0 and num % 5 == 0:
        return 'FizzBuzz'
    elif num % 3 == 0:
        return 'Fizz'
    elif num % 5 == 0:
        return 'Buzz'
    else:
        return str(num)

但是,一旦我提交了我的解决方案,我就能够看到最好的解决方案,即:

代码语言:javascript
运行
复制
def fizz_buzz(num):
    return "Fizz"*(num%3==0) + "Buzz"*(num%5==0) or str(num)

我的问题是*在这里做什么?有人能给我指出解决这个人代码所做的事情的文档或资源吗?我不认为它是超级可读的,但它显然是解决这个问题的最佳方法。

EN

Stack Overflow用户

发布于 2020-03-06 18:55:33

我不知道什么资源,但我可以告诉你它能做什么。短语num%3==0是布尔值,如果数字可被3整除,则为真。如果是这样,则返回1(如果为False则为0)。对于num%5==0也是如此,可被5除。然后被Fizz和/或Buzz字符串相乘,并连接在一起,其中乘以1返回字符串,0没有返回。如果这两种情况都不成立,则返回str(num)

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60569970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档