Python基础【day02】:字符串

在Python中字符串本身有带很多操作,字符串的特性,不可以被修改

1、字符串的定义


1

2

3

4

5

6

7

8

9

10

11

12

#定义空字符串

name = ‘‘

#定义非空字符串

>>> name = "zhangqigao"

#通过下标访问

>>> name[1]

‘h‘

#不能修改字符串的值,否则会报错

>>> name[2= ‘3‘

Traceback (most recent call last):

  File "<input>", line 1in <module>

TypeError: ‘str‘ object does not support item assignment

注:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改

2、切片

字符串其实和列表,元组一样,也是可以切片的


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

>>> name = "qigao zhang"

>>> name[1:4#取1到4之间的字符,包括1,不包括4

‘iga‘

>>> name[1:-1#取1到-1之间的字符,包括1,不包括-1

‘igao zhan‘

>>> name[0:3]

‘qig‘

>>> name[:3#从头开始取,0可以省略,效果等同于name[0:3]

‘qig‘

>>> name[3:] #想取到最后一个值,必须不能写-1,只能这么写

‘ao zhang‘

>>> name[0::2#后面的2表示:每隔一个字符就取一个

‘qgozag‘

>>> name[::2#从头开始0可以省略,效果跟上一句一样

‘qgozag‘

3、首字母大写(capitalize())


1

2

3

>>> name = "qigao zhang"

>>> name.capitalize()

‘Qigao zhang‘

4、统计(count(sub,start=None,end=None))

sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计


1

2

3

4

5

6

7

>>> name = "qigao zhangz"

#有开始和结束符

>>> name.count("z",1,5)

0

#从整个字符串中统计字符

>>> name.count("z")

2

5、center(width,fillchar)

如果width(字符宽度)小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串的,则用fillchar(填满字符)填满,处理结果等于width,字符串位于fillchar的中间


1

2

3

4

5

6

7

8

9

10

11

>>> name = "qigao zhangz"

>>> len(name)

12

#10小于等于字符串宽度

>>> name.center(10,‘-‘)

‘qigao zhangz‘

#51大于字符串长度,并且字符串位于填充字符的中间

>>> name.center(51,‘-‘)

‘--------------------qigao zhangz-------------------‘

>>> len(name.center(51,‘-‘))

51

6、ljust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边


1

2

3

4

5

6

7

8

9

10

11

>>> name = "qigao zhang"

>>> len(name)

11

#小于等于字符串的长度

>>> name.ljust(11,‘-‘)

‘qigao zhang‘

#大于字符串的长度

>>> name.ljust(50,‘-‘)

‘qigao zhang---------------------------------------‘

>>> len(name.ljust(50,‘-‘))

50

注:ljust中的l表示left的意思,表示从右向左

7.rjust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边


1

2

3

4

5

6

7

8

9

>>> name = "qigao zhang"

>>> len(name)

11

>>> name.rjust(11,‘-‘)

‘qigao zhang‘

>>> name.rjust(50,‘-‘)

‘---------------------------------------qigao zhang‘

>>> len(name.rjust(50,‘-‘))

50

注:ljust中的l表示left的意思,表示从左向右

8、编码(encode)

字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里

9、endwith(suffix,start=None,end=None)

判断是否已suffix结尾,是返回True,否返回Fales

suffix:表示字符,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断


1

2

3

4

5

6

7

>>> name = "qigao zhang"

#start和end不为空

>>> name.endswith(‘g‘,1,5)

False

#默认为空

>>> name.endswith(‘g‘)

True

10、find(sub,start=None,end=None)

全文查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

sub:字符或者字符串,start:开始位,end:结束位,start和end默认为空时,则在整个字符串中查找


1

2

3

4

5

6

7

8

9

10

>>> name = "qigao zhang"

#没找到,则返回-1

>>> name.find(‘zh‘,1,5)

-1

>>> name.find(‘q‘,2)

-1

>>> name.find(‘zh‘)

6

>>> name.find(‘zh‘,1,8)

6

11、rfind(sub,start=None,end=None)

从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1


1

2

3

4

5

6

7

>>> name = "qigao zhang"

#找到

>>> name.rfind(‘q‘)

0

#未找到

>>> name.rfind(‘q‘,2)

-1

12、format()

这个函数就不用多少了,这个小主也专门写了一篇博客,更多用法,请:猛击这里

13、format_map()

数据格式,以字典形式传入


1

2

3

4

>>> name = "name:{name},age:{age}"

>>> name.format_map({‘name‘:‘zhangqigao‘,‘age‘:23})

#输出结果

‘name:zhangqigao,age:23‘

14、isalnum()

是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符


1

2

3

4

5

6

7

8

9

10

11

12

13

>>> age = ‘23‘

>>> age.isalnum()

True

#有特殊字符的

>>> age = ‘2.3‘

>>> age.isalnum()

False

>>> age = ‘ab23‘

>>> age.isalnum()

True

>>> age = ‘ab‘

>>> age.isalnum()

True

15、isalpha()

是否是一个纯的英文字符,包含大写


1

2

3

4

5

6

7

8

9

10

11

>>> age = ‘ab‘

>>> age.isalpha()

True

#夹着数字

>>> age = ‘ab23‘

>>> age.isalpha()

False

#大写

>>> age = ‘Ab‘

>>> age.isalpha()

True

16、isdigit()

判断是否是一个整数,详情请见:猛击这里

17、isspace()

判断是否是一个空格


1

2

3

4

5

6

7

8

#不是空格

>>> age = ‘ age‘

>>> age.isspace()

False

#是空格

>>> age = ‘ ‘

>>> age.isspace()

True

18、istitle()

是否是一个标题(字符串中的每个单子首字母大写)


1

2

3

4

5

6

7

8

#每个单词的首字母是大写

>>> name = "Zhang Qi Gao"

>>> name.istitle()

True

#每个单词的首字母是小写

>>> name = "zhang qi gao"

>>> name.istitle()

False

19、isupper()

是否是大写,注意字符串必须全部是大写才会返回True,否则返回False


1

2

3

4

5

6

7

8

#全部大写

>>> name="ZHANG"

>>> name.isupper()

True

#小写

>>> name="Zhang"

>>> name.isupper()

False

20、join()

序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型


1

2

3

>>> a = [‘1‘,‘2‘,‘3‘]

>>> ‘+‘.join(a)

‘1+2+3‘

21、lower()

字符串中的大写字母转换为小写字母


1

2

3

>>> name = "ZhangQiGao"

>>> name.lower()

‘zhangqigao‘

22、upper()

字符串中的小写字母转换为大写字母


1

2

3

>>> name = "ZhangQiGao"

>>> name.upper()

‘ZHANGQIGAO‘

23、strip()

去掉左右两边的空格(space)和回车(\n)


1

2

3

>>> name = "   \n zhangqigao    \n"

>>> name.strip()

‘zhangqigao‘

24、lstrip()

删掉左边到右的空格(space)和回车(\n)


1

2

3

>>> name = "   \n zhangqigao    \n"

>>> name.lstrip()

‘zhangqigao    \n‘

25、rstrip()

删掉右边到左边的空格(space)和回车(\n)


1

2

3

>>> name = "   \n zhangqigao    \n"

>>> name.rstrip()

‘   \n zhangqigao‘

至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标

26、split()

分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数


1

2

3

4

5

6

7

8

9

10

11

12

>>> name = "qigao zhang"

#默认为空,按空格分割

>>> name.split()

[‘qigao‘‘zhang‘]

>>> name = "qigao+zhang"

#以‘+‘字符分割

>>> name.split("+")

[‘qigao‘‘zhang‘]

#以‘\n‘分割

>>> name = "qigao\nzhang"

>>> name.split("\n")

[‘qigao‘‘zhang‘]

27、splitlines()

以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是‘\n‘


1

2

3

>>> name = "qigao\nzhang"

>>> name.splitlines()

[‘qigao‘‘zhang‘]

28、swapcase()

把大写换成小写,把小写换成大写


1

2

3

>>> name = "ZHang"

>>> name.swapcase()

‘zhANG‘

29、startswith(prefix, start=None,end=None)

判断是否已prefix结尾,是返回True,否返回Fales

prefix:表示字符或者字符或者字符串,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断


1

2

3

4

5

>>> name = "zhang qigao"

>>> name.startswith("zhang"#开头找到"zhang" 字符串

True

>>> name.startswith("h",3,5)  #在索引3到5之间没有找到以字符‘h‘开头

False

30、replace(old,new[, max])

old:将被替换的子字符串; new:新字符串,用于替换old子字符串;max:可选字符串, 替换不超过 max 次


1

2

3

4

5

6

7

8

9

10

>>> name = "zhang is shuai ge"

>>> name.replace(‘is‘,‘was‘)

‘zhang was shuai ge‘

#原字符串没有改变

>>> name

‘zhang is shuai ge‘

>>> name.replace(‘is‘,‘was‘,0)

‘zhang is shuai ge‘

>>> name.replace(‘is‘,‘was‘,1)

‘zhang was shuai ge‘

31、zfill(width)

字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串


1

2

3

4

5

6

7

8

9

>>> name = "zhangqigao"

>>> len(name)

10

#width大于字符串长度

>>> name.zfill(11)

‘0zhangqigao‘

#width小于等于字符串长度

>>> name.zfill(10)

‘zhangqigao‘

时间: 2024-08-11 01:27:12

Python基础【day02】:字符串的相关文章

Python基础语法&mdash;字符串&amp;语句&amp;集合

Python字符串 Python中不支持char单字符类型,单字符在Python中也是一个字符串 Python字符串更新 更新Python字符串方法 1234 var1 = 'Hello World!'print "Updated String :- ", var1[:6] + 'Python' 实际执行效果为 Updated String :- Hello Python Python转义字符 Python字符串运算符 Python字符串格式化 Python三引号(triple quo

Python基础-day02

写在前面 上课第二天,打卡: 大人不华,君子务实. 一.进制相关 - 进制基础 数据存储在磁盘上或者内存中,都是以0.1形式存在的:即是以 二进制 的形式存在: 为了存储和展示,人们陆续扩展了数据的表示形式:八进制 -> 十进制 -> 十六进制... 二进制:0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 ... 八进制:0 1 2 3 4 5 6 7 10 11 12 13 14 15

python基础、字符串和if条件语句

一:Python基础 1.文件后缀名: .py 2.Python2中读中文要在文件头写: -*-coding:utf8-*- 3.input用法      n为变量,代指某一变化的值 n = input ('请输入用户名:')     等到用户输入值,就会将用户输入的值赋值给n,n代指用户输入的内容. 4.变量只能由字母.数字.下划线组成. 不能以数字开头. 不能用Python的关键字开头: 5.n="花椒"      赋值  n=="花椒"    比较 二:字符串

Python基础day02 基本数据类型

Number(数字)---> int.float.complex(复数) 在Python3中,整形(int)就是常见的整数:1,100,500,1000...... 浮点型(float),就是我们常见的用小数点表示的小数,例如0.5, 1.2, 3.14,等等. 复数(complex, 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型. 属性 描述 num.real 该复数的实数部分 num.imag 该复数的虚数部分 num.

python基础(字符串)

Python字符串: 在Python中的字符串被确定为一组连续的字符在引号之间, Python允许在任何对单引号或双引号. 串的子集,可以使用切片操作符可采用([]和[:]),索引从0开始的字符串的开始和结束(-1). 加号(+)符号的字符串连接操作符,而星号(*)表示重复操作. str = 'Hello,world!' print str print str[0] print str[2:5] print str[2:] print str * 2 print str + 'Ethon' 产生

python基础三(字符串)

一.字符串 1.1什么是字符串 字符串是python中不可变的一种数据类型,主要用来表示文本. 1.2创建一个字符串 a是变量名称右边是双引号里的字符,只要是被引号引起的python都会认为是字符串. 这里采用的是单引号,结果和上图双引号完全相同,那么为什么还有单引号和双引号呢?因为在某些情况下可能会很适用. 下图中第一个字符串包含一个单引号(这里叫撇感觉更合适),因此不能使用单引号将字符串括起,否则会报错.这里就用到了双引号.注释:在上图中字符串为'Let',因此python不知道如何处理余下

python基础之字符串格式化

python中字符串格式化有两种,一种是%,另一种是str中的format()功能. % 列举格式符 %s    字符串 %c    单个字符 %b    二进制整数 %d    十进制整数 %i    十进制整数 %o    八进制整数 %x    十六进制整数 %e    指数 (基底写为e) %E    指数 (基底写为E) %f    浮点数 %F    浮点数,与上相同 %g    指数(e)或浮点数 (根据显示长度) %%    字符"%" 举例: #当今有一个格式符 na

Python基础--使用字符串

字符串是不可变序列 >>>website = 'http://www.python.org' >>>website[-3:] = 'com' #错误 字符串格式化–% %左侧放置一个字符串,右侧放置希望格式化的值: >>>format = 'Hello %s %s enough for ya?' >>>values = ('world', 'hot') >>>print format % values Hello w

Python高手之路【六】python基础之字符串格式化

Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号

python基础知识-字符串

字符串: 赋值方法 a = 'name' a = str('name') 字符串的方法: 1 #!/usr/bin/env python 2 class str(object): 3 """ 4 str(object='') -> str 5 str(bytes_or_buffer[, encoding[, errors]]) -> str 6 7 Create a new string object from the given object. If encod