print ("hello"+"world)
要么
print ("hello"
+"world")
将给出的输出为:
你好,世界
但是,当我尝试使用'+'将变量(int)与'str'一起插入打印功能时,会出现错误。但是,当我使用','时,它被设计为可以工作。那是:
x=1
print("the value of 'x' is " + x + ".")
它显示错误
TypeError:只能将str(而不是“ int”)连接到str
但是当我使用时:
print("the value of 'x' is ",x,".")
我得到所需的输出。
我想知道为什么python是这样设计的,在这种情况下使用'+'是什么意思。谢谢。
编辑:感谢您的答复,其目的是因为在Java +中意味着可以简单地放在一起。
治疗这种操作称为“+
在print
功能”是错误的心理模型。这里有两个完全独立的操作:
print
知道它需要派生一个字符串来显示它,+
对结果的后续用法一无所知。Python中的函数(以及扩展方法和运算符)不是返回类型polymorphic,这是一种奇特的说法,即函数不知道从中期望什么输出类型。仅仅因为+
用于派生print的参数并不能告诉它字符串是期望的结果。
该操作:str + :int
没有明确定义的输出类型。什么"1" + 1
啊 难道2
,难道"11"
,是它11
还是其他什么东西?对于这两种类型没有明确的答案,因此Python不断提高TypeError
。结果是否最终使用print
是无关紧要的。
相反,print
用于将其参数的字符串表示形式写入流中。每个参数最终都必须产生一个字符串并将其写入流中。该操作print(:str, :int)
不需要将str
和连接在一起int
-它可以分别将str
和转换为立即写入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句