为什么在Python中不能像在JavaScript中那样连接字符串和数字?

通用汽车

Python的编程语言非常简洁。与JavaScript相比,您不需要很多括号,分号和var在我看来,与这种哲学总是矛盾的是,事实是无法连接字符串和数字。无需事先使用str ()或其他构造将数字转换为字符串% s% s% (Variale, variable)这种选择的理论原因是什么?

JavaScript:
console.log("I can c"+0+"ncat"+3+"nate a "+1+"ot of num"+63+"rs!")

Python:
print "I can c%incat%inate a %iot of num%irs!" %(0,3,1,63)
----------------------------------------------------------------------------
i can c0ncat3nate a 1ot of num63rs!

编辑:Ashwini建议的答案

我不知道为什么这个问题已经结束,但是Ashwini Chaudhary发布了链接,您可以在其中找到答案。因此,不是观点而是基于理论问题的事实。这是文档页面的摘录

在强类型语言中,完全不允许您执行与正在使用的数据类型不兼容的任何操作。例如,在弱类型语言中,因为可以加数字,所以通常可以做3 + 5 + 7并得到结果15。同样,您通常可以执行'Hello'+'And'+'Goodbye'并获得结果“ HelloAndGoodBye”,因为字符串支持串联。但是在强类型语言中,您无法执行“ Hello” + 5 +“ Goodbye”,因为没有定义的方式可以将字符串和数字彼此“相加”。在弱类型语言中,编译器或解释器可以执行幕后转换,以使这些类型的操作有效。例如,弱类型的语言可能会为您提供字符串“ Hello5Goodbye” 结果是“ Hello” + 5 +“再见”。强类型语言的优点是您可以相信发生的事情:如果您做错了什么,您的程序将生成一个类型错误,告诉您哪里出了问题,而您不必记住很多奥术类型-转换规则,或者尝试调试变量在您不知情的情况下被静默更改的情况

泽维尔·康贝尔

因为隐式转换是错误的主要来源

在python 2.6及更高版本中更具可读性的替代方法是

 print ("I can c{}ncat{}nate a {}ot of num{}rs!".format(0,3,1,63))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在javascript中向字符串对象添加属性?

如何在Python中连接字符串和数字?

为什么在Python 3中不能像在Python 2中那样使用__cmp__方法?

连接字符串和数字Java

为什么Go中的字符串不能为零?

为什么我不能将Java字符串值从zscript传递到ZK中的javascript?

为什么数字+字符串是JavaScript中的字符串?

为什么我不能在JavaScript中解析此json字符串?

将字符串拆分为字符和数字,并存储在地图Python中

像在MATLAB中那样在Python中连接矩阵/向量?

在JavaScript中,为什么不能修改常量字符串而可以修改常量数组

为什么不能计算字符串中的管道字符?

为什么Javascript将字符串中的数字转换为数字?

为什么python中的isallnum()对于包含数字“ 123”的字符串返回“ True”

无法在php中连接字符串和数字

为什么不能像在HTML / CSS中那样直接在Android中的按钮上添加边框半径?

为什么我不能在PHP中为类变量定义连接字符串?

为什么在python中拆分字符串后不能直接调用remove?

在Python中,为什么我可以将字符串乘以数字,但不能添加字符串和数字?

代码为什么不能正确识别字符串中的数字和/或字母?

R:如何像在Python中那样定义+符号作为连接字符串的运算符?

为什么在符合 POSIX 的 shellscript 中,对于字符串和数字比较,test 命令比 case 语句更好?

为什么我不能在子字符串中捕获一个以上的数字?

为什么我不能更改字符串中的子字符串?

为什么我们不能在python中更改字符串的特定值

我不知道为什么不能像 Solidity 那样分配字符串大小

删除字符串中字符和数字连接在一起的部分

将字符串中的字符和数字拆分为数组 Javascript

如何在python中拆分字符串中的非数字和数字