python数据类型(字符串String1)

字符串String

        字符串可以理解为一段普通的文本内容,在Python里,使用引号来表示一个字符串。比如表示姓名、家庭地址等。
 
一、字符串表示方法
    
a="I'm Tom"    #一对双引号
b='Tom said:"I am Tom"'   #一对单引号
c='Tom said:"I\'m Tom"'   #转义字符
d='''Tom said:"I'm Tom"'''   #三个单引号
e="""Tom said:"I'm Tom""""   #三个双引号
 说明:
  • 双引号或者单引号中的数据,就是字符串
  • 如果使用一对引号来定义字符串,当出现符号冲突时可以使用转义字符
  • 使用三个单引号、双引号定义的字符串可以包裹任意文本
二、转义字符
        转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分,使用 \ 来表示一个转义字符。常见的转义字符以及它所代表的含义如下表:
转义字符
          含  义
\r
将当前位置移到本行开头
\n
将当前位置移到下一行开头
\t
用来表示一个制表符
\\
代表一个反斜线字符 \
\'
用来表示一个单引号
\"
用来表示一个双引号

 

       在字符串的前面添加r,在Python里面表示原生字符串。r是raw的意思,原始的,不转义。

 三、字符串的索引和切片

    1、索引

     字符串是字符的有序集合,可以通过其位置来获得具体的元素。在python中,字符串中的字符是通过索引来提取的,索引从0开始。索引可以取负值,表示从末尾提取,最后一个为-1,倒数第二个为-2,即程序认为可以从结束处反向计数。

                                                        

 

        如果要取出字符串中的某一个字符,可以用括号‘[ ]’加索引方式:

#正向取
data = 'Hello world'[1] print(data) # 'e'
#反向取
data1 = 'Hello world'[-4] print(data1) # 'o'

  2、切片

       切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
 
       切片的语法:[起始:结束:步长]
       注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
 
m=[abcdefghijklmnopqrstuvwxyz]
print(m[2:9])   #'cdefghi'
print(m[2:]) #'cdefghijklmnopqrstuvwxyz' print(m[:9]) #'abcdefghi'
print(m[3:15:2]) #'dfhjln' print(m[3,15:0]) #步长不能为0 print(m[3:15:-1]) #没有数据 print(m[15:3:-1]) #ponmlkjihgfe
print(m[::]) #从头到尾复制 print(m[::-1]) #zyx...cba
#start和end为负表示从右向左数 print(m[-9:-5]) #rstu

 四、字符串常见的操作

       字符串常见操作包括:
 
  • 获取长度:len
  • 查找内容:find,index,rfind,rindex
  • 判断:startswith,endswith,isalpha,isdigit,isalnum,isspace
  • 计算出现次数:count
  • 替换内容:replace
  • 切割字符串:split,rsplit,splitlines,partition,rpartition
  • 修改大小写:capitalize,title,upper,lower
  • 表格处理:ljust,rjust,center,lstrip,rstrip,strip
  • 字符串拼接:join

 

       注意:在Python中,字符串是不可变的!所有的字符串相关方法,都不会改变原有的字符串,都是返回一个结果,在这个新的返回值里,保留了执行后的结果!

 

       len

       len函数可以获取字符串的长度。
s = 'Hello world!'
print(len(s))
# 12

  

       查找

       查找相关的方法,使用方式大致相同,但是略有区别。
 
       1. find
 
       查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1。
 
       语法格式:
S.find(sub[, start[, end]]) -> int

  示例:

mystr = 'Hello world!'
print(mystr.find('llo'))
# 2
print(mystr.find('llow'))
# -1
print(mystr.find('o', 6))
# 7
print(mystr.find('ol', 1, -1))
# -1

  

       2. rfind
 
       类似于 find()函数,不过是从右边开始查找。

mystr = 'Hello world!'
print(mystr.rfind('o'))
# 7

  

       3.index
 
       跟find()方法一样,只不过,find方法未找到时,返回-1,而index未找到时,会报一个异常。
 
       语法格式:
S.index(sub[, start[, end]]) -> int

  示例:

mystr = 'Hello world!'
print(mystr.index('ll'))
# 2
print(mystr.index('lol'))
# ValueError: substring not found

  

       4.rindex
 
       类似于 index(),不过是从右边开始。

   

    判断

     python提供了非常丰富的方法,可以用来对一个字符串进行判断。
 
    1. startswith
 
    判断字符串是否以指定内容开始。 语法格式:
S.startswith(prefix[, start[, end]]) -> bool

  示例:

mystr = 'Hello world!'
print(mystr.startswith('He'))
# True
print(mystr.startswith('he'))
# False

  

    2. endwith
 
    判断字符串是否以指定内容结束。 语法同startwith。

 

    3. isalpha
 
    判断字符串是否是纯字母。
mystr = 'Hello'
print(mystr.isalpha())
# True

# 字符串含空格
mystr1 = 'Hello world!'
print(mystr1.isalpha())
# False

  

    4. isdigit/isdecimal/isnumeric
 
    判断一个字符串是否是数字,但使用方法各有不同,请看示例:
v1='123'
print(v1.isdigit())     #True
print(v1.isdecimal())   #True
print(v1.isnumeric())   #True

v2='123壹'
print(v2.isdigit())     #False
print(v2.isdecimal())   #False
print(v2.isnumeric())   #True


v3='123①'
print(v3.isdigit())     #True
print(v3.isdecimal())   #False
print(v3.isnumeric())   #True

  判断一个字符串是不是阿拉伯数字最严谨的是用isdecimal()方法。

 
    5. isalnum
 
    判断是否由数字和字母组成。只要出现了非数字和字母,就返回False。
mystr = 'abcd'
print(mystr.isalnum())  # True
mystr = '1234'
print(mystr.isalnum()) # True
mystr = 'abcd1234'
print(mystr.isalnum()) # True
mystr = 'abcd1234_'
print(mystr.isalnum()) # False

  

    6. isspace
 
    如果 mystr 中只包含空格,则返回 True,否则返回 False。
mystr = ''
print(mystr.isspace()) # False mystr是一个空字符串
mystr = '  '
print(mystr.isspace()) # True 只有空格
mystr = ' d'
print(mystr.isspace()) # False 除了空格外还有其他内容

  

    count
 
    返回 str在start和end之间 在 mystr里面出现的次数。
   
    语法格式:
S.count(sub[, start[, end]]) -> int
   
    示例:

mystr = 'Hello world!'
print(mystr.count('l'))
# 3

  

    替换
 
     替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。
mystr = 'Hello world!'
newstr = mystr.replace('r', 'R')
# 原字符串没变化
print(mystr)
# Hello world!
print(newstr)
# Hello woRld!

newstr1 = mystr.replace('l', 'L', 2)
print(newstr1)
# HeLLo world!

  

    内容分隔
 
     内容分隔主要涉及到split,splitlines,partition和rpartition四个方法。
 
    1.split
 
        以指定字符串为分隔符切片,如果 maxsplit有指定值,则仅分隔 maxsplit+1 个子字符串。返回的结果是一个列表。

mystr = 'Hello world!'
print(mystr.split())
# ['Hello', 'world!']

print(mystr.split('l'))
# ['He', '', 'o wor', 'd!']  两个l连一起,分割成一个空字符串

print(mystr.split('l', 2))
# ['He', '', 'o world!']

  

    2.rsplit
 
    用法和split基本一致,只不过是从右往左分隔。
mystr = 'Hello world!'
print(mystr.rsplit('l', 1))
# ['Hello wor', 'd!']

#splitlines()按照行分隔,返回一个包含各行作为元素的列表。
mystr1='Hello \nworld'
print(mystr1.splitlines())
# ['Hello ', 'world']

  

    3.partition
 
    把mystr以str分割成三部分,str前,str和str后,三部分组成一个元组。
mystr = 'Hello world!'
print(mystr.partition('l'))
# ('He', 'l', 'lo world!') 从左第一个l分割

  

    4.rpartition
 
    类似于 partition()函数,不过是从右边开始。
mystr = 'Hello world!'
print(mystr.rpartition('l'))
# ('Hello wor', 'l', 'd!') 从右第一个l分割

  

     修改大小写

    修改大小写的功能只对英文有效,主要包括,首字母大写capitalize,每个单词的首字母大写title,全小写lower,全大写upper。
 
    1.capitalize
 
    第一个单词的首字母大写。
mystr = 'hello world!'
print(mystr.capitalize())
# Hello world!

  

    2.title

    每个单词的首字母大写。
mystr = 'hello world!'
print(mystr.title())
# Hello World!

  

    3.lower

    所有都变成小写。
mystr = 'heLLo woRld!'
print(mystr.lower())
# hello world!

  

    4.upper
 
    所有都变成大写。
mystr = 'heLLo woRld!'
print(mystr.upper())
# HELLO WORLD!

  

    空格处理
 
     Python为我们提供了各种操作字符串里表格的方法。
 
    1. ljust
 
    返回指定长度的字符串,并在右侧使用空白字符补全(左对齐)。
mystr = 'heLLo'
print(mystr.ljust(10))
#heLLo     右边补5个空格

  

    2. rjust
 
    返回指定长度的字符串,并在左侧使用空白字符补全(右对齐)。
mystr = 'heLLo'
print(mystr.rjust(10))
#      heLLo左边补5个空格

  

    3. center
 
    返回指定长度的字符串,并在两端使用空白字符补全(居中对齐)
mystr = 'heLLo'
print(mystr.center(10))
#  heLLo  两端加空格,内容居中

  

    4. lstrip
 
    删除 mystr 左边的空白字符。
mystr = '    he   llo      '
print(str.lstrip())  #he   llo      只去掉了左边的空格,中间和右边的空格被保留

  

     5. rstrip

 
    删除 mystr 右边的空白字符。
mystr = '    he   llo      '
print(str.rstrip())  #    he   llo右边的空格被删除

  

    6. strip
 
    删除两断的空白字符。
str = '    he   llo      '
print(str.strip())  #he   llo

  

    字符串拼接
 
    把参数进行遍历,取出参数里的每一项,然后再在后面加上mystr。
 
    语法格式:
S.join(iterable)

 示例:

cha = '_'
print(cha.join('hello'))  # 字符串的连接
# h_e_l_l_o
print(cha.join(['I', 'like', 'China']))  # 列表的连接
# I_like_China
print(cha.join(('hello', 'world')))  # 元祖的连接
# hello_world

  

posted @ 2021-01-27 09:38  wangshanglinju  阅读(268)  评论(0编辑  收藏  举报