资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python入门之字符串-创新互联

                                                Python入门之字符串

创新互联是一家专业提供新郑企业网站建设,专注与成都网站制作、网站设计、H5响应式网站、小程序制作等业务。10年已为新郑众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

一、字符串的概念及创建

1、字符串的概念

* 在程序中,文本内容用字符串来表示

* 字符串是有一系列有序的字符组成,如: 'helloworld'

* 字符串和列表,元组一样,都属于序列类型'

* 可以将字符串看做字符的列表,列表的很多操作对于字符串也是适用的

* 没有单独的字符类型,字符就是指包含一个元素的字符串 例如: 'a', 'b', 'c'

2、字符串的创建

'''
使用双引号或者单引号都可以创建字符串
'''
s = 'ok'
print (s,type(s)) # ok 

s1 = "ok1"
print (s1,type(s1)) # ok1 


'''
使用内置函数str,传入的可以是数字,可以是字母,也可以是浮点数,最终该数据类型为str类型
'''

s2 = str('abc')
print (s2,type(s2)) # abc 

s3 = str('123')
print (s3,type(s3)) # 123 

 

二、转义字符

1、使用转义字符无法表示的特殊字符

当字符串中包含换行、回车、水平制表符、退格等无法直接表示的特殊字符时,该如何表示呢?

    换行: newline,光标移动到下一行的开头

    回车:  return,光标移动到本行开头

    水平制表符:tab键,光标移动下一组4个空格开始处

    退格:backspace键,回退一个字符

可以使用如下转义字符

换行:

回车: \r

水平制表符: \t

退格: \b

print('abc\ndef') # abcdef 换行显示
print('abc\rdef') # def 回车,移动到光标本行开头
print('123456\t123\t45') # 123456  123    45 制表符4个空格,按整体字符长度算
print('abc\bdef') # abdef 退格,删除了c

2、使用反斜杠"\",作为转义符

例如想直接打印一个字符串,但想在该字符串中包含单引,双引等,需要使用\进行转义

print('what\'s you name') # what's you name
print('打印一个双引号\"') # 打印一个双引号"
print('打印一个反斜杠\\') # 打印一个反斜杠\

3、原始字符串

例如想打印 '\tC:\Program Files' -t为制表符,不想让-t生效,那么可以使用到原始字符串raw

print('\t:programfiles')  #	:programfiles
print(r'\t:programfiles') #\t:programfiles
print(R'\t:programfiles') #\t:programfiles

4、字符串查操作

   a)  使用index、rindex、find、rfind查找字符串中元素索引

s = '12334567'
print(s.index('3')) # 2 
print(s.rindex('3')) # 3
print(s.find('3'))  # 2 
print(s.rfind('3')) # 3
# 可以指定查找start和stop,例如从索引1开始到5结束,查找元素3的索引
print(s.index('3',1,5)) # 2
print(s.rfind('3',1,5)) # 3
# 当查找的元素不在指定索引中时,index和rindex方法会抛出value error
# 当查找的元素不在指定索引中时,find和rfind方法会返回-1
print(s.index('9',1,5)) # ValueError: substring not found
print(s.rindex('9',1,5)) # ValueError: substring not found
print(s.find('9',1,5))  # -1 
print(s.rfind('9',1,5)) # -1

 b) 亦可使用查找列表查操作,查找对应索引的元素

s = 'Python'
print(s[3])  # h
print(s[1:4]) # yth
print(s[:-1]) # Pytho
print(s[::-1]) # nohtyP
print(s[:])  # Python
print(s[:2:-1]) # noh

5、字符串的比较

a)  使用 >, <, ==, !=对字符串进行比较

s1 = 'abc'
s2 = 'def'
print(s1 == s2) # False
print(s1[0] < s2[0]) # True
print(s1[1] > s2[0]) # False
print(s1 != s2) # True

b) 字符串也可以适用is,==是比较相等性,is是比较同一性,但是对于字符串来说,python重复进行调用

a = b = '123'
c = '123'
print (a is b) #True
print (a == c) #True
print (a is c) #True
print(id(a),id(c))  #139917133452656 139917133452656

6、字符串的反转

使用内置函数reversed对字符串进行反转

s = 'hello world'
print(list(reversed(s)))  # ['d', 'l', 'r', 'o', 'w', ' ', 'o', 'l', 'l', 'e', 'h']

7、字符串的排序

使用内置函数sorted对字符串进行排序

s = 'EdfaCb'
# 可以指定排序规则,例如先转换成小写,然后进行排序,或者排序完对字符串进行反转
# 不指定规则,则按照ord()的方式排序
print(sorted(s,key = str.lower)) # ['a', 'b', 'C', 'd', 'E', 'f']
print(sorted(s,reverse = True)) # ['f', 'd', 'b', 'a', 'E', 'C']
print(sorted(s)) # ['C', 'E', 'a', 'b', 'd', 'f']

8、字符串的大小写转换

a) upper 将所有字符转换成大写

b) lower 将所有字符转换成小写

c) swapcase 把所有小写转换成大写,大写转小写

d) title 把每个单词的开头转换成大写

s = 'java PytHon Shell'
print(s.lower()) #java python shell
print(s.upper()) # JAVA PYTHON SHELL
print(s.swapcase()) # JAVA pYThON sHELL
print(s.title()) # Java Python Shell

9、字符串的对齐

a) center 中心对齐

b) rjust 右对齐

c) ljust 左对齐

以上方法可以指定两个参数,第一个参数是宽度,第二个参数是对齐符号,不指定第二个参数默认是空格。

d) zfill:右对齐,左边用0填充

该方法值接收一个参数,用于指定字符的宽度,如果指定的字符宽度小于字符串本身,那么返回字符串本身

s = 'hello world'
print(s.center(20,'*')) # ****hello world*****
print(s.ljust(18,'^')) # hello world^^^^^^^
print(s.rjust(18,'$')) # $$$$$$$hello world
print(s.zfill(15)) # 0000hello world

10、字符串的替换

调用replace方法,对字符串进行替换,str.replace('old','new','replace_num')

s = 'hi hi hi hello'
#将hi替换为hello,大替换个数为2个,不指定替换个数默认为全部
print(s.replace('hi','hello',2)) # hello hello hi hello

11、去除字符串的前导符和后导符

调用方法lstrip、rstrip、strip对字符串前导符和后导符进行去除

s = '****hello world^^^^^'
print(s.lstrip('*'))  # hello world^^^^^
print(s.rstrip('^'))  # ****hello world
print(s.strip('*^'))  # hello world


当前题目:Python入门之字符串-创新互联
本文来源:http://cdkjz.cn/article/doigds.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220