Python的字符串可以使用單引號('), 雙引號("), 三引號('''); 三引號(''')里面, 可以添加單引號和雙引號, 也可以通過轉(zhuǎn)義序列()添加;
字符串放在一起自動連接成為一個字符串;
字符串前面添加限定詞R或r, 表示是自然字符串(nature string), 可以忽略里面的格式限制;
在物理行末尾添加"", 可以連接下一個物理行; 括號, 方括號, 大括號也可以一定限度的擴充物理行;
字符串定義
- 使用單引號或雙引號
>>> 'Hello World'
'Hello World'
>>> "hello world"
'hello world'
- 單雙引號混用
>>> "Hello,'xiao Ming'"
結(jié)果:"Hello,'xiao Ming'"
>>> '"xiao Ming",ni mei er'
結(jié)果:'"xiao Ming",ni mei er'
說明:如果雙引號中間有單引號炸宵,可以作為普通字符跃惫,如果單引號中間有雙引號,亦然
- 使用三引號(單/雙)
>>> """xiaoming
xiaoli
xiaopihai"""
結(jié)果:'xiaoming\nxiaoli\nxiaopihai'
>>> '''
XIAOMING
XIAOLI
XIAOPIHAI
XIAOGHAI'''
結(jié)果:'\nXIAOMING\nXIAOLI\nXIAOPIHAI\nXIAOGHAI'
說明:1. 三單引號独榴、雙引號一般用于跨行字符串輸入月帝。2. 行末端包含在字符串中,所以顯示包含字符串\n 3.如果字符串中有單引號且無雙引號,建議使用雙引號標(biāo)志何之,可讀性變強
- 字符串轉(zhuǎn)義
>>> 'isn\'t'
結(jié)果:"isn't"
>>> "xiaoMing said \"fuck\" "
結(jié)果:'xiaoMing said "fuck" '
>>> '%%hi tom hi beibei,like:%%d %%s %%f %d'%10
結(jié)果:'%hi tom hi beibei,like:%d %s %f 10'
說明:'轉(zhuǎn)義字符',"轉(zhuǎn)義字符",%%轉(zhuǎn)義字符%
- 字符串輸出
>>> '"dosn\'t",kiss me'
'"dosn\'t",kiss me' #此處沒有轉(zhuǎn)義
>>> print('"dosn\'t",kiss me')
"dosn't",kiss me
>>> l = 'first line.\nSecond line.' #\n為換行
>>> l
結(jié)果:'first line.\nSecond line.' #為使用print()咽筋,\n包含在輸出的結(jié)果中
>>> print(l) #使用print()函數(shù)溶推,\n表示換行,輸出結(jié)果如下
結(jié)果:first line.
Second line.
>>> print("""test
first:This is first Line
-h display this line
-H not display this line
""")
test
first:This is first Line
-h display this line
-H not display this line
>>> print('''
...
...
...''')
...
...
...
>>> print("""test\ #可以使用\ 來取消跨行輸出
first:This is first Line\
-h display this line
-H not display this line
""")
結(jié)果:testfirst:This is first Line-h display this line
-H not display this line
- 禁止字符轉(zhuǎn)義
>>> print('c:\python\npython35') #這里的\n被解釋為作為換行
結(jié)果:c:\python
python35
>>> print(r'c:\python\n pyhon35') #如過不想換行奸攻,可以在第一個引號前面加r
結(jié)果:c:\python\n pyhon35
- 字符串連接應(yīng)用
>>> conf = {'host':'127.0.0.1',
... 'db':'test',
... 'user':'sb',
... 'passwd':'fuck'}
>>> ';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
結(jié)果:'passswd=fuck;db=test;user=sa;host=127.0.0.1'
說明: join() 函數(shù)的高效率(相對于循環(huán)相加而言)蒜危,使它成為最值得關(guān)注的字符串方法之一。它的功用是將可迭代的字符串序列連接成一條長字符串睹耐,其接受一個列表辐赞,然后用字符串依次連接列表中每一個元素
- 字符串連接
>>> 'hello' + ' ' + 'world' #用+號連接字符串
結(jié)果:'hello world'
>>> ('YY' * 3) + 'DDHH'
結(jié)果:'YYYYYYDDHH'
>>> 'yang' '20160122' #用空格連接字符串
結(jié)果:'yang20160122'
>>> lidefeng = 'ldf'
>>> lidefeng 'ldf'
結(jié)果:SyntaxError: invalid syntax
說明:不管字符串之間有多少空格都會被當(dāng)作一個空格來看待,盡量不要用空格連接字符串硝训,兩者都是字符串不適用與變量或表達(dá)式
- 字符串連接續(xù)
>>> content = ('hello world I come from china' #回車
'i want to jiangsu.')
>>> content
'hello world I come from chinai want to jiangsu.'
>>> content = 'welcome to school'
>>> text = (content #回車
+ 'i like u to wish'
)
>>> text
'welcome to schooli like u to wish'
>>> 5 * "hello" + "fuck" #用*號重復(fù)字符串
'hellohellohellohellohellofuck' #注意:數(shù)字必須寫在最前面响委,如需變化順序需要加上括號(),如上
>>> content = "jiangsu"
>>> content[0] = 'j' #非法賦值
Traceback (most recent call last): #不允許利用索引或切片改變獲取字符窖梁,字符串赘风,但是可以通過+號來連接獲取的字符串
File "<pyshell#119>", line 1, in <module>
content[0] = 'j'
TypeError: 'str' object does not support item assignment
>>> content[2]= 'su'
Traceback (most recent call last):
File "<pyshell#120>", line 1, in <module>
content[2]= 'su'
TypeError: 'str' object does not support item assignment
>>> "i" + content[:4] #不允許利用索引或切片改變獲取字符,字符串窄绒,但是可以通過+號來連接獲取的字符串
'ijian'
- 字符串連接(特殊場景)
>>> "beijing".join("")
結(jié)果:''
>>> "beijing".join("a")
結(jié)果:'a'
>>> list = ["i"]
>>> "e".join(list)
結(jié)果:'i'
>>> "\".jion("content") #不是每種字符串都可以用分隔符
結(jié)果:SyntaxError: invalid syntax