Python学习笔记-- 字符串和数字的连接

Python学习笔记– 字符串和数字的连接

>>> s = 'abc'
>>> print s + 1

Traceback (most recent call last):
  File "", line 1, in 
    print s + 1
TypeError: cannot concatenate 'str' and 'int' objects

上面运算中提到出现了类型错误,这里不难看出是类型转换的问题对于类似问题,有以下几种解决办法:

  • 通过str构造函数来实现

>>> s = 'abc'
>>> print s + str(1)
abc1

通过help(str),我们可以获得以下帮助信息(python2.7.9)

str(object=”) -> string

Return a nice string representation of the object.
If the argument is a string, the return value is the same object.

我们不难看出,传入数字1到str()中,会返回1的字符串表现形式,即将数字1转换为string类型。

  • 通过字符串的格式化

>>> s = 'abc'
>>> print "%s%s"%(s,1)
abc1
>>> 

这里是因为%s就是通过str()来处理对象的(详见:python中%r和%s的区别)

  • 通过print来实现

>>> s = 'abc'
>>> x = 1
>>> print x,s
1 abc
>>> print 1,s
1 abc

在print的帮助信息中有如下信息:
“print” evaluates each expression in turn and writes the resulting
object to standard output (see below). If an object is not a string,
it is first converted to a string using the rules for string
conversions.
意思就是说,当打印的对象不是string,会先进行向string类型的转换


>>> print 'abc' + 1

Traceback (most recent call last):
  File "", line 1, in 
    print 'abc' + 1
TypeError: cannot concatenate 'str' and 'int' objects
>>> 

“+”运算符有连接字符串的作用(在连接两个字符串是重载为字符串连接符),但是在连接字符串和数字时,会被认为是运算符加号,而在加法运算中,出现了类型不一致,所以报错。


引用博文
[1]:python中%r和%s的区别
http://blog.csdn.net/wusuopubupt/article/details/23678291

你可能感兴趣的:(Python,python,str,数字)