学习python数据类型 — 字符串

一、学习python数据类型 — 字符串

1、字符串
  • 定义:字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,’ ‘(单引号)或’’ ‘’(双引号)或’’’ ‘’’(三引号)中间包含的内容称之为字符串

  • 字符串的特点:

  1. 按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序;
  2. 可以进行切片操作;
  3. 不可变,字符串是不可变的,不能像列表一样修改其中某个元素,所有对字符串的修改操作其实都是相当于生成了一份新数据。
    补充:
    1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r’l\thf
1.1、字符串的创建,可参考如下方式:
In [85]: string1 = 'hello  world!!'			# 单引号创建一个字符串
In [102]: school = "There is a school! "		# 双引号创建一个字符串
In [103]: name = '''My name is fzai'''			# 三引号创建字符串
In [86]: string1								# 查看这个字符串的内容
Out[86]: 'hello  world!!'
In [104]: school
Out[104]: 'There is a school! '
In [105]: name
Out[105]: 'My name is fzai'
1.2、字符串的一些常用方法
1.2.1、python移除空白的方法,strip()、lstrip()、rstrip(),replace()方法也可以去除空格,示例如下:

1、使用strip() 方法去除字符串开头或者结尾的空格

In [90]: string
Out[90]: ' I am like traveling! '
In [92]: len(string)
Out[92]: 22
In [89]: string1 = string.strip()				# 使用strip()去除
In [91]: string1
Out[91]: 'I am like traveling!'
In [93]: len(string1)
Out[93]: 20

2、 使用lstrip() 方法去除字符开头(左边)的空格

In [90]: string
Out[90]: ' I am like traveling! '
In [94]: string2 = string.lstrip()				# 使用lstrip()去除
In [95]: string
Out[95]: ' I am like traveling! '
In [96]: string2
In [92]: len(string)
Out[92]: 22
Out[96]: 'I am like traveling! '
In [97]: len(string2)
Out[97]: 21

3、 使用rstrip() 方法去除字符结尾(右边)的空格

In [90]: string
Out[90]: ' I am like traveling! '
In [98]: string3 = string.rstrip()
In [99]: string3
Out[99]: ' I am like traveling!'
In [100]: len(string3)
Out[100]: 21

4、replace()方法,可以去除全部空格,示例如下:

In [90]: string
Out[90]: ' I am like traveling! '
In [92]: len(string)
Out[92]: 22
In [107]: string4 = string.replace(" ","")
In [108]: string4
Out[108]: 'Iamliketraveling!'
In [109]: len(string4)
Out[109]: 17

5、使用字符串的split() 与 join() 方法进行操作

In [118]: a = 'I am a gril'
In [119]: b = a.split()					  # 字符串按空格分割成列表
In [120]: b
Out[120]: ['I', 'am', 'a', 'gril']
In [121]: c = ''.join(b)				  # 使用一个空字符串合成列表内容生成新的字符串
In [122]: c
Out[122]: 'Iamagril'
1.2.2、python中字符串的切片、索引、index()方法,示例如下:

1、索引

In [118]: a = 'I am a gril'
In [133]: a[9]
Out[133]: 'i'
In [135]: a[0]
Out[135]: 'I'
In [136]: a[3]
Out[136]: 'm'

2、index()方法,主要用于寻找某一字串是否在一个长的字符串中,示例如下:

In [118]: a = 'I am a gril'
In [129]: a.index("m")				# 寻找字符串"m"在字符串的那个下标
Out[129]: 3
In [137]: a.index("g",1,10)			# 寻找字符串"g"在a字符串的那个下标
Out[137]: 7
In [138]: a.index("g",5)			# 寻找字符串"g"在a字符串的那个下标,从下标为5的位置往后找
Out[138]: 7	
####  测试一下取坐标的范围,是左闭右开  ####
In [145]: a[2]						# 查看下标为2的字符串是"a",那么,尝试一下从下标2开始取值,可以取到					
Out[145]: 'a'
In [146]: a.index("a",2)
Out[146]: 2
In [147]: a.index("a",1,2)			# 寻找字符串'a',并从下标1开始取值,发现取不到,那就是左闭右开区间了
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-147-9b4220e2193a> in <module>
----> 1 a.index("a",1,2)

ValueError: substring not found

3、切片,和列表以及元组的切片是相同的,示例如下:

In [118]: a = 'I am a gril'
In [148]: a[1:2:3]
Out[148]: ' '
In [149]: a[2:7]
Out[149]: 'am a '
In [150]: a[1:9]
Out[150]: ' am a gr'
In [153]: a[1:10]
Out[153]: ' am a gri'
In [154]: a[1:20]
Out[154]: ' am a gril'
########  带有步长的切片  ########
In [155]: a[-1:3:1]
Out[155]: ''
In [156]: a[2:-4:1]
Out[156]: 'am a '
In [157]: a[2:8:-2]
Out[157]: ''
In [158]: a[2:8:-1]
Out[158]: ''
1.2.3、python中字符串的center() 、count() 、find(),示例如下:

1、center()方法对一个字符串进行对齐。使用指定的字符进行对齐(默认为空白),示例如下:
语法
str.center(length, fillchar), 其中 :
length是字符串的长度[必需的]
fillchar是指定对齐的字符[可选]

In [164]: string = 'beatiful'

In [165]: print(string.center(20,"*"))
******beatiful******

In [166]: print(string.center(30,"#"))
###########beatiful###########

2、count( )方法会返回一个特定值在字符串中出现的次数,示例如下:
str.count(value, start, end), 其中 :
value是要在字符串中进行搜索的子字符串[必需的]。
start是在字符串中开始搜索指定值的起始索引[可选]
end是在字符串中结束搜索指定值的结束索引[可选]

In [169]: string = "beatuifulia"

In [171]: len(string)
Out[171]: 11

In [170]: print(string.count("a",1,10))
1

In [172]: print(string.count("a",0,11))
2

In [173]: print(string.count("i",0,11))
2

In [174]: print(string.count("i",5,11))
2

In [175]: print(string.count("i",10,11))
0

3、find() 方法会返回字符串中特定子字符串的最低索引。如果没有找到子字符串,则返回-1,示例如下:
语法
str.find(value, start, end), 其中 :
value 或 substring是要在字符串中搜索的值[必需的]
start是在字符串中搜索指定值的起始索引[可选]
end是在字符串中搜索指定值的结束索引[可选]
类型
rfind() : rfind() 方法类似于find(),只不过它返回的是子字符串的最高索引

In [177]: string
Out[177]: 'beatuifulia'

In [178]: print(string.find("a",1,10))
2

In [179]: print(string.find("a",2,8))
2

In [180]: print(string.find("u",2,8))
4
###########  以下是使用rfind的情况  ###########
## 可以看出rfind就是找出最高索引
In [182]: print(string.rfind("u"))
7

In [183]: print(string.rfind("a"))
10
1.2.4、python中字符串的startswith( ) 、 endswith( )、split( ),示例如下:

1、startswith( )方法是以指定的值开始,示例如下:
备注:

  • 如果字符串以指定的值开始,则startswith()方法会返回True;否则,返回False
  • 语法
    string.startswith(value, start, end)
    Value是要在字符串中查找的子字符串[必需的]
    start是在字符串中开始搜索指定值的起始索引[可选]
    end是在字符串中搜索指定值的结束索引[可选]
In [184]: string
Out[184]: 'beatuifulia'

In [185]: print(string.startswith("j"))
False

In [186]: print(string.startswith("b"))
True

2、endswith( )方法是以指定的值开始,示例如下:
备注:

  • 如果字符串以指定的值结束,则endswith()方法会返回True;否则,返回False
  • 语法
    string.endswith(value, start, end)
    Value是要在字符串中查找的子字符串[必需的]
    start是在字符串中开始搜索指定值的起始索引[可选]
    end是在字符串中搜索指定值的结束索引[可选]
In [184]: string
Out[184]: 'beatuifulia'

In [187]: print(string.endswith("k"))
False

In [188]: print(string.endswith("a"))
True

3、split()方法会返回一个字符串中单词的列表 ,其中默认的分隔符是任意数量的空格。

  • 语法
    string.split(sep, maxsplit)
    sep:用于分割字符串的分隔符。如果没有指定任何内容,默认分隔符是空白[可选]
    maxsplit:表示分割的数量。默认值为-1,表示“所有出现的单词”[可选]
In [194]: string
Out[194]: 'beatuifulia'

In [189]: print(string.split("#",3))
['beatuifulia']

In [190]: print(string.split("a"))
['be', 'tuifuli', '']

In [191]: print(string.split("i"))
['beatu', 'ful', 'a']

In [192]: print(string.split("i",3))
['beatu', 'ful', 'a']

In [193]: print(string.split("i",4))
['beatu', 'ful', 'a']
1.2.5、python中字符串的大小写转换,upper( ) 、 lower()、capitalize( )、title( )、swapcase(),示例如下:

1、upper( ) 方法将字符串中的小写字母转为大写字母,示例如下:

  • 语法
    str.upper()
  • 返回值
    返回小写字母转为大写字母的字符串
In [202]: string
Out[202]: 'beatuifulia'

In [203]: print(string.upper())
BEATUIFULIA

In [204]: string.upper()
Out[204]: 'BEATUIFULIA'

2、 lower() 方法转换字符串中所有大写字符为小写,示例如下:

  • 语法
    str.lower()
  • 返回值
    返回将字符串中所有大写字符转换为小写后生成的字符串
In [206]: string1 = "I AM A BOY !"

In [207]: string1.lower()
Out[207]: 'i am a boy !'

3、capitalize( ) 将字符串的第一个字母变成大写,其他字母变小写,示例如下:

  • 语法
    str.capitalize()
  • 返回值
    该方法返回一个首字母大写的字符串
In [208]: string
Out[208]: 'beatuifulia'

In [209]: string.capitalize()
Out[209]: 'Beatuifulia'

4、title( ) 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写(见 istitle()),示例如下:

  • 语法
    str.title();
  • 返回值
    返回"标题化"的字符串,就是说所有单词的首字母都转化为大写
In [212]: string2 = "I am a boy !"

In [213]: string2.title()
Out[213]: 'I Am A Boy !'

5、swapcase() 方法用于对字符串的大小写字母进行转换

  • 语法
    str.swapcase();
  • 返回值
    返回大小写字母转换后生成的新字符串
In [212]: string2 = "I am a boy !"

In [214]: string2.swapcase()
Out[214]: 'i AM A BOY !'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值