Python新手求助:输出数字每5个换行功能实现失败
问题:Python实现每5个数字输出后换行
期望输出格式:
123 199 322 521 843 1364 2207 3571 5778 9349 ...
原代码(输出为一行连续数字):
a,b=3,4 while (b<=1000000): if b>= 100 and b<=1000000: print(b, end = ' ') a,b = b,a+b
修改后代码(仍为一行输出):
while (b<=1000000): if b>= 100 and b<=1000000: print(b, end = '\n' if b % 5 == 0 else " ") a,b = b,a+b
问题原因
你用b % 5 == 0判断是否换行,这里的b是数列里的数值,不是已输出数字的个数。只有当数值本身是5的倍数时才会换行,而非每输出5个数字就换行,完全不符合需求。
解决方案
添加一个计数器变量,每输出一个符合条件的数字就让计数器加1,再通过计数器判断是否为5的倍数来决定换行。代码如下:
a, b = 3, 4 count = 0 # 初始化计数器 while b <= 1000000: if 100 <= b <= 1000000: print(b, end=' ') count += 1 # 每输出5个数字换行 if count % 5 == 0: print() a, b = b, a + b
如果想优化每行末尾多余空格的问题,可以先收集所有符合条件的数字,再按每5个一组格式化输出:
a, b = 3, 4 nums = [] while b <= 1000000: if 100 <= b <= 1000000: nums.append(str(b)) a, b = b, a + b # 每5个数字为一组输出 for i in range(0, len(nums), 5): print(' '.join(nums[i:i+5]))
这种方式输出的格式更工整,不会在每行末尾留下多余空格。
内容的提问来源于stack exchange,提问作者spiderman3323
相关产品推荐
相关产品推荐

