gpt4 book ai didi

python - 在 fizzbuzz 中,为什么使用字典的程序认为 0 是 fizzbuzz?

转载 作者:行者123 更新时间:2023-12-01 09:27:12 25 4
gpt4 key购买 nike

所以我对编码很陌生,我正在尝试所有不同的“fizzbuzzs”,并且我遇到了一种使用字典的方法。

当我运行它时,我可以轻松地通过 1 个按键更改来更改任何参数,这很好,但我不明白为什么它首先打印 fizzbuzz,然后它执行我选择的所有 fizzbuzz。

这是我正在使用的代码:

def fizzbuzz(multiples, *args):
for i in range(*args):
output = ''
for multiple in multiples:
if i % multiple == 0:
output += multiples[multiple]
if output == '':
output = i
print(output)
multiples={3:Fizz,5:Buzz}
fizzbuzz(multiples, 145)

stall = input("")

输出将是:菲兹巴兹12嘶嘶声...等等

这使得 0 看起来像是 FizzBu​​zz...

出于教育目的:为什么?

谢谢。

最佳答案

这段代码没有任何问题,除了多个拼写错误(但这些错误都会引发 NameError 而不是导致您所询问的行为)并依赖于未指定的字典顺序(所以您可以得到 BuzzFizz 而不是 FizzBu​​zz,但这也不是您要问的)。

它打印 FizzBu​​zz 的原因是您这样做:

if i % multiple == 0:
output += multiples[multiple]

由于 0 % 3 == 00 % 5 == 0,两次都是 true,所以它添加了两个单词。

这不是一个错误。数字 0 可以被 3 和 5 以及除 0 之外的所有其他整数整除。

您可能会感到困惑,因为许多 FizzBu​​zz 程序(可能还有所有在学校玩该游戏的 child )从 1 而不是 0 开始计数。但是 range(144) 从 0 开始。(它也以 143 结尾,而不是 144。)您可能想调用 fizzbuzz(multiples, 1, 145)

关于python - 在 fizzbuzz 中,为什么使用字典的程序认为 0 是 fizzbuzz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com