不能有新的一行在python中有两个变量使用\n

yrdbyhpb  于 2022-11-29  发布在  Python
关注(0)|答案(3)|浏览(110)

为什么我不能有一个新的行有两个变量,而我可以有一个变量和字符串?我尝试使用\n但它不工作谢谢。

a = 10
b = 2

print(int(a//b)+\n+ float(a//b))

需要输出为;

5
5.00
fzsnzjdm

fzsnzjdm1#

我个人倾向于使用Nick's answer(它是最灵活的,而且读起来很好;除此之外,它使得强制执行您所期望的两位数精度变得微不足道,其中普通的str()转换永远不会将float(5)转换为5.00),但对于简单的情况,如“必须在单独的行上打印几个不同的值”,您可以将默认分隔符从单个空格更改为换行符,并将值打印为单独的参数:

print(a//b, float(a//b), sep='\n')

其输出:

5
5.0

请注意,这里我并没有尝试连接字符串(看不到+),只是指定要打印的两个东西作为单独的位置参数,并告诉print在它们之间放置什么。
旁注:我删除了int()调用,因为当输入都是int时,您使用//,即楼层除法运算符,结果已经是int,因此调用它是多余的。如果结果不是可整除的,你将丢失楼层划分的信息,并且float的“强制转换”不能恢复它)。最有可能的是,你真正想要的是:

print(a//b, a/b, sep='\n')

在第二种情况下使用/表示“真除法”(其中,当输入为int s或float s时,结果为float,结果包括float对两个操作数相除的结果所能处理的最高精度)。对于特定的示例输入,输出不会改变,但如果输入为,比如,a = 15b = 12,你会得到一个输出:

1
1.25

使用当前的float(a//b)将产生:

1
1.0
kyvafyod

kyvafyod2#

我会使用f-string来让你的生活更轻松:

a = 10
b = 2
print(f'{int(a//b)}\n{float(a//b)}')

输出:

5
5.0

注意如果你想在float值中有更多的小数位,你可以使用格式说明符:

print(f'{int(a//b)}\n{float(a//b):.2f}')

输出:

5
5.00

注意(正如@ShadowRanger在他们的answer中指出的那样),当使用整数输入时,//返回一个整数,因此不需要使用int将其转换为一个整数。

jckbn6z7

jckbn6z73#

你必须这样做来混合不同的对象类型:

print(str(int(a//b))+'\n'+ str(float(a//b)))

相关问题