[转载] python 字符串切片_Python字符串

参考链接: 如何在Python中索引和切片字符串string

Python字符串

 本章将介绍:1.字符串的3种表现形式2.字符串的输入与输出,索引与切片。3.字符串常用函数4.了解字符串的运算

 在汉语中,将若干个字连起来就是一个字符串,例如“千锋教育”就是一个由4个汉字组成的字符串。在程序中,字符串是由若干字符组成的序列

 字符串的概念

 •在前面的章节中,大家已接触过简单字符串,Python中的字符串以引号包含为标识,具体有3种表现形式:

 •1. 使用单引号标识字符串

 •使用单引号标识的字符串中不能包含单引号,具体如下所示:

 

  'das'  '你好'  '123456'

 

 •2. 使用双引号标识字符串

 •使用双引号标识的字符串中不能包含双引号,具体如下所示:

 

  "sadsa"  "你好"   "123456"

 

  •3. 使用三引号标识字符串

 •使用3对单引号或3对双引号标识字符串可以包含多行,具体如下所示:

 

  '''

asda

'''

"""

你好

"""

 

 Python转义字符

 在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:

 

 

  

 

 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

 操作符描述实例+字符串连接>>>a + b'HelloPython'*重复输出字符串>>>a * 2'HelloHello'[]通过索引获取字符串中字符>>>a[1]'e'[ : ]截取字符串中的一部分>>>a[1:4]'ell'in成员运算符 - 如果字符串中包含给定的字符返回 True>>>"H" in aTruenot in成员运算符 - 如果字符串中不包含给定的字符返回 True>>>"M" not in aTruer/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。>>>print r'n'n>>> print R'n'n

 字符串的输入与输出

 字符串的输出可以使用print()函数:

 

  # 字符串的输出

print("我是Neal")

 

 上面的字符串只能够输入特定的内容,如果事先不知道要输出的内容,而是需要根据用户输入信息来确定,可以采用如下两种方法:

 

  # 方法一

name = input("请输入您的姓名")

print("您的姓名是:%s" %name)

 

# 方法二

name = input("请输入您的姓名")

print(f"您的姓名是:{name}")

 

 

 显然第二种方法更为简洁明了,并且在第一种方法中需要根据不同的类型变量而改变%后面的字母,下表是不同字母代表的含义:

 

 

  

 

 一、索引

  1、索引下标查找

 

  a = 'ABCDPOM'

s = a[0]

s2 = a[2]

print(s)

print(s2)

 

 输出结果为:A C

  二、切片截取

 切片 slice从字符串序列中取出相应的元素重新组成一个字符串序列语法s[(开始索引b):(结束索引e)(:(步长s))]注 : 小括号()括起来的部分可以省略(包含开始索引位置,不包含结束索引位置)说明:

 

  1.开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素, -1 代表最后一个元素

  2. 结束索引是切片的终止索引(但不包含终止点)

  3. 步长是切片每次获取完当前元素后移动的方向和偏移量

  3.1 没有步长,相当于步长为1,(默认为1)

  3.2 当步长为正整数时,取正向切片,开始索引默认为0,结束索引为最后一个元素的下一个位置

  3.3 当步长为负数时,取反向切片, 反向切片时,默认的其实位置为最后一个元素,终止位置为第一个元素的前一个位置

 

 

  示例:s = ‘abcde’

>>>s[0:4]  # 'abcd'  1代表起始索引,4代表到此位置不取,直接结束

>>>s[:4]  # 'abcd'

>>>s[2:5]  # 'cde'  切片索引可以越界

>>>s[2:]  # 'cde'

>>>s[0:]  # 'abcde'

>>>s[:]  # 'abcde'

>>>s[1:1]  # ''

>>>s[4:1]  # ''

>>>s[1:5]  # 'bcde'

>>>s[1:5:1]  # 'bcde'

>>>s[1:5:2]  # 'bd'

>>>s[::2]  # 'ace'

>>>s[4:0:-1]  # 'edcb'   反向切片包含起始,不包含末尾

>>>s[::-1]  # 'edcba'  逆序

>>>s[-1::-1]  # 'edcba'

>>>s[4::-2] # 'eca'

>>>s[-4:-2]  #'bc'

>>>s[-2:]  #'de'

 

 

 字符串常用函数

 1.字符串常量集合

 

  print(string.ascii_uppercase) #大写字母

print(string.ascii_lowercase) #小写字母

print(string.ascii_letters)   #大小写字母

print(string.digits)          #数字

print(string.punctuation)     #符号集合

print(string.printable)       #可输入字符合集,包括大小写字母数字和符号的合集

 

 2.字符串大小写转换 5个

 

  str='hello,woRld!'

print(str.capitalize()) #仅首字母大写,Hello,world!

print(str.title())      #仅每个单词首字母大写,Hello,World!

print(str.upper())      #每个字母都大写,HELLO,WORLD!

print(str.lower())      #每个字母都小写,hello,world!

print(str.swapcase())   #大小写互换,HELLO,WOrLD!

 

 3.字符串内容判断 10个

 

  num='123'

alp='asd'

num_alp='a1s2d'

printable='`~!@#$%'

print(num.isdigit())             #字符串中的字符是否都是数字,True

print(alp.isalpha())             #字符串中的字符是否都是字母,True

print(num_alp.isalnum())         #字符串中的字符是否都是字母和数字,True

print(printable.isprintable())   #字符串中的字符是否都是可输入字符,True

print(num.isnumeric())           #字符串中的字符是否都是数字,True

print(alp.islower())             #字符串中的字符是否都是小写字母,True

print(num_alp.isupper())         #字符串中的字符是否都是大写字母,False

print(alp.istitle())             #字符串中的字符是形如标题Hello World,False

print(' '.isspace())             #字符串中的字符是否都是空格,True

print('哈'.isascii())            #字符串中的字符是否可用ascll码表示,汉字是Unicode编码表示的所以是False

 

 4.字符串填充

 

  str='Welcome'

print(str.center(13,'*'))#***Welcome***

print(str.ljust(10,'+')) #Welcome+++

print(str.rjust(10,'-')) #---Welcome

print(str.zfill(10))     #000Welcome

print('-100'.zfill(10))  #-000000100

print('+100'.zfill(10))  #+000000100

 

 5.字符串搜索

 

  str='awasdhiwhhihuasd~hjdsasdihfi'

print(str.index('asd')) #str中有子字符串时回返回收自费所在索引值,若不存在则报错

try:

    print(str.index('aes'))

except ValueError as v:

    print(v)

print(str.find('asd')) #str中有子字符串时会返回首字母所在索引值,若不存在则返回-1

print(str.find('aes'))

print(str.count('asd')) #返回字符串中包含的子串个数

print(str.count('aes')) #不存在则返回0

 

 6.字符串替换

 

  str='hello,world!'

print(str.replace('world','python')) #生成替换字符的复制,hello,python!原字符串str未改变

print(str)          #hello,world!

str='awasdhiwhhihuasd~hjdsasdihfi'

print(str.replace('asd','ASD',2))    #awASDhiwhhihuASD~hjdsasdihfi

 

 

 7.字符串添加

 

  #join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

#用法:str.join(sequence),sequence包括字符串、列表、元祖、集合及字典(字典仅连接key),其中列表、元祖和集合的元素都必须是字符串,否则会报错

lis=['I','am','IronMan!']

print(' '.join(lis)) #I am IronMan!

print('*'.join({'1','2'}))

print('-'.join('ABCD'))

print('+'.join(('a','b','c')))

print('~'.join({'a':1,'b':2

 

 小案例

 •在注册网站时,用户经常需要设置密码,然后程序根据用户输入的密码判断安全级别,具体如下所示:

 •低级密码——包含单纯的数字或字母,长度小于等于8。

 •中级密码——必须包含数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|)中任意两种,长度大于8。

 •高级密码——必须包含数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|)中的3种,长度大于16。

 接下来按照上述要求编写程序,如例所示

 

 

  

 

 本章小结

 本章主要介绍了Python中的字符串,首先讲解了字符串有3种表示方法及字符串中的转义字符,接着讲解了字符串的输入与输出以便程序更好地交互,又讲解了字符串的索引与切片,最后讲解了字符串的运算及常用函数。通过本章的学习,应熟练使用字符串的切片及常用函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值