`print(9)`和`print(str(9))`之间的区别

时间:2016-09-05 06:48:30

标签: python-3.x

当两个函数的输出相同时,Python中的print(9)print(str(9))之间有什么区别?

4 个答案:

答案 0 :(得分:2)

来自the documentation

  

所有非关键字参数都转换为str()

之类的字符串

答案 1 :(得分:2)

print将始终首先尝试在您提供的对象上调用__str__。在第一种情况下,int实例__str__的{​​{1}}为9

在第二种情况下,您首先在'9'上明确调用str(调用其9并生成__str__)。然后,'9'调用print' s '9',如果提供了字符串实例,则会返回它,因为它会再次生成__str__

因此,在这两种情况下,最终'9'将打印出类似的输出。

答案 2 :(得分:1)

print(str(9))
print(9)

输出:

9
9

输出没有变化。但是如果我们通过执行检查数据类型,

print(type(str(9)))
print(type(9))

然后我们得到输出,

<class 'str'> 
<class 'int'>

所以,你可以看到,类型不同但输出相同。

答案 3 :(得分:0)

简单来说:

整数是专门保存数值的变量。而字符串是一个可以容纳一系列字符(包括数字)的变量。

print(9) says it should print the NUMERICAL value 9

print(str(9)) says it should print the character 9,

因此,如果您要对两种类型进行添加,例如:

9 + 9 will always return 18

str(9) + str(9) will always return 99