Python基础笔记系列七:字符串定义和访问
  本系列教程供个⼈学习笔记使⽤,如果您要浏览可能需要其它编程语⾔基础(如C语⾔),why?因为我写得烂啊,只有我⾃⼰看得懂!!
字符串定义和访问 
1.字符串基础
  a.字符串可以⽤单引号、双引号、三引号(单、双)定义,其中,单引号和双引号定义的字符串没啥区别,三引号有点区别。下⾯通
过例⼦来看。
例⼦:
1 str1= 'hello'
2 str2= "hello"
3 str3= 'hello3 hello'
4print str1,str2,str3
5#以上三种没有区别
6
7print type(str1),type(str2),type(str3)
8 str4= 'hello "dear"'
9print str4
10 str5= "hello \"dear\" "
11print str5
12 str6= 'hello \'dear\''
13print str6
输出:
1 hello  hello    hello3 hello
2 <type 'str'> <type 'str'> <type 'str'>
3 hello "dear"
4 hello "dear"
5 hello 'dear'
  从代码中可以看出,⼀对单引号,⼀对双引号没有区别,都是str类型。但是不能有双引号或单引号出现两对进⾏嵌套,如例⼦中的str5,str6这⼏个字符串,如果要这样使⽤就要加⼀个斜杠当做转义字符,因为Python它会从左到右成对的引号,如果写成
str5="hello "dear""这样⼦的话,就会不到合适的匹配⽅法,报错。
  b.下⾯这种情况也⽐较特殊:使⽤三对单引号
例⼦:
1 str7 = '''"hello 'dear'"'''#三对单引号
2# str7 = '''"hello \'dear\'"'''  #这⾥加上转义字符也可以
3print str7
4 str8 = '''hello 'hey' "Tom"'''
5print str8
输出:
1"hello 'dear'"
2 hello 'hey'"Tom"
  可以发现,⼀个字符串的最外层是三个单引号,则它不会关⼼引号⾥⾯的单引号和双引号,直接输出⾥⾯的内容。所以如果需要输出的字符串⾥有引号建议使⽤这种⽅式。
综上,可以总结为:在不使⽤转义字符的情况下,单引号⾥可以有双引号,双引号⾥可以有单引号,三引号⾥既可以有单引号也可以有双引号。常见的转义字符有:
\n  回车换⾏
\t    制表符
\"    双引号
\'    单引号
\\    输出斜杠
  c.原字符串:⽐如下⾯这个例⼦,我希望"\"后⾯的字母不被python看作是转义字符,在字符串前⾯加上⼀个字母‘r’即可。
例⼦:
1#源字符串
2print"c:\temp\node\jeapedu.py"
3print r"c:\temp\node\jeapedu.py"
输出:
1 c:    emp
2 ode\jeapedu.py
3 c:\temp\node\jeapedu.py
  d.字符串的更新:以下例⼦说明python中,字符串的更新不是在原地址上更新,⽽是重新开辟了⼀块空间。
例⼦:
1 t= 'abc'
2print id(t)
3 t= 'asad'
4print id(t)
5 c='abc'
6print id(c)
输出:发现修改字符串t前后id不同,说明不和C语⾔⼀样在原地址上更新。再次将'abc'字符串给另⼀个变量c时,c的id还是原先t的id,也可以说明这⼀点
80065432
79966688
80065432
2.字符串的访问
  a.索引访问:字符串是python的⼀种序列型的数据类型,字符串⾥的每⼀个字符都有⼀个标号可以标识其在字符串中的位置,从左⾄右依次是0,1,2...n-1,从右⾄左依次是-1,-2,-3....-n(其中n是字符串的长度),所有我们就可以通过索引来访问字符串中的某个字符。
例⼦:
1 s = 'hello world!!'
2print s[0]
3print s[-3]
输出:
1 h
2 d
  b.切⽚访问:访问字符串中某个范围的⼦串。语法格式:str_name[start:end:step],start是访问字符串的起点,end为终点,step 为步长,得到的⼦串由start到end-1这些字符组成(前闭后开)。
例⼦:
1 s = '123456789123456789'
2print s[0:6]
3print s[1:20:2]
输出:
1 123456
2 246813579
  甚⾄还可以这样:
例⼦:
1 s = '123456789abcdefghi123456789'
2#正切⽚
3print s[:20]  #不指定start
4print s[2:]  #不指定end
5print s[9:-9] #指定end为负数
6print s[:]  #不指定start和end相当于print s
7print s[::3]  #只指定步长
8#反切⽚
9print s[::-1]
10print s[17:-19:-1]
字符串函数注册登录11print s[-10:-19:-1]
输出:
1 123456789abcdefghi12
2 3456789abcdefghi123456789
3 abcdefghi
4 123456789abcdefghi123456789
5 147adg147
6 987654321ihgfedcba987654321
7 ihgfedcba
8 ihgfedcba

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。