为什么我不能有一个新的行有两个变量,而我可以有一个变量和字符串?我尝试使用\n但它不工作谢谢。
a = 10 b = 2 print(int(a//b)+\n+ float(a//b))
需要输出为;
5 5.00
fzsnzjdm1#
我个人倾向于使用Nick's answer(它是最灵活的,而且读起来很好;除此之外,它使得强制执行您所期望的两位数精度变得微不足道,其中普通的str()转换永远不会将float(5)转换为5.00),但对于简单的情况,如“必须在单独的行上打印几个不同的值”,您可以将默认分隔符从单个空格更改为换行符,并将值打印为单独的参数:
str()
float(5)
5.00
print(a//b, float(a//b), sep='\n')
其输出:
5 5.0
请注意,这里我并没有尝试连接字符串(看不到+),只是指定要打印的两个东西作为单独的位置参数,并告诉print在它们之间放置什么。旁注:我删除了int()调用,因为当输入都是int时,您使用//,即楼层除法运算符,结果已经是int,因此调用它是多余的。如果结果不是可整除的,你将丢失楼层划分的信息,并且float的“强制转换”不能恢复它)。最有可能的是,你真正想要的是:
+
print
int()
int
//
float
print(a//b, a/b, sep='\n')
在第二种情况下使用/表示“真除法”(其中,当输入为int s或float s时,结果为float,结果包括float对两个操作数相除的结果所能处理的最高精度)。对于特定的示例输入,输出不会改变,但如果输入为,比如,a = 15和b = 12,你会得到一个输出:
/
a = 15
b = 12
1 1.25
使用当前的float(a//b)将产生:
float(a//b)
1 1.0
kyvafyod2#
我会使用f-string来让你的生活更轻松:
f-string
a = 10 b = 2 print(f'{int(a//b)}\n{float(a//b)}')
输出:
注意如果你想在float值中有更多的小数位,你可以使用格式说明符:
print(f'{int(a//b)}\n{float(a//b):.2f}')
注意(正如@ShadowRanger在他们的answer中指出的那样),当使用整数输入时,//返回一个整数,因此不需要使用int将其转换为一个整数。
jckbn6z73#
你必须这样做来混合不同的对象类型:
print(str(int(a//b))+'\n'+ str(float(a//b)))
3条答案
按热度按时间fzsnzjdm1#
我个人倾向于使用Nick's answer(它是最灵活的,而且读起来很好;除此之外,它使得强制执行您所期望的两位数精度变得微不足道,其中普通的
str()
转换永远不会将float(5)
转换为5.00
),但对于简单的情况,如“必须在单独的行上打印几个不同的值”,您可以将默认分隔符从单个空格更改为换行符,并将值打印为单独的参数:其输出:
请注意,这里我并没有尝试连接字符串(看不到
+
),只是指定要打印的两个东西作为单独的位置参数,并告诉print
在它们之间放置什么。旁注:我删除了
int()
调用,因为当输入都是int
时,您使用//
,即楼层除法运算符,结果已经是int
,因此调用它是多余的。如果结果不是可整除的,你将丢失楼层划分的信息,并且float
的“强制转换”不能恢复它)。最有可能的是,你真正想要的是:在第二种情况下使用
/
表示“真除法”(其中,当输入为int
s或float
s时,结果为float
,结果包括float
对两个操作数相除的结果所能处理的最高精度)。对于特定的示例输入,输出不会改变,但如果输入为,比如,a = 15
和b = 12
,你会得到一个输出:使用当前的
float(a//b)
将产生:kyvafyod2#
我会使用
f-string
来让你的生活更轻松:输出:
注意如果你想在float值中有更多的小数位,你可以使用格式说明符:
输出:
注意(正如@ShadowRanger在他们的answer中指出的那样),当使用整数输入时,
//
返回一个整数,因此不需要使用int
将其转换为一个整数。jckbn6z73#
你必须这样做来混合不同的对象类型: