下面是我的理解,供参考:
在第一个图片中,%f 用于字符串格式化,表示输出一个浮点数,语句第二个%表示数据的来源,此种方式多用于需要以特定格式来打印数据时;
第二个图片,print打印数据,不使用%,而用逗号分隔,表示以空格间隔输出各数据项,此种方式多用于输出语句中有不同数据类型时;
至于什么时候加%,什么时候不加,取决于你使用何种类型的输出方式,然后输出方式的语法决定了加%还是不加,格式化字符串时需要加%,而逗号分隔时则不需要加。
测试如下:
参考链接:
m=12.57432
print("|%f|"%m)
print("|%8.1f|"%m)
print("|%8.2f|"%m)
print("|%-8.1f|"%m)
print("|%-8.0f|"%m)
math=input("数学成绩:")
chinese=input("语文成绩:")
english=input("英语成绩:")
math=float(math)
chinese=float(chinese)
english=float(english)
sum=math+chinese+english
print("总分:",sum,"平均:",sum/3)
意思都是以浮点数的形式展示吧
float() 函数用于将整数和字符串转换成浮点数
通过type可以查看 math变量已经变成float
math = 12
sum = float(math)
print(type(sum))
回答:
在Python中,浮点数的打印格式化使用%f,可以控制小数点后的位数。默认情况下,如果直接打印浮点数,则会显示6位小数。这是由于浮点数本身是由二进制数据构成的,而它们在转化为十进制时需要截取到某个位数,因此出现了精度问题。下面举例说明:
# 直接打印,会显示6位小数
a = 1.123456789
print(a) # 输出:1.123456789
# 使用%f格式化,可以控制小数点后的位数
print('%.3f' % a) # 输出:1.123
# 可以使用round函数来四舍五入保留小数位数
print(round(a, 3) # 输出:1.123
因此,如果需要精确控制浮点数的小数点后的位数,应该使用%f进行格式化。而在一般情况下,直接打印也是可以的,由于Python默认会显示6位小数,因此只要不需要更多位数,就不需要使用%f。