python中FizzBu​​zz测试的正确输出是什么?

时间:2016-11-04 16:09:42

标签: python fizzbuzz

我最近开始使用python,昨天在课堂上我发现了FizzBu​​zz测试。我自然而然地接受了面前的挑战并想出了这个:

count = 0

while count <= 100:
    if (count % 3) == 0:
     print "Fizz"
     count = count + 1

    elif (count % 5) == 0:
        print "Buzz"
        count = count + 1

    elif (count % 5) and (count % 3):
        print "FizzBuzz"
        count = count + 1

    else:
        print count
        count = count + 1

它仅输出数字 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂鸣器 FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz FizzBu​​zz 嘶 FizzBu​​zz 蜂鸣器 嘶 FizzBu​​zz FizzBu​​zz 嘶 蜂音

我要问的是1:这是正确的输出吗?2:我怎样才能清理程序,我是BEGGING指针。 谢谢,           启

2 个答案:

答案 0 :(得分:2)

考虑这些陈述发生的顺序,

elif (count % 5) and (count % 3):

这行代码永远不会执行,因为

if (count % 3) == 0:

elif (count % 5) == 0:
如果这些条件为真,

将首先执行。在这 如果你想检查这些条件的两个是否属实, 只有这样你才能检查单个条件是否为真。

此外,代码行

count = count + 1

出现在代码的每个分支中,考虑将其置于某处 它每次都会被执行。

但是我会选择使用for循环而不是while循环,

for x in range(100):

这消除了额外计数变量的需要。

需要注意的另一件事是

elif (count % 5) and (count % 3):

在这里,您没有检查数字%5是否= = 0,您只是检查(计数%5)。所以表达式&#34; if(count%5)&#34;如果计数可以被5整除(检查真值测试),则结果为True。对于省略==比较器

的其他地方也是如此

这是一个类似于你的方法的例子。

for count in range(1, 101):
    if count % 5 == 0 and count % 3 == 0:
        print "FizzBuzz"
    elif count % 5 == 0:
        print "Buzz"
    elif count % 3 == 0 and count % 5 == 0:
        print "Fizz"
    else:
        print count

需要注意的事项:

  • 在检查个别情况之前检查两个条件
  • for循环而不是while循环(个人偏好)
  • 检查== 0

答案 1 :(得分:0)

我认为逻辑是检查是否

  1. 一个数字可被3和5整除。
  2. 一个数字可被3整除,但不能被5整除。
  3. 一个数字可被5整除,但不能被3整除。
  4. 一个数字不能被5或3整除。

声明变量。我添加了额外的变量,以确保一切顺利进行。您可以根据需要跳过变量后跟“ divisible_by”。

{
    "inputs": "@json(variables('CurrentTags').CurrentEastUSHDInsightsObject)"
}

写循环和条件。

myArray = []
divisible_by_both = []
divisible_by_three = []
divisible_by_five = []
digits = range(1,101)

打印结果,或打印另一个数组以确保总长度为100。

for x in digits:
  if (x % 3 == 0) and (x % 5 == 0):
    myArray.append("Fizzbuzz")
    divisible_by_both.append(x)
  if (x % 3 == 0) and not (x % 5 == 0):
    divisible_by_three.append(x)
    myArray.append("Fizz")
  if not (x % 3 == 0) and (x % 5 == 0):
    divisible_by_five.append(x)
    myArray.append("Buzz")
  if not (x % 3 == 0) and not (x % 5 == 0):
    myArray.append(x)

这是输出。您可以根据需要加入数组并将其输出为字符串。 [1,2,'Fizz',4,'Buzz','Fizz',7,8,'Fizz','Buzz',11,'Fizz',13,14,'Fizzbuzz',16,17,' Fizz',19,'Buzz','Fizz',22、23,'Fizz','Buzz',26,'Fizz',28、29,'Fizzbuzz',31、32,'Fizz',34,' Buzz”,“ Fizz”,37、38,“ Fizz”,“ Buzz”,41,“ Fizz”,43、44,“ Fizzbuzz”,46、47,“ Fizz”,49,“ Buzz”,“ Fizz” ,52,53,'Fizz','Buzz',56,'Fizz',58,59,'Fizzbuzz',61,62,'Fizz',64,'Buzz','Fizz',67,68,' Fizz”,“ Buzz”,71,“ Fizz”,73、74,“ Fizzbuzz”,76、77,“ Fizz”,79,“ Buzz”,“ Fizz”,82、83,“ Fizz”,“ Buzz” ,86,'Fizz',88、89,'Fizzbuzz',91、92,'Fizz',94,'Buzz','Fizz',97、98,'Fizz','Buzz']