您当前的位置:首页 > 计算机 > 编程开发 > Python

python精选06集(下标、切片、字符串常见操作)

时间:04-25来源:作者:点击数:

作业回顾

homework01

for n in range(10, 20):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

homework02

number = int(input("请输入整数:"))
print("*" * number)
for __ in range(number - 2):
    print("*" + " " * (number - 2) + "*")
print("*" * number)

一、下标

编程始于生活,其实下标在我们日常生活中随处可见,快递柜的编号、高铁的座位号码等等

1、字符串中的下标

如:name = “Barbara“

name B a r b a r a
下标 0 1 2 3 4 5 6
  • 可见字符串的下标从0开始,下面通过代码来演示一下
name = 'Barbara'
# 输出单个
print(name[0]) #B
print(name[1]) #a
print(name[2]) #r
print(name[3]) #b
# 输出所有
print(name)

二、slice切片

1、定义

  • 切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]

注意:

1、选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

2、步长是切片每次获取完当前元素后移动的偏移量

案例演示

如果取出一部分,则可以在中括号[]中,使用:

如:name = “Barbara“

name B a r b a r a
正向下标 0 1 2 3 4 5 6
逆向下标 -7 -6 -5 -4 -3 -2 -1
name = 'Barbara'
print(name[0:3])	#Bar 取下标为0~2的字符
print(name[0:6])	#Barbar 取下标为0-5的字符
print(name[3:6])	#bar 取下标为3~5的字符
print(name[3:])		#bara 取3到最后的字符
print(name[1:-1])	#arbar 取下标为1开始 到 最后第2个  之间的字符
print(name[:])		    #Barbara 获取全部
print(name[:3])		    #Bar 取下标为0-2的字符
print(name[::2])	    #Braa 从头到尾隔2位输出
print(name[::-1])	    #arabraB 倒序输出(可用于反转字符串)
print(name[-2:-4:-1])	#ra 取倒数第2位到倒数第3位倒数的值
print(name[3:1:-1])	    #br 取第3位到第2位倒数的值

三、字符串常见操作

1、find方法

  • 描述

Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束)

范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

  • 语法
str.find(str, beg=0, end=len(string))
  • 参数

str – 指定检索的字符串

beg – 开始索引,默认为0。

end – 结束索引,默认为字符串的长度。

  • 返回值

如果包含子字符串返回开始的索引值,否则返回-1。

案例演示

 str1 = "this is string example....wow!!!"
#str1 = "01234567890123456789012345678901"
str2 = "exam"
print(str1.find(str2))		#15	目标字符串从15开始
print(str1.find(str2,0,10))	#-1
# 检测 str2 是否包含在 str1中,如果是返回开始的索引值,否则返回-1

2、index方法

  • 描述

Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

  • 语法
str.index(str, beg=0, end=len(string))
  • 参数

str – 指定检索的字符串

beg – 开始索引,默认为0。

end – 结束索引,默认为字符串的长度。

  • 返回值

如果包含子字符串返回开始的索引值,否则抛出异常。

案例演示

str1 = "this is string example....wow!!!"
str2 = "exam"
print(str1.index(str2))      #从首位开始查找
print(str1.index(str2, 10))  #从下标10开始查找
print(str1.index(str2, 40))  #超出范围无法找到 ValueError: substring not found

3、count方法

  • 描述

Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

  • 语法
str.count(sub, start= 0,end=len(string))
  • 参数

sub – 搜索的子字符串

start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。

end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

  • 返回值

该方法返回子字符串在字符串中出现的次数

案例演示

str = "this is string example....wow!!!"
sub = "i"
print("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))
sub = "wow"
print("str.count(sub) : ", str.count(sub))

输出显示

在这里插入图片描述

4、split方法

  • 描述

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

  • 语法

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

  • 参数

str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num – 分割次数。默认为 -1, 即分隔所有。

  • 返回值

返回分割后的字符串列表。

案例演示

str = "this is string example....wow!!!"
print(str.split())   # 以空格为分隔符,包含 \n
print(str.split(' ', 1)) # 以空格为分隔符,分隔成两个

5、join方法

  • 描述

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

  • 语法
str.join(sequence)
  • 参数

sequence – 要连接的元素序列。

案例演示

str = "-"
seq = ("a", "b", "c")   # 字符串序列
print(str.join(seq))    # a-b-c

四、字符串编码

1、编码

  • 字节byte:计算机最小存储单位,等于8 位bit.
  • 字符:单个的数字,文字与符号。
  • 字符集(码表):存储字符与二进制序列的对应关系。
  • 编码:将字符转换为对应的二进制序列的过程。
  • 解码:将二进制序列转换为对应的字符的过程。

2、编码方式

  • ASCII编码:包含英文、数字等字符,每个字符1个字节。
  • GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节。
  • Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节。
  • UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节。

原理图

在这里插入图片描述

注意:含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。

3、相关函数

  • bin(整数) :将整数转换为二进制字符串
  • ord(字符串):返回该字符串的Unicode码
  • chr(整数):返回该整数对应的字符串

案例演示

为了让大家便于理解,以下为ASCII编码表

在这里插入图片描述

注意:含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。

下面进行编码转换

s01 = "b"	
# 字 --> 数
num01 = ord(s01)
print(num01)    #  98  在上图ASCII表中对照

num02 = 97
# 数 --> 字
s02 = chr(num02)
print(s02)    #  a

五、引号

1、单引和双引号的区别

  1. 单引号内的双引号不算结束符
  2. 双引号内的单引号不算结束符

2、单双引号只支持一行

3、三引号作用

  1. 换行会自动转换为换行符\n
  2. 三引号内可以包含单引号和双引号

案例演示

# 双引号
str01= "人生苦短,我用python"
# 单引号
str02 = '人生苦短,我用python'
# 三引号:可见即所得
str03 = '''人生苦短,我用python'''
name04 = """
           人
           生
           苦
           短
          """
# 单引号内的双引号不算结束符
message = '人生苦短".'

输出显示

在这里插入图片描述

六、 转义字符

1、改变字符的原始含义

  • 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。【转义后原字符功能失效】
  • \’ \” \””” \n \ \t \0 空字符

案例演示

# 转义字符方法一:
print('I\'m ok.')
print('I\'m learning\nPython.')
print("\'  \"  \"""  \\n  \\\  \\t  \\0")
# 转义字符方法二:
print(r"I'm ok.")
print(r"I\'m learing\nPython.")
print(r" '  \"  \"""  \\n  \\\  \\t  \\0")

输出显示

在这里插入图片描述

2、原始字符串:取消转义

path = r”C:\Program Files\test.py”

案例演示

#转义方法一:
print("C:\\Program Files\\test.py")
#转义方法二:
print(r"C:\Program Files\test.py")

显示输出

在这里插入图片描述

七、格式化字符串

1、类型码:

	%s 字符串     %d整数     %f 浮点数

案例演示

name = "小明"     # 字符串类型 %s 取值
pay = 100         # 整数类型  %d  取值
back = 3.14159    # 浮点型   %f 取值

print("保留小数点后两位:%.2f"%(back))   #   保留小数点后两位:3.14

# 格式化方法一:   # 小明付款100元找回3.141590
print("%s付款%d元找回%f"%(name,pay,back))
# 格式化方法二:   # 小明付款100元找回3.141590
print("%s付款%d元找回%f"%('小明',100,3.14159))
# 格式化方法三:   # 小明付款100元找回3.14159
print(str(name)+"付款"+str(pay)+"元找回"+str(back))
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门