2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

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

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

作业回顾

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))
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门