python字符串定义符_Python基础笔记系列七:字符串定义和访问

字符串定义和访问1.字符串基础  a.字符串可以用单引号、双引号、三引号(单、双)定义,其中,单引号和双引号定义的字符串没啥区别,三引号有点区别。下面通过例子来看。

例子:

1 str1= 'hello'

2 str2= "hello"

3 str3= 'hello3 hello'

4 printstr1,str2,str35 #以上三种没有区别

6

7 printtype(str1),type(str2),type(str3)8 str4= 'hello "dear"'

9 printstr410 str5= "hello \"dear\""

11 printstr512 str6= 'hello \'dear\''

13 printstr6

输出:

1 hello hello hello3 hello2

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\'"''' #这里加上转义字符也可以

3 printstr74 str8 = '''hello 'hey' "Tom"'''

5 print str8

输出:

1 "hello 'dear'"

2 hello 'hey' "Tom"

可以发现,一个字符串的最外层是三个单引号,则它不会关心引号里面的单引号和双引号,直接输出里面的内容。所以如果需要输出的字符串里有引号建议使用这种方式。

综上,可以总结为:在不使用转义字符的情况下,单引号里可以有双引号,双引号里可以有单引号,三引号里既可以有单引号也可以有双引号。常见的转义字符有:

\n 回车换行

\t 制表符

\"双引号

\'单引号

\\ 输出斜杠

c.原字符串:比如下面这个例子,我希望"\"后面的字母不被python看作是转义字符,在字符串前面加上一个字母‘r’即可。

例子:

1 #源字符串

2 print "c:\temp\node\jeapedu.py"

3 print r"c:\temp\node\jeapedu.py"

输出:

1 c: emp2 ode\jeapedu.py3 c:\temp\node\jeapedu.py

d.字符串的更新:以下例子说明python中,字符串的更新不是在原地址上更新,而是重新开辟了一块新的地址空间。

例子:

1 t= 'abc'

2 printid(t)3 t= 'asad'

4 printid(t)5 c='abc'

6 print 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!!'

2 prints[0]3 print s[-3]

输出:

1 h2 d

b.切片访问:访问字符串中某个范围的子串。语法格式:str_name[start:end:step],start是访问字符串的起点,end为终点,step为步长,得到的子串由start到end-1这些字符组成(前闭后开)。

例子:

1 s = '123456789123456789'

2 print s[0:6]3 print s[1:20:2]

输出:

1 123456

2 246813579

甚至还可以这样:

例子:

1 s = '123456789abcdefghi123456789'

2 #正切片

3 print s[:20] #不指定start

4 print s[2:] #不指定end

5 print s[9:-9] #指定end为负数

6 print s[:] #不指定start和end相当于print s

7 print s[::3] #只指定步长

8 #反切片

9 print s[::-1]10 print s[17:-19:-1]11 print s[-10:-19:-1]

输出:

1 123456789abcdefghi122 3456789abcdefghi1234567893 abcdefghi4 123456789abcdefghi1234567895 147adg1476 987654321ihgfedcba9876543217 ihgfedcba8 ihgfedcba

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值