Python如何实现右对齐、每行仅打印3个值且列间隔5空格的输出
代码修改方案
核心修改点
- 补充每行输出3个值的控制逻辑,每输出3个值自动换行
- 修复原代码输入处理的安全隐患、循环范围错误问题
- 调整格式符宽度适配数值范围,保证右对齐效果
完整修改后代码
def formats(): import random lst = [] for i in range(100): lst.append(random.uniform(0, 1000)) # 生成0-1000之间的随机数 num = int(input('Enter number of values to retrieve: ')) for x in range(num): # 右对齐+列间隔5个空格,宽度设置为8适配最大的数值格式(如$1,000.00共8位) print('${:>8,.2f}'.format(lst[x]), end=' ') # 每输出3个值换行 if (x + 1) % 3 == 0: print()
效果说明
- 每个数值自动右对齐,列之间固定间隔5个空格
- 每行最多仅展示3个数值,不足3个的行正常输出不补位
- 替换
eval()为int()处理用户输入,避免恶意代码执行风险 - 修正循环范围为
range(num),输出数量和用户输入的要求完全一致
内容的提问来源于stack exchange,提问作者Richie Singh
相关产品推荐
相关产品推荐

