【问题标题】:Why does this print the correct result in python 2x为什么这会在 python 2x 中打印正确的结果
【发布时间】:2015-07-26 08:14:25
【问题描述】:
print 'The value of pi is ' + str() + '3.14'

这将引发 int() 和 float() 的错误,但不会与 str() 非常感谢任何帮助。

【问题讨论】:

  • 你想做什么?你觉得int()/str()/float()做/是干什么用的?
  • 您创建了一个空字符串对象。您可以连接字符串。当您使用int()float() 时,您会创建不能与字符串连接的不同类型的对象。我不确定这里的困惑在哪里。

标签: python string


【解决方案1】:

因为写str()等价于写'',即空字符串。使用+ 运算符,您可以使用它来添加数字,也可以使用它来将字符串连接在一起。当您尝试将字符串添加到非字符串时,它将不起作用。

您的代码相当于以下内容:

print 'The value of pi is ' + '' + '3.14'

这又相当于:

print 'The value of pi is 3.14'

使用int(),你的代码等价于:

print 'The value of pi is ' + 0 + '3.14'

还有float():

print 'The value of pi is ' + 0.0 + '3.14'

这些都不起作用,因为它们试图将字符串添加到数字。


您可能本来打算这样做:

print 'The value of pi is ' + str(3.14)

这会将 3.14 从浮点数(带小数的数字)转换为字符串,以便 in 可以与字符串 'The value of pi is ' 连接。

【讨论】:

  • 谢谢大卫,这是全新的,但很有趣。感谢您的帮助
【解决方案2】:

str 不能与 intfloat 对象连接

>>>int()
0
>>>float()
0.0

两者都不是str 对象。但是str() 产生一个str 对象''。所以它可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多