参考链接: 如何在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种表示方法及字符串中的转义字符,接着讲解了字符串的输入与输出以便程序更好地交互,又讲解了字符串的索引与切片,最后讲解了字符串的运算及常用函数。通过本章的学习,应熟练使用字符串的切片及常用函数

[转载] python 字符串切片_Python字符串相关推荐

  1. 字符串切片反转字符串_如何反转字符串

    字符串切片反转字符串 Can you write a function that reverses an inputted string without using the built-in Arra ...

  2. python字符串 切片_Python切片字符串

    python字符串 切片 Python string supports slicing to create substring. Note that Python string is immutabl ...

  3. python统计字符串个数_python字符串中字符出现次数(python获取字符串个数)

    原博文 2020-03-17 19:25 − 今天要说的是Python的字符串函数还是很方便的,只需要调用 count() 方法即可. 最近,我在一个网站上看到了一个自然语言处理课程.我详细解释了一些 ...

  4. python字符串功能_python字符串内置功能

    str.capitalize() --> String 返回字符串,其首字母大写,其余部分小写 1>>> str = "TEST" 2>>> ...

  5. python不支持字符类型、单个字符也作为字符串使用_Python 字符串

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var ...

  6. python字符串添加_python字符串的增删改查

    字符串增加 直接 + name = 'de8ug' city = 'beijing' info = name + ' ' + city info 'de8ug beijing' % 占位符替换 'na ...

  7. python字符串描述_Python字符串

    字符串是Python中最受欢迎.最常使用的数据类型.可以通过用引号括起字符来创建它们. Python将单引号与双引号相同.创建字符串和向一个变量赋值一样简单. 例如 - var1 = 'Hello W ...

  8. Python字符串类型:字符串索引、字符串切片、字符串format()方法格式化、字符串操作符、字符串处理函数

    字符串:由0个或多个字符组成的有序序列sequence. 一.字符串表示方式:2类4种 由一对单引号或双引号表示,该方式仅用于表示单行字符串 由一对三单引号或三双引号,该方式可以表示多行字符串 如果希 ...

  9. python 字符串函数_Python字符串函数

    python 字符串函数 Python provides a lot of built-in functions to manipulate strings. Python String is imm ...

最新文章

  1. 机器学习中的算法(4.3):SVM----针对线性不可分问题理解
  2. 【Java】Cloneable 接口讲解 (包含浅拷贝与深拷贝不一样的实现讲解)
  3. python 基础教程:字符串内建函数之大小写的区别
  4. Android学习之Shared Preference
  5. DirectX11中XNA数据库常见的几个函数
  6. 【MySQL】性能优化之 Index Condition Pushdown
  7. 《C程序设计新思维》一第6章 玩转指针6.1 自动、静态和手工内存
  8. Vue 路由的模块化
  9. 郝斌数据结构与算法自学视频教程
  10. Windows 各版本默认自带IE版本
  11. Win10怎么查找产品密钥? Win10产品密钥的3种查找方法
  12. 2021-09-30 node上传文件的问题以及如何选择适合自己的插件
  13. 郑州财经学院第54次全国计算机,听爷爷讲故事
  14. 阿里云部署vmware报错
  15. 计算机树的逻辑结构,树结构(示例代码)
  16. AR/VR技术在旅游业+零售业的应用
  17. 下载网页所有图片的最简单的方法
  18. HC-SR04超声波测距模块的高精度使用方法
  19. 【Benewake(北醒) 】中距 TF02-Pro 40m介绍以及资料整理
  20. Duplicate method name “$$$getFont$$$“ with signature “(Ljava.lang.String;IILjava.awt.Font;)Ljava.awt

热门文章

  1. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(8)签到题5题
  2. Win10删除资源管理器左侧的Onedrive图标
  3. 华晨中华v3车质量怎么样_宝马发动机加持,销量仅个位数?这些车有点惨
  4. JavaScript数据类型之比较运算符(8)
  5. mysql_ init数据类型_mysql数据类型
  6. 千寻位置 开发demo_CICV2019:博世相对高精度定位与千寻绝对高精度定位
  7. Unity3D基础15:触发器
  8. Wannafly挑战赛19:B. 矩阵(单调栈)
  9. 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
  10. 吴恩达神经网络和深度学习-学习笔记-17-batch归一化(Batch Normalization)(BN)