我在Windows上使用Python 3.7.1。 当我使用%格式打印float变量时。仅打印自然部分。 这是一个示例:
result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %d letter(s) per words." % result_2
print(result_2)
print(statement_2a)
这将产生以下结果:
4.523529411764706
Your text contains an average length of 4 letter(s) per words.
但是我真正想要的是:
Your text contains an average length of 4.5235 letter(s) per words.
谢谢!
答案 0 :(得分:2)
当您尝试打印浮点数时,请使用%f代替%d。 此代码会将数字打印到小数点后4位:
result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %.4f letter(s) per words." % result_2
print(result_2)
print(statement_2a)
答案 1 :(得分:0)
比%
格式更好的选择是使用.format
。
result_2 = 4.523529411764706
print(result_2)
print("Your text contains an average length of {} letter(s) per words.".format(result_2))
对于四舍五入,请使用round
result_2 = 4.523529411764706
print(result_2)
print("Your text contains an average length of {} letter(s) per words.".format(round(result_2,4)))
但是,如果您对%
格式感到满意,则可以使用%s
result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %s letter(s) per words." % result_2
print(result_2)
print(statement_2a)
要舍入到4位数字,请使用%1.4f
result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %1.4f letter(s) per words." % result_2
print(result_2)
print(statement_2a)
答案 2 :(得分:0)
您正在使用“旧式”格式,并使用%d
作为占位符。这会将您的数字表示为不含小数的十进制数字。如果要显示浮点数,则占位符就是%f
。
如果要使用变量的字符串表示形式,也可以始终仅使用%s
。但是,由于您使用的是python 3.7,因此还有一些更现代的方法。
"%s" % var
format()
进行“新型”格式化:"{}".format(var)
(有关详细信息,请阅读python格式化程序)format()
的字符串插值的语法糖。您以f
为前缀,并将变量放在字符串文字本身中:f"{var}"
答案 3 :(得分:0)
有几种方法可以评估表达式并将其打印为python中的字符串。
已经有了一些好的答案,但是这里有一些明确的示例和文档链接。
格式化的字符串文字(f字符串)
f-strings允许您输入在运行时求值的表达式。在f字符串中,表达式用大括号括起来。
例如:
x = 42.222222222
print(f'My value is: {x}')
打印My value is: 42.222222222
。
并指定格式:
x = 42.222222222
print(f'My value is: {x:.2f}')
打印My value is: 42.22
。
Str格式化方法
字符串具有内置的.format()
方法,您可以在其中使用大括号指定替换字段。
例如:
x = 42.222222222
print('My value is: {}'.format(x))
打印My value is: 42.222222222
。
并使用字符串格式:
x = 42.222222222
print('My value is: {:.2f}'.format(x))
打印My value is: 42.22
。
字符串格式运算符
例如:
x = 42.222222222
print('My value is: %' % x)
打印My value is: 42.222222222
。
并使用字符串格式:
x = 42.222222222
print('My value is: %.2f' % x)
打印My value is: 42.22
。
有关不同方法的一些定性描述,请参见@Felk答案。