首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我正在编写一个函数,它返回FizzBuzz列表中所有数字的和。我以为它会很好,但不起作用。在Python中

FizzBuzz是一个常见的编程练习,它要求编写一个程序,打印从1到n的数字,但对于3的倍数打印“Fizz”,对于5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

如果你想要编写一个函数来计算FizzBuzz列表中所有数字的和,你需要首先生成这个列表,然后对列表中的有效数字求和(忽略"Fizz"、"Buzz"和"FizzBuzz"字符串)。

以下是一个Python函数的示例,它实现了这个功能:

代码语言:txt
复制
def fizzbuzz_sum(n):
    # 初始化总和为0
    total_sum = 0
    
    # 遍历从1到n的每个数字
    for i in range(1, n + 1):
        # 如果数字是3的倍数或5的倍数,但不是15的倍数,则将其加到总和中
        if (i % 3 == 0 or i % 5 == 0) and i % 15 != 0:
            total_sum += i
    
    # 返回总和
    return total_sum

# 测试函数
print(fizzbuzz_sum(15))  # 应该输出45,因为3+5+6+9+10=33,但是15被排除了

如果你想要的是计算从1到n的所有数字的和,但是排除"Fizz"、"Buzz"和"FizzBuzz"对应的数字,那么上面的函数就是正确的。如果你想要的是计算包括"Fizz"、"Buzz"和"FizzBuzz"在内的所有数字的和,那么你应该简单地计算从1到n的所有数字的和,如下所示:

代码语言:txt
复制
def simple_sum(n):
    return sum(range(1, n + 1))

# 测试函数
print(simple_sum(15))  # 输出120,因为1+2+3+...+15=120

如果你遇到了具体的错误或问题,请提供更多的信息,例如错误消息或函数的行为描述,这样我可以提供更具体的帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用Python进行单元测试

前言 在我的日常工作中,我是一名专业程序员。我使用c++、c#和Javascript。我是一个开发团队的一员,他们使用单元测试来验证我们的代码是否按照它应该的方式工作。...FizzBuz是一个简单的代码类型,非常适合解释和展示Python中的单元测试。 单元测试 单元测试是程序员为测试程序的一小部分而编写的自动化测试。单元测试应该运行得很快。...', result) 第一个测试用例验证数字1是否通过了FizzBuzz过滤器,它将返回字符串' 1 '。...考试的名称和结构是最重要的。 测试用例名称 测试的名称非常重要。它就像一个总结考试内容的标题。如果测试失败,你首先看到的就是它。因此,名称应该清楚地表明哪些功能不起作用。...另一个模块pytest是目前最流行的Python单元测试框架。与unittest框架相比,它更具有python风格。您可以将测试用例定义为函数,而不是从基类派生。

2.8K20

25条很棒的Python一行代码,建议收藏!

作者:小F 自从我用Python编写第一行代码以来,就被它的简单性、出色的可读性和特别流行的一行代码所吸引。 在下面,我将给大家介绍并解释一些Python一行程序。...a,b,*c = [1,2,3,4,5] print(a,b,c) > 1 2 [3,4,5] ▍3、列表中偶数的和 有很多方法可以做到这一点,但最好和最简单的方法是使用列表索引和sum函数。...有时在我们的项目中,我们需要更改列表中所有元素的数据类型。...你想到的第一个方法可能是使用循环,然后访问列表中的所有元素,然后一个接一个地更改元素的数据类型。 这个方法是老派的,在Python中我们有一个映射函数,可以为我们做这些工作。...在Python中,可以使用zip函数在一行代码中置换一个矩阵。

85010
  • 25条很棒的Python一行代码,建议收藏!

    自从我用Python编写第一行代码以来,就被它的简单性、出色的可读性和特别流行的一行代码所吸引。 在下面,我将给大家介绍并解释一些Python一行程序。...a,b,*c = [1,2,3,4,5] print(a,b,c) > 1 2 [3,4,5] ▍3、列表中偶数的和 有很多方法可以做到这一点,但最好和最简单的方法是使用列表索引和sum函数。...有时在我们的项目中,我们需要更改列表中所有元素的数据类型。...你想到的第一个方法可能是使用循环,然后访问列表中的所有元素,然后一个接一个地更改元素的数据类型。 这个方法是老派的,在Python中我们有一个映射函数,可以为我们做这些工作。...在Python中,可以使用zip函数在一行代码中置换一个矩阵。

    95430

    用Python进行单元测试

    用Python进行单元测试 Python中的单元测试,就是编写一个测试函数,在其中执行一小段应用程序,检验代码是否正确,如果有问题,会抛出异常。...比如,先向此函数提供3、6、9等这类能被3整除的数字,测试其是否返回Fizz。 按照这个思路,新建一个文件,并写入如下代码。...比如,对于上面的应用程序fizzbuzz.py,如果想测试一下,遇到不能被3整除的数字的表现,就可以在test_fizzbuzz.py的列表中增加一个数字4,然后运行pytest。...此外,还有第18行,即fizzbuzz.py的最后一行,返回去看看源程序,它的作用只是执行此脚本,也不是测试对象。 但是,报告中所提到尚未覆盖的第9行,是fizzbuzz()函数中的一行。...虽然我们测试的目标就是这个函数,看来还是有遗漏。不过,第9行是函数的最后一行,它在确定输入的数字不能被3或5整除后返回该数字。

    3.2K20

    Python 技巧十则

    但这非常低效,特别是如果列表很长的话更加明显。在Python中,字符串是不可变的,因此拼接字符串时,必须将左右字符串复制到新字符串中。 更好的方法是使用join()函数,如下所示: 2....列表推导式速度更快,因为它已针对Python解释器进行了优化,以在循环期间发现可预测的模式。...让我们解决通常称为Fizz Buzz问题的经典编码面试问题: 编写一个程序来打印列表中的数字,以“ 3”的倍数打印“fizz”而不是数字,以“ 5”的倍数打印“buzz”,并以3和5的倍数打印“fizzbuzz...Counter() 函数采用一个可迭代对象(例如列表或元组),并返回一个Counter Dictionary。字典的键将是迭代器中存在的唯一元素,每个键的值将是迭代器中该元素的计数。...从函数返回多个值 Python能够从函数调用中返回多个值,这是许多其他流行的编程语言所不具备的特性。在这种情况下,返回值应为逗号分隔的值列表,然后Python构造一个元组并将其返回给调用方。

    1.1K10

    如何在一场面试中展现你对Python的coding能力?

    选择正确的内置功能 Python有一个大型标准库,但只有一个内置函数的小型库,这些函数总是可用的,不需要导入。...它们每一个都值得我们仔细研究,但是在研究前,我还是给大家一些小的提示,尤其是在其中一些函数的情况下,可以用什么替代更好。 1....有一个名为FizzBuzz的经典编码面试问题可以通过迭代索引和值来解决。...在FizzBuzz中,你将获得一个整数列表,任务是执行以下操作: 用“fizz”替换所有可被3整除的整数 用“buzz”替换所有可被5整除的整数 将所有可被3和5整除的整数替换为“fizzbuzz” 通常...- Guido van Rossum,Python的创造者 一般使用者可能错误地认为它没有争议,但Guido有充分的理由想要从Python中删除map()和filter()。

    1.2K30

    如何在一场面试中展现你对Python的coding能力?| 技术头条

    选择正确的内置功能 Python有一个大型标准库,但只有一个内置函数的小型库,这些函数总是可用的,不需要导入。...它们每一个都值得我们仔细研究,但是在研究前,我还是给大家一些小的提示,尤其是在其中一些函数的情况下,可以用什么替代更好。 1....有一个名为FizzBuzz的经典编码面试问题可以通过迭代索引和值来解决。...在FizzBuzz中,你将获得一个整数列表,任务是执行以下操作: 用“fizz”替换所有可被3整除的整数 用“buzz”替换所有可被5整除的整数 将所有可被3和5整除的整数替换为“fizzbuzz” 通常...- Guido van Rossum,Python的创造者 一般使用者可能错误地认为它没有争议,但Guido有充分的理由想要从Python中删除map()和filter()。

    1.1K30

    如何在一场面试中展现你对Python的coding能力?

    选择正确的内置功能 Python有一个大型标准库,但只有一个内置函数的小型库,这些函数总是可用的,不需要导入。...它们每一个都值得我们仔细研究,但是在研究前,我还是给大家一些小的提示,尤其是在其中一些函数的情况下,可以用什么替代更好。 1....有一个名为FizzBuzz的经典编码面试问题可以通过迭代索引和值来解决。...在FizzBuzz中,你将获得一个整数列表,任务是执行以下操作: 用“fizz”替换所有可被3整除的整数 用“buzz”替换所有可被5整除的整数 将所有可被3和5整除的整数替换为“fizzbuzz” 通常...一个原因是Python支持递推式构造列表,它通常更容易阅读并支持与map()和filter()相同的功能。

    1.4K40

    手把手教你学会Python函数式编程

    让我们快速进入一个终端调用上面的代码: 运行将会打印出 在Python中,迭代器是一个只有\_\_iter\_\_魔术方法的对象。这意味着您可以访问对象中的位置,但不能遍历该对象。...假设我们有一个数字列表,如下所示: 我们想要对每个数字进行平方,我们可以编写如下代码: Python中函数式的函数是具有惰性的。...通常,filter需要一个函数和一个列表。它将函数应用于列表中的每一项,如果该函数返回True,则不执行任何操作。如果返回False,则从列表中删除该项。...我们想要创建一个函数,它接受2个参数,一个基数和一个指数,并返回指数幂的基数,如下所示: 现在我们想要一个专用的平方函数,使用幂函数计算出数字的平方: 这有效,但如果我们想要一个立方体功能呢?...事实上,如果你想尝试生成某种列表,那么使用列表推导看起来会更清晰,更容易。如果我们想要将列表中每个0以下的数字平方怎么办?有了lambda,map和filter你会写: 这似乎很长很复杂。

    1.1K21

    【100 种语言速成】第 1 节:Python

    Ruby 有块和对象,你基本上可以用它做任何事情(加上大量的语法糖)。...从我与编程初学者(和数据科学家)的互动来看,这些块替代品对他们来说往往是 Python 中最困难的部分,所以我认为现在 Python 甚至在简单性方面都没有获胜,即使 Python 1 是一个比 Ruby...这涵盖了块 - .map、.flat_map和.filter- 的许多用途,在某些情况下,它比 Ruby 中的块等价物更具可读性。 #!...好吧,也许这不是最易读的,但是如果您使用大量 Python,我强烈建议您进行一些列表理解练习,因为您会遇到比 FizzBu​​zz 复杂得多的列表理解。...另一个有趣的特性是装饰器。你把一个块写成一个函数,然后装饰器把它变成你真正想要的函数。这是一个简单的 fib 函数,由于记忆化,它是 O(n),即使它看起来是 O(n^2): #!

    33821

    【100 种语言速成】第 6 节:TclTk

    如果我们将语言放在类似 unix-shell 的尺度上,它会是这样的: 传统的 Unix shell - 几乎不能用于编写代码 现代的 Unix shell - 一些讨厌的控制结构,不适合真正的编程,但有些人还是强迫它...变量都只包含字符串-数字42和字符串“42”之间没有真正的区别。如果行包含任何$X,则在运行之前将其替换为变量 X 的字符串内容。TCL/TK 有点复杂,但这是一个很好的起点。...value 从函数返回 好的,看起来不错。...: 让我们回顾一下: 我们将计数器保存在全局变量中 counter 我们有程序 plus_one 并且 minus_one 递增和递减计数器,因为变量默认是本地的,我们需要明确告诉它global...但即使你真的想使用 Tk,不知何故,由于历史原因, Ruby 和 Python 等许多现代语言在其标准库中仍然包含某种 Tk 代码。

    2.6K40

    现学现用的 10 个 Python 技巧

    在Python中,字符串不可变,因此对于每一对连接而言,必须将左右字符串复制到新字符串中。...编写一个程序来打印输出列表中的数字;如果是“3”的倍数,输出“fizz”,而不是输出数字;如果是“5”的倍数,输出“buzz”;如果同时是3和5的倍数,输出“fizzbuzz”。...同样,我们可以使用itertools.permutations()以及该模块中的其他函数。 6. 使用Python集合 Python集合是容器数据类型,即列表、组集、元组和字典。...在这种情况下,返回值应是逗号分隔的值列表,然后Python构造一个元组并将其返回给调用方。...sorted()可对任何序列(列表和元组)进行排序,始终返回元素以排序的方式显示的列表。不妨看看对数字列表进行升序排序。

    93621

    命令行上的数据科学第二版 四、创建命令行工具

    命令行工具的优点是您不必记住整个一行程序,并且如果您将它包含到其他管道中,它会提高可读性。在这个意义上,你可以把命令行工具想象成类似于编程语言中的一个函数。...然而,使用编程语言的好处是代码在一个或多个文件中。这意味着您可以轻松地编辑和重用这些代码。如果代码有参数,它甚至可以被一般化,并重新应用于遵循类似模式的问题。...通过在命令中添加参数,您可以增加编程语言提供的灵活性。随后,我将演示如何从用编程语言编写的代码中创建可重用的命令行工具。...遵循 Unix 的理念,您的代码可以与其他命令行工具结合使用,这些工具可能是用完全不同的语言编写的。在这一章中,我将重点介绍三种编程语言:Bash、Python 和 R。...它通过遍历存储在名为PATH的环境变量中的目录列表来实现这一点。

    2.3K40

    测试驱动开发 Test-Driven Development

    Hi,我是Bruski。开头的段子纯属瞎编,但其中描述的场景:代码不按预期执行、协作的接口不可靠等等,在我们日常工作中其实挺常见的。...为了避免在自己这儿失败,我们想了一个作弊的法子:最好能提前把整个列表打印出来,这样就知道到我这儿的时候该说什么了。...那我们赶紧定义函数: function fizzbuzz(num) { return '1'; } module.exports = fizzbuzz; 有人会说,函数体返回常量,你在骗自己吗?...这时候我们知道第一条需求已经被解决,无情划掉它: 3的倍数替换成"Fizz" 5的倍数替换成“Buzz” 3和5的公倍数(或者15的倍数)替换成“FizzBuzz” 其他数字则转换为字符串 那就写下第二条测试用例...有了自动化测试做保障,测试通过,我就敢说在我所预见的情况中,他会一直通过,除非,除非产品经理的需求又变了... ? 总结一下,在做FizzBuzz题目的过程中,用TDD的节奏开发流程如下图: ?

    1.6K10

    【100 种语言速成】第 3 节:CSS

    它的建议是: 写更多关于 Python 的剧集 按字母顺序从 C 到 Rust,然后在本系列的其余部分继续介绍 Rust 实际上写了很多语言但有很多重复 HTML 好的,所以也许人工智能不会很快取代我们...斐波那契数列 现在我们遇到了一个非常意想不到的问题: CSS 有字符串和数字,没有办法将一个转换为另一个!...所有计算只能对数字进行 所有content显示必须是字符串 counter(…)返回一个字符串 counter只能设置为一个常数整数,或按一个常数整数递增,而不是计算出来的 完全莫名其妙。...我一生中从未见过无法打印数字的语言,但这就是我们到达这里的方式。 好吧,让我们忽略所有这些,只制作一系列斐波那契数字大小的条形图。 我们需要使用 CSS 变量而不是 CSS 数字进行计算。...有可能这些限制可以避免,我们很可能会获得 CSS 功能,让我们以更好的方式对其进行编码(很可能是数字到字符串的转换)。 即使有这些限制,我认为这仍然是一个很好的结果。 <!

    37421

    从0开始,基于Python探究深度学习神经网络

    这在一个方向上是正确的——我们所有的向量、矩阵和高维类似物都是列表。在另一个方向当然不是真的——大多数Python列表在我们看来不是n维数组。...损失和优化 之前,我们为我们的模型编写了单个损失函数和梯度函数。...但是,如果你给slice[:]赋值,它实际上会更改列表中的值。 下面是一个简单的示例来演示: 如果你对Python缺乏经验,这种行为可能令人惊讶,所以思考一下,自己尝试例子,直到弄懂为止。...softmax和交叉熵(cross-entropy) 我们在前一节中使用的神经网络以sigmoid层结束,这意味着它的输出是一个在0到1之间的数字向量。...它很好,但它涉及到相当多的数学知识。 · 弗朗索瓦·乔莱特的Python深度学习(Manning)是一个伟大的介绍Keras库,之后我们的深度学习库有点模式化了(基本都吸收了Keras的风格)。

    42020

    26 TIPS IN PYTHON

    无论你有什么问题,都要问它,它会尽最大努力回答你的问题 ? 但是请注意——它从StackOverflow的置顶答案中抓取代码。因此可能不总是提供最有用的信息... ?...你也可以用它来编写自我记录的代码。 Jedi Jedi库是一个自动补全和代码分析库。它使编写代码更快、更有成效。 除非你正在开发自己的IDE,否则你可能会对使用Jedi作为编辑器插件最感兴趣。...当您想要编写能够处理事先未定义的命名参数的函数时,这很有用。 List comprehensions 关于Python编程,我最喜欢的事情之一是它的列表生成。...它返回一个map对象,该对象可以转换为一些可迭代的对象,如列表或元组。 newspaper3k 如果你还没有见过它,那么准备好让Python的newspaper3k模块震撼你。...在命令行中: ? 现在,你可以在同一台机器上分别存在Python的独立版本和安装环境。 wikipedia 维基百科有一个很好的API,允许用户编程访问无与伦比的完全免费的知识和信息。

    1.5K30

    一份超级实用的 Python ”技巧“清单

    在这个过程中,我学会了一些有用的技巧和心得。 在这里,我尝试以A~Z顺序共享其中一些。 大多数这些“技巧”是我在日常工作中使用或偶然发现的事情。一些是我在浏览Python标准库文档时发现的。...另外一些是通过PyPi搜索到的。 但是,应该归功于它 - 我在awesome-python.com上发现了其中的四个或五个。这是数百个有趣的Python工具和模块的精选列表。这是值得浏览的灵感!...受欢迎的一个后果是一直有新的版本在开发中。...您也可以使用它来编写自我记录代码。 Jedi Jedi库是一个代码辅助和代码分析的库。它使编写代码更快,更高效。 除非您正在开发自己的IDE,否则您可能最感兴趣的是将Jedi用作编辑器插件。...有没有想过为什么Python允许你使用+运算符来添加数字以及连接字符串?那是运算符重载在起作用。 您可以按照自己的特定方式定义使用Python标准运算符符号的对象。

    93120
    领券