严格地说,在python中的字符串是一种对象类型,这种类型用str表示,通常单引号‘’或者是双引号“”包裹起来。
>>>"I love Python."
'I love Python.'
>>>'I LOVE PYTHON.'
'I LOVE PYTHON.'
从这两个例子中可以看出来,无论使用单引号还是双引号,结果都是一样的。
>>>250
250
>>>type(250)
<type 'int'>
>>>"250"
'250'
>>>type("250")
<type 'str'>
同样是250,一个没有放在引号里面,一个放在了引号里面,用type()函数来检验一下,发现它们居然是两种不同的对象类型,前者是int类型,后者则是str类型,即字符串类型。
>>>'What's your name?'
File "<stdin>",line 1
'What's your name?'
^
SyntaxError:invalid syntax
出现了SyntaxError(语法错误)
仔细观察,发现那句话中事实上有三个单引号,本来一对单引号之间包裹的是一个字符串,现在出现了三个(一对半)单引号。
解决方法一:双引号包裹单引号
>>>"what's your name?"
"what's your name?"
解决方法二:使用转义符
所谓转义,就是让某个符号不在表示某个含义,而是表示另外一个含义。
>>>‘what\'s your name?’
"what's your name?"
变量和字符串
变量无类型,对象有类型
>>> a = 5
>>> a
5
>>> b = "hello,world"
>>> b
'hello,world'
>>>print b
hello,world
>>> type(a)
<type ‘int'>
>>> type(b)
<type 'str'>
把a称之为数字型变量,把b叫做字符(串)型变量。这种说法,在某些语言中是成立的。某些语言,需要提前声明变量,然后变量就成为了一个筐,将值装到这个筐里面。但是,python不是
这样的,要注意区别。
拼接字符串
>>> "py" + "thon"
'python'
>>> "py" - "thon"
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
TypeError:
>>> a = 1989
>>> b = "free"
>>> print b+a
File "<stdin>",line 1,in <module>
TypeError:cannot concatenate 'str' and 'int' objects
上面是python2中的使用方式,在python3中,它变成了一个函数,print(b+a)
用+拼接起来的两个对象,必须是同一种类型。
解决方案一
>>> print b + `a`
free1989
注意,``是反引号,不是单引号,就是键盘中通常在数字1左边的那个。在python3中,已经把这种方式弃绝了。
解决方案二
>>> print b + str(a)
free1989
用str(a)实现将整数对象转换为字符串对象。
解决方案三
>>> print b + repr(a) #repr(a)与上面的类似
free1989
这里的repr()是一个函数,其实就是反引号的替代品。
Python转义字符
在字符串中,有时需要输入一些特殊的符号,但是,某些符号不能直接输出,就需要用转一符。
转义字符 描述
\ (在行尾时)续行符
\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符
\xyy 十六进制数
>>>"I love Python."
'I love Python.'
>>>'I LOVE PYTHON.'
'I LOVE PYTHON.'
从这两个例子中可以看出来,无论使用单引号还是双引号,结果都是一样的。
>>>250
250
>>>type(250)
<type 'int'>
>>>"250"
'250'
>>>type("250")
<type 'str'>
同样是250,一个没有放在引号里面,一个放在了引号里面,用type()函数来检验一下,发现它们居然是两种不同的对象类型,前者是int类型,后者则是str类型,即字符串类型。
>>>'What's your name?'
File "<stdin>",line 1
'What's your name?'
^
SyntaxError:invalid syntax
出现了SyntaxError(语法错误)
仔细观察,发现那句话中事实上有三个单引号,本来一对单引号之间包裹的是一个字符串,现在出现了三个(一对半)单引号。
解决方法一:双引号包裹单引号
>>>"what's your name?"
"what's your name?"
解决方法二:使用转义符
所谓转义,就是让某个符号不在表示某个含义,而是表示另外一个含义。
>>>‘what\'s your name?’
"what's your name?"
变量和字符串
变量无类型,对象有类型
>>> a = 5
>>> a
5
>>> b = "hello,world"
>>> b
'hello,world'
>>>print b
hello,world
>>> type(a)
<type ‘int'>
>>> type(b)
<type 'str'>
把a称之为数字型变量,把b叫做字符(串)型变量。这种说法,在某些语言中是成立的。某些语言,需要提前声明变量,然后变量就成为了一个筐,将值装到这个筐里面。但是,python不是
这样的,要注意区别。
拼接字符串
>>> "py" + "thon"
'python'
>>> "py" - "thon"
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
TypeError:
>>> a = 1989
>>> b = "free"
>>> print b+a
File "<stdin>",line 1,in <module>
TypeError:cannot concatenate 'str' and 'int' objects
上面是python2中的使用方式,在python3中,它变成了一个函数,print(b+a)
用+拼接起来的两个对象,必须是同一种类型。
解决方案一
>>> print b + `a`
free1989
注意,``是反引号,不是单引号,就是键盘中通常在数字1左边的那个。在python3中,已经把这种方式弃绝了。
解决方案二
>>> print b + str(a)
free1989
用str(a)实现将整数对象转换为字符串对象。
解决方案三
>>> print b + repr(a) #repr(a)与上面的类似
free1989
这里的repr()是一个函数,其实就是反引号的替代品。
Python转义字符
在字符串中,有时需要输入一些特殊的符号,但是,某些符号不能直接输出,就需要用转一符。
转义字符 描述
\ (在行尾时)续行符
\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符
\xyy 十六进制数