gpt4 book ai didi

python - 如果事先输入以 5 结尾,则输出将打印在同一行。

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:04 24 4
gpt4 key购买 nike

所以我一直在做一些代码评估挑战,我想做一个我期望的相对简单的挑战 - fizzbuzz。我很确定我可以正常工作。它从输入中获取一行,第一个数字嘶嘶声,第二个嗡嗡声和第三个数字也进行计数。代码是:

import sys


def newList(countLen):
myList = []
for i in range(0, countLen):
myList.append(i + 1)
return myList


def fizzbuzz(z, countLen, myList):
first = int(z[0])
second = int(z[1])
for i in range(0, countLen):
if int(myList[i]) % first == 0 and int(myList[i]) % second == 0:
if i == countLen - 1:
print "FB"
else:
print "FB",
elif int(myList[i]) % first == 0:
if i == countLen - 1:
print "F"
else:
print "F",
elif int(myList[i]) % second == 0:
if i == countLen - 1:
print "B"
else:
print "B",
else:
print myList[i],


with open("input.txt", "r") as f:
for line in f:
group = list(line.split())
count = int(group[-1])
numList = newList(count)
fizzbuzz(group, count, numList)

尽管这段代码不太优雅,但我确信它可以工作,如果我的输入是

2 12 22
2 18 30
2 7 25

我的输出是

1 F 3 F 5 F 7 F 9 F 11 FB 13 F 15 F 17 F 19 F 21 F
1 F 3 F 5 F 7 F 9 F 11 F 13 F 15 F 17 FB 19 F 21 F 23 F 25 F 27 F 29 F
1 F 3 F 5 F B F 9 F 11 F 13 FB 15 F 17 F 19 F B F 23 F 25

末尾没有空格,就像要求的那样。但是,每次我提交时,代码都会失败或部分成功。我认为这可能是因为如果我交换最后 2 个输入,输出看起来像

1 F 3 F 5 F 7 F 9 F 11 FB 13 F 15 F 17 F 19 F 21 F
1 F 3 F 5 F B F 9 F 11 F 13 FB 15 F 17 F 19 F B F 23 F 25 1 F 3 F 5 F 7 F 9 F 11 F 13 F 15 F 17 FB 19 F 21 F 23 F 25 F 27 F 29 F

我注意到,当要计数的数字也以 5(即 45)结尾的输入结束时,有时会发生这种情况。我尝试在打印时添加新行,但问题仍然出现。任何将所有内容打印在新行上的帮助都会有很大帮助。(如果有影响的话,我正在 pycharm 控制台中运行代码)

最佳答案

您的 else 中缺少最终条件语句
改变:

else:
print myList[i],

成为:

else:
if i == countLen - 1:
print myList[i]
else:
print myList[i],

关于python - 如果事先输入以 5 结尾,则输出将打印在同一行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251163/

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