为什么不能通过使用“ +”在打印功能的“ str”中添加“ int”?

西格克隆
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在打印中使用int和str

为什么在打印int然后是string之后,Python为什么要添加空格?

为什么在使用指针时不能通过使用“++”来增加 int 变量的值?

为什么我不能通过此功能?C ++

为什么某些Emacs功能不能通过`Mx`使用?

为什么不能通过在React(useEffect)中使用清除功能来清除setTimeOut?

为什么在Java中我们不能通过一个扫描器对象获取用户输入的int和string?

为什么我不能通过 pygtrie 在特里添加单词?

&符号在打印功能中如何工作?

无法在打印列表中触发功能

为什么在打印int []时得到垃圾输出?

为什么我不能通过模板参数声明一种朋友功能,但是可以使用别名

Python使用str和int在列中添加前导零

为什么不能通过Convert.ToInt将Console.ReadLine转换为int

为什么不能通过使用Model类在数据库中设置特定子项的Value?

正在打印的结构中我的 int** 的垃圾输出

为什么不能通过对新列表进行排序来打印结果?

为什么完整的Arraylist不能通过第二个for循环打印?

当网站位于localhost时,为什么不能通过邮件功能发送邮件?

网格视图的值在打印功能中变为空

为什么动态添加的字段不能通过单击“删除”按钮删除?

为什么我们不能通过.net中的对象访问静态方法

为什么我不能通过PHP在准备好的查询中调用MySQL存储函数?

为什么不能通过Java中的引用来调整数组的大小?

为什么不能通过对象中定义的字符串调用设置器?

在AngularJS中,为什么不能通过简单函数访问$ scope变量?

为什么我不能通过 Javascript 在嵌套的 div 中插入 html?

为什么不能通过保存在IndexedDB中的脚本fopen()打开文件?

为什么c++地址中的向量不能通过原始指针访问