我学习Python已经两周了。我可以让臭名昭著的Fizzbuzz打印Fizz或buzz,但它忽略了我的“and”功能,我不明白为什么?我可以窥视已完成的解决方案,但我真的不想这样做,我所做的几乎任何研究都会潜入解决方案。我只是想知道那条线有什么问题。而不是仅仅抓取完成的代码来提交
for packers in range(1,101):
if packers % 3 == 0:
print("Fizz")
elif packers % 5 == 0:
print("buzz")
elif packers % 3 == 0 and packers % 5 == 0:
print("Fizzbuzz")
else:
print(packers)
您应该切换第二个和第三个elif块
现在,第二个elif块有点像一个全局集。它将打印任何可以被5整除的数字的嗡嗡声(即使它可以同时被5和3整除)。当这个条件变为false时,下一个条件就不可能为true(因为封隔器%5!=0,您刚刚检查了它)
相反,首先检查数字是否可被3和5整除,如果是,则打印fizzbuzz,如果不是,则继续检查数字是否仅可被5整除
问题在于:
packers%3
或packers%5
在有机会查找以下条件之前计算为True李>packers%3
和packers%5
为0李>你需要先检查两者是否都是可除的
相关问题 更多 >
编程相关推荐