第3课 字符串

1、字符串的定义:单引号--' '、双引号--" "、三单--''' '''、三双--"""  """

  1)单引号和双引号必须成对出现,不能一半用单引号,一半用双引号    

>>> 'name is tom'
'name is tom'
>>> "name is jim"
'name is jim'

  2) 单引号里面不能嵌套单引号,如果要嵌套的话,需要转义

>>> 'Let\'s go '
"Let's go "

  3)或者外面用双引号,里面用单引号

>>> "It's great"
"It's great"

  4)再或者外面用单引号,里面用双引号

>>> 'His name is "hahaer"'
'His name is "hahaer"'

  5)三单或者三双可以用来换行做多行注释

>>> '''
...从明天起,
...做一个快乐的人,
...睡到自然醒!
...'''
'\n...从明天起,\n...做一个快乐的人,\n...睡到自然醒!\n...'

  三双作为多行注释

>>> """
---迎着太阳奔跑
---汗水洒落地面
---"""
'\n---迎着太阳奔跑\n---汗水洒落地面\n---'

  6)单行注释:#    快捷键 Ctrl + /  。

fileName = temp[0].strip().split('.')[1] # 文件格式

 2、字符串的拼接

  1)用加号(+)作为连接符

>>> 'name is ' + 'tom'
'name is tom'

  2) 字符串和数字不能用加号(+)拼接;  str + int 会报错

>>> 'age is ' + 18
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    'age is ' + 18
TypeError: must be str, not int

  3)只有两个都为string类型,才能用+拼接

>>> 'age is ' + '16'
'age is 16'

  4)使用乘号(*)作为连接符

>>> 'python' * 3
'pythonpythonpython'

3、序列--str类型

  1)由多个元素组成;

  2)有编号---下标(index)

  3)从左到右,index值从0到(长度-1)。没有str1[len(str1)],这样会报下标越界

>>> str1 = 'python'
>>> len(str1)
6
>>> str1[6]
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    str1[6]
IndexError: string index out of range

  4)负下标,从右到左,index从-1开始,-2...到-n。n为字符串的长度

>>> str1 = 'name is tom'
>>> str1[-1]
'm'
>>> len(str1)
11
>>> str1[-11]
'n'

4、切片:左含右不含,对切片对象没有影响。被切对象是什么,切完还是什么对象类型。

  1)取中间段:string1[start:end],从start开始,到end结束,但不包括end。等价于:string1[start:start+切的内容长度]

>>> str1 = 'name is tom'
>>> # 从str1中提取is
>>> str1[5:5+2] # 左含右不含
'is'

  2)取前面一段:string1[:end],从第一个字符开始,到end位置结束,但是不包括end。

>>> str1 = 'It is a fine day'
>>> str1[:13]
'It is a fine '
>>> 

  3)取后面一段:string1[start:],从start开始,到字符串结束。

>>> str1 = 'It is a fine day'
>>> str1[8:]
'fine day'

  4)使用负下标切片

>>> str1 = 'It is a fine day today' # 使用负下标切fine
>>> str1[-14:-14+5]
'fine '

  5)使用负下标举例。下面是日志文件,记录游戏中某个人物进入聊天室,并且他们的等级是多少。每行记录一个进入的人,前面是时间戳,固定长度。要求

从每行日志字符串中把用户id取出来

  11:12:11>001 enter chatroom, level2

  11:12:16>003 enter chatroom, level 25 

>>> str1= '11:12:11> 001 enter chatroom, level 2'
>>> str2 = '11:12:16> 003 enter chatroom, level 25'
>>> str1[11:11+3] # 从0开始,到>后面的0刚好是第10位
'01 '
>>> str1[10:10+4]  # 包含第10位,就算左含右不含,后面也多出一位,即空格
'001 '
>>> str1[10:10+3]
'001'
>>> str2[10:10+3]
'003'
>>> 

  思考,上面的例子为毛不用负下标切片呢?因为后面的位数是不固定的。下面的例子可以用负下标切片,因为后面的位数是固定的。

  11:12:16> level2,005 enter chatroom

>>> str13 = '11:12:16> level2,005 enter chatroom'
>>> str13[-18:-18+3]
'005'

5、获取字符串的长度,注意:在字符串中‘\n’和‘\t’都是一个字符

>>> str1 = 'name is \n tom'
>>> len(str1)
13
>>> str2 = '\n'
>>> len(str2)
1
>>> str3 = 'name is \t tom'
>>> len(str3)
13
>>> str4 = '\t'
>>> len(str4)
1

6、学习一个内部函数:swapcase(),将字符串中的字符大小写转换。

>>> str1 = 'aaBBccDD'
>>> str1.swapcase()
'AAbbCCdd'
>>> str2 = 'EEffGGhh'
>>> str2.swapcase()
'eeFFggHH'

  1)与upper()的区别是:upper()是将字符串中的字符全部转换大写

>>> str1 = 'AbCdEfgh'
>>> str1.upper()
'ABCDEFGH'

  2)与lower()的区别:lower()是将字符串中的字符全部转换为小写

>>> str2 = 'YYZZxxaabbccDD'
>>> str2.lower()
'yyzzxxaabbccdd'

 

  

  

 

posted @ 2018-11-15 10:27  风吹麦浪听涛声  阅读(170)  评论(0编辑  收藏  举报