python - 如何删除空格以保持平衡?
问题描述
两周半前,我刚开始使用 Python 作为我的第一语言,所以请记住,我可能采取了最长的路线来创建这段代码。请记住,非常感谢您对其余代码的任何建议。
无论如何,关于我的问题:无论用户输入的 item_name 是什么,我都试图让一切都很好地排列。当然,用户输入的名称越长,它就会将行的其余部分推得越远。有没有人有任何建议可以根据 item_name 的长度删除一定数量的空格?我以前从未发布过这样的代码,所以我可能做得不对,但这是我遇到问题的特定打印部分:
for i in range(0, loop_num):
print('Item %d: %s $%.2f %d $%.2f' % (
item_counter ,
item_name_list[i] ,
item_price_list[i] ,
int(item_quantity_list[i]) ,
single_item_total[i]
))
item_counter += 1
这是上述代码之前的前半部分:
item_name_list = []
item_price_list = []
item_quantity_list = []
single_item_total = []
loop_num = int(input('Enter how many different unique items you have total \n'))
item_counter = 1
for i in range(0, loop_num):
item_name = input('Please enter the name of item %d: ' % item_counter)
item_name_list.append(item_name)
item_price = float(input('Please enter the price of item %d: ' % item_counter))
item_price_list.append(item_price)
item_quantity = float(input('Please enter the quantity of item %d: ' % item_counter))
item_quantity_list.append(item_quantity)
item_counter += 1
我不会给出最后一部分,因为那只是我打印小计、税收和总计。这是我在名称中输入 3 个具有相同字符数的项目时的输出:
收据 名称 价格 数量 合计 第 1 项:牛奶 $3.99 1 $3.99 第 2 项:鸡蛋 $2.00 4 $8.00 第 3 项:苏打水 $4.00 3 $12.00 小计 $23.99 销售税 $1.20 总计 $25.19
如果我输入任何与其他字符不同的字符,价格和数量就会被推高。如果做起来太复杂,请告诉我。我只是讨厌让他们无法排队。
解决方案
该format()
函数及其格式字符串语法是格式化字符串的一种比旧%
格式更好的方法。
在这种情况下,对齐字符可以提供帮助,并且输出代码如下所示<
:>
print('Item {}: {:<15} ${:.2f} {:>4} ${:.2f}'.format(...)
推荐阅读
- python - GEE 不将数据导入数组
- python - 附加到 pd.DataFrame,动态分配任何新列
- python - 为什么我在尝试在 Flask 中加载模型时遇到 Unpickling 错误?
- python - 如何用另一个数据框中的值替换一个数据框中的 NaN 值
- css - 自定义光标 SVG 模糊
- java - 使用 Recycler View 使 LinearLayout 可滚动
- swift - 我想在 SwiftUI 中使用 NavigationLink 移动到第一个屏幕
- flutter - 从 PopupMenuButton 打开时删除项目
- java - 如何在活动打开时重新加载一次
- javascript - 带有 Mustache 和 JS 的动态 HTML 页面构建器