"FizzBuzz" 函数与预期输出不匹配
"FizzBuzz" function doesn't match expected output
在 Python 课程中,我被告知要创建一个 FizzBuzz 函数,该函数接收课程在线评分员提供的整数列表:
def fizzbuzz(intlist):
其他参数是:我不能修改输入列表,必须return一个既有整数又有字符串的列表,不需要调用函数。以下是我到目前为止的想法:
def fizzbuzz(intlist):
result = [ ]
i = 0
for i in range(1, 101):
if i %3 == 0 and i %5 == 0:
result.append(str('FizzBuzz'))
elif i %3 == 0:
result.append(str('Fizz'))
elif i %5 == 0:
result.append(str('Buzz'))
else:
result.append(i)
i += 1
return result
在线评分员说我的输出与数字 1-30 和 1-100 的测试用例不匹配。
谁能给我指出正确的方向?
编辑 2015 年 7 月 29 日 3:00pm 太平洋标准时间
这是我的新代码,反映了您最近的建议:
def fizzbuzz(intlist):
result = [ ]
for i in intlist:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
当我在自动评分器中输入上面的代码时,它说我还没有定义
intlist
我该如何定义
intlist
在第 3 行中,当数字列表应该由自动评分器提供时?
评分者会 运行
fizzbuzz(intlist)
验证我的函数 return 的输出是否正确。我相信我错误地假设参数
intlist
传递给 fizzbuzz 函数的应该是我在第 3 行接收和评估的整数列表的名称。
还有什么建议吗?
看看这一行:
for i in range(1, 101):
您正在对 1 到 101 之间的数字进行 fizzbuzz 练习,而不管传递给您的函数的是什么。您应该改为查看 i in intlist
。
此外,for
循环负责确保每次循环时 i
都有不同的值;您不必在循环中自己递增它或在循环之前对其进行初始化。
如果我没理解错的话,你必须循环遍历intlist的内容。您也不必初始化或递增 i,因为这已由 for 循环处理。通过将 '' 放在单词 FizzBuzz、Fizz 和 Buzz 周围,您已经将它们变成了字符串,因此您不必显式调用 str()。如果你想使用这个函数,你首先必须定义一个列表,然后在它上面调用你的函数。我怀疑正确的代码是:
def fizzbuzz(intlist):
result = [ ]
for i in intlist:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
alist = [1,2,3]
fizzbuzz(alist)
这应该有效。
def fizzbuzz(intList):
result = [ ]
for i in intList:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
我也是菜鸟,和你卡在同一个地方,终于破解了,成功了:
def fizzbuzz(intList):
intlist1=list()
intlist1=intList
for i in range(len(intlist1)):
if (intlist1[i]%3==0) and (intlist1[i]%5==0):
intlist1[i]='FizzBuzz'
elif (intlist1[i]%5==0):
intlist1[i]='Buzz'
elif (intlist1[i]%3==0):
intlist1[i]='Fizz'
i=i+1
return intlist1
def fizzbuzz(x):
小号=“”
列表=[]
对于我在 x 中:
如果我%3==0:
s="fizz"
如果我%5==0:
s=s+"Buzz"
如果 s==“”:
小号=我
slist.append(s)
小号=“”
打印列表
在 Python 课程中,我被告知要创建一个 FizzBuzz 函数,该函数接收课程在线评分员提供的整数列表:
def fizzbuzz(intlist):
其他参数是:我不能修改输入列表,必须return一个既有整数又有字符串的列表,不需要调用函数。以下是我到目前为止的想法:
def fizzbuzz(intlist):
result = [ ]
i = 0
for i in range(1, 101):
if i %3 == 0 and i %5 == 0:
result.append(str('FizzBuzz'))
elif i %3 == 0:
result.append(str('Fizz'))
elif i %5 == 0:
result.append(str('Buzz'))
else:
result.append(i)
i += 1
return result
在线评分员说我的输出与数字 1-30 和 1-100 的测试用例不匹配。
谁能给我指出正确的方向?
编辑 2015 年 7 月 29 日 3:00pm 太平洋标准时间
这是我的新代码,反映了您最近的建议:
def fizzbuzz(intlist):
result = [ ]
for i in intlist:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
当我在自动评分器中输入上面的代码时,它说我还没有定义
intlist
我该如何定义
intlist
在第 3 行中,当数字列表应该由自动评分器提供时?
评分者会 运行
fizzbuzz(intlist)
验证我的函数 return 的输出是否正确。我相信我错误地假设参数
intlist
传递给 fizzbuzz 函数的应该是我在第 3 行接收和评估的整数列表的名称。
还有什么建议吗?
看看这一行:
for i in range(1, 101):
您正在对 1 到 101 之间的数字进行 fizzbuzz 练习,而不管传递给您的函数的是什么。您应该改为查看 i in intlist
。
此外,for
循环负责确保每次循环时 i
都有不同的值;您不必在循环中自己递增它或在循环之前对其进行初始化。
如果我没理解错的话,你必须循环遍历intlist的内容。您也不必初始化或递增 i,因为这已由 for 循环处理。通过将 '' 放在单词 FizzBuzz、Fizz 和 Buzz 周围,您已经将它们变成了字符串,因此您不必显式调用 str()。如果你想使用这个函数,你首先必须定义一个列表,然后在它上面调用你的函数。我怀疑正确的代码是:
def fizzbuzz(intlist):
result = [ ]
for i in intlist:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
alist = [1,2,3]
fizzbuzz(alist)
这应该有效。
def fizzbuzz(intList):
result = [ ]
for i in intList:
if i %3 == 0 and i %5 == 0:
result.append('FizzBuzz')
elif i %3 == 0:
result.append('Fizz')
elif i %5 == 0:
result.append('Buzz')
else:
result.append(i)
return result
我也是菜鸟,和你卡在同一个地方,终于破解了,成功了:
def fizzbuzz(intList):
intlist1=list()
intlist1=intList
for i in range(len(intlist1)):
if (intlist1[i]%3==0) and (intlist1[i]%5==0):
intlist1[i]='FizzBuzz'
elif (intlist1[i]%5==0):
intlist1[i]='Buzz'
elif (intlist1[i]%3==0):
intlist1[i]='Fizz'
i=i+1
return intlist1
def fizzbuzz(x): 小号=“” 列表=[] 对于我在 x 中: 如果我%3==0: s="fizz" 如果我%5==0: s=s+"Buzz" 如果 s==“”: 小号=我 slist.append(s) 小号=“” 打印列表