当前位置: 首页 > 面试题库 >

串联字符串时,为什么Python不执行类型转换?

叶德本
2023-03-14
问题内容

在Python中,以下代码会产生错误:

a = 'abc'
b = 1
print(a + b)

(错误是“ TypeError:无法连接’str’和’int’对象”)。

当Python解释器遇到这些类型的串联时,为什么为什么不自动尝试使用str()函数?


问题答案:

问题在于转换是模棱两可的,因为它+意味着 字符串连接数字加法 。以下问题同样有效:

为什么Python解释器在遇到这些类型的 添加* 时不自动尝试使用 int() 函数? *

不幸的是,这正是使Javascript困扰的松散类型问题。



 类似资料:
  • 问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。

  • 问题内容: 给定python字符串列表,如何自动将其转换为正确的类型?意思是,如果我有: 我希望将其转换为列表 其中第一个元素是stuntng,第二个元素是int,第三个元素是float,第四个元素是int。 我怎样才能做到这一点?谢谢。 问题答案: import ast

  • 问题内容: 我有这个字符串: 我需要将其作为日期类型,以便我使用date函数。 有谁知道我怎么能把这个字符串转换成日期? 问题答案: 你可以这样做 例: 您可以在此处找到带有所有指令的表。 如果要增加2天,可以使用:

  • 问题 怎样将C中的字符串转换为Python字节或一个字符串对象? 解决方案 C字符串使用一对 char * 和 int 来表示, 你需要决定字符串到底是用一个原始字节字符串还是一个Unicode字符串来表示。 字节对象可以像下面这样使用 Py_BuildValue() 来构建: char *s; /* Pointer to C string data */ int len; /*

  • 问题内容: Python具有内置函数,实际上等效于: 适用于所有类型的参数(字符串除外)。它适用于数字和列表,例如: 为什么特地省去了弦乐? 我似乎还记得在Python列表中进行讨论的原因,因此可以使用一个解释或指向该解释的线程的链接。 编辑 :我知道标准方法是这样做。我的问题是为什么禁止对字符串使用sum的选项,而列表却没有禁止。 编辑2 :尽管我认为给出所有好的答案都 不需要这样做 ,但问题是

  • 问题内容: 我有以下python代码。 我得到以下日志打印输出。 如果我使用split(),btw代替split(’‘),则会得到相同的日志打印输出。 为什么split不将结果分成6个条目的列表?我想问题是涉及到http请求,因为我在gae交互式控制台中的测试获得了预期的结果。 问题答案: 不修改字符串。它返回拆分列表。如果要使用该列表,则需要使用来将其分配给某些内容。