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 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] 删除。
我来说两句