当前位置: 代码迷 >> python >> Python以'%x.xf'%格式使用字符串
  详细解决方案

Python以'%x.xf'%格式使用字符串

热度:104   发布时间:2023-06-20 19:24:09.0

我正在开发一个程序,并且写了我要实现的目标的简化版本。 我想在左侧排列美元符号,同时仍然保持小数在右侧排列。 到目前为止,这是我的代码-

money = float(input("Enter  amount: "))
random = float(input("Enter a random number"))
print()

print("Random number: ", '%12.0f' % random) #I just want this to line up
print("Money each month: ", '%12.2f' % ((money) / 12.0))
print("Total money: ", '%17.2f' % money)`

输出排列成一行,使小数点都排成一行,而随机数恰好在小数点前。 问题是,当我尝试在equation( '%12.2f' % "$", )添加美元符号时equation( '%12.2f' % "$", )它说它不兼容,因为格式不适用于字符串。.是否有其他格式我应该使用的选项,还是有其他安排方式? 任何帮助,将不胜感激。 我今天才在这里创建一个帐户,而我仅编程了大约几个星期,如果编写得不好,请您谅解。

您可以采取一些措施来改善这一点:

  1. 字符串格式化方法不需要将格式化字符串与周围的文本分开。 使用它们的“正确”方法是将格式代码嵌入更长的字符串中,然后将值附加在末尾。

  2. 您使用的是较旧的“ printf”样式格式,但将较新的str.format()方法用于新代码。

  3. 如果您想将货币符号放置在您的数字附近,而且还要在其左侧填充一定的宽度,则需要分两个步骤进行操作(首先用货币符号格式化数字,然后填充到左),如在 。

考虑到这一点,下面的一些代码可以完成这项工作:

money = 12323.45
random = 2278

# format with decimals and dollar sign (variable width)
money_formatted = '${:.2f}'.format(money)
monthly_money_formatted = '${:.2f}'.format(money/12.0)

print()
print("Random number:    {:9.0f}".format(random))
# pad to 12 characters if needed
print("Money each month: {:>12}".format(monthly_money_formatted))
print("Total money:      {:>12}".format(money_formatted))

# output:
# Random number:         2278
# Money each month:     $1026.95
# Total money:         $12323.45

这个

money = float(input("Enter  amount: "))
random = float(input("Enter a random number"))
print()

randomFormatted = f"{random:.0f}"
money12Formatted = f"{(money/12.0):.2f}"
moneyFormatted = f"{money:.2f}"
print(f"Random number:{' ':3}{randomFormatted.rjust(6)}")
print(f"Money each month:{' ':2}${money12Formatted.rjust(6)}")
print(f"Total money:{' ':7}${moneyFormatted.rjust(6)}")

给出输出:

Random number:       32
Money each month:  $  4.17
Total money:       $ 50.00

我不知道如何将数字格式嵌套在与字符串填充相同的语句中。