Twilio 任务中的 Fizzbuzz 挑战
Fizzbuzz Challenge in Twilio quest
我最近下载了 Twilio 任务,我喜欢它!但是,我陷入了入门级 Python 挑战之一。它应该很容易解决,但不知何故我似乎无法解决这里的错误。任何人都可以查看我的代码并找到我显然找不到的明显错误吗?
import sys
inputs = sys.argv
inputs.pop(0)
for i in inputs:
print(i)
n = int(i)
for x in range(1,n+1):
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
挑战是解决 fizzbuzz 挑战,输入多个数字。错误产生:
“我们向您的脚本传递了一个可同时被 3 和 5 整除的数字,并希望您打印 fizzbuzz,但您却打印了 -3000。
所以输入是 -3000,应该通过我的第一次测试,因为它确实可以被 3 和 5 整除。我似乎无法理解为什么输入 -3000 会跳转到“else” -我的for循环的一部分。
如果输入只是一个数字,则不需要for循环。
逻辑是正确的。
一种修复方法可以是:
import sys
inputs = int(sys.argv[-1])
x=inputs
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
对于输入中的 int 列表:
import sys
inputs = [int(x) for x in sys.argv[1:]]
for x in inputs:
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
问题是要求您为每个输入遍历从 1 到 N 的每个数字,还是要求您只检查输入的单个数字?
如果它只是一个元素,那么我相信下面的代码就足够了:
import sys
inputs = sys.argv
inputs.pop(0)
for i in inputs:
# print(i)
n = int(i)
if n % 3 == 0 and n % 5 == 0:
print("fizzbuzz")
elif n % 3 == 0:
print("fizz")
elif n % 5 == 0:
print("buzz")
else:
print(n)
我最近下载了 Twilio 任务,我喜欢它!但是,我陷入了入门级 Python 挑战之一。它应该很容易解决,但不知何故我似乎无法解决这里的错误。任何人都可以查看我的代码并找到我显然找不到的明显错误吗?
import sys
inputs = sys.argv
inputs.pop(0)
for i in inputs:
print(i)
n = int(i)
for x in range(1,n+1):
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
挑战是解决 fizzbuzz 挑战,输入多个数字。错误产生: “我们向您的脚本传递了一个可同时被 3 和 5 整除的数字,并希望您打印 fizzbuzz,但您却打印了 -3000。
所以输入是 -3000,应该通过我的第一次测试,因为它确实可以被 3 和 5 整除。我似乎无法理解为什么输入 -3000 会跳转到“else” -我的for循环的一部分。
如果输入只是一个数字,则不需要for循环。 逻辑是正确的。 一种修复方法可以是:
import sys
inputs = int(sys.argv[-1])
x=inputs
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
对于输入中的 int 列表:
import sys
inputs = [int(x) for x in sys.argv[1:]]
for x in inputs:
if x % 3 == 0 and x % 5 == 0:
print("fizzbuzz")
elif x % 3 == 0:
print("fizz")
elif x % 5 == 0:
print("buzz")
else:
print(x)
问题是要求您为每个输入遍历从 1 到 N 的每个数字,还是要求您只检查输入的单个数字?
如果它只是一个元素,那么我相信下面的代码就足够了:
import sys
inputs = sys.argv
inputs.pop(0)
for i in inputs:
# print(i)
n = int(i)
if n % 3 == 0 and n % 5 == 0:
print("fizzbuzz")
elif n % 3 == 0:
print("fizz")
elif n % 5 == 0:
print("buzz")
else:
print(n)