Python学习笔记——有关字符串的操作

目录

1.字符串

2.切片与下标 

3.一些常用的函数操作


1.字符串

字符串 ‘带引号的内容就是字符串’ 单引号、双引号、三引号都可以

my_str = '''w'''
name = 'wrx'
age = "18"
print(type(my_str), my_str)
print(type(name), name)
print(type(age), age)

# <class 'str'> w
# <class 'str'> wrx
# <class 'str'> 18

如果字符串本身包含单引号,则使用双引号定义;如果包含双引号,可以用单引号定义,或者统一使用三引号

在python中,字符串可以乘以一个整数

ss = ' ** ** '
sss = ss * 2
print(sss)

#  ** **  ** ** 

字符串输入
        input()得到的就是字符串
字符串输出

name = 'wrx'
age = 18
print(age)
print('%s' % name)
print(f'我的名字是{name} 年龄是{age}')    # 只要是引号就行 前面加f或F都行

# 18
# wrx
# 我的名字是wrx 年龄是18

2.切片与下标

  • 下标(索引):
            支持正数下标与负数下标

# 0   1   2   3   4    支持正数下标(整数) 从0开始
# h   e   l   l   o
# -5  -4  -3  -2  -1   也支持负数下标 最后一个为-1
my_str = 'hello'

下标的使用语法变量[下标]

print(my_str[-4])

# e

len()函数可以得到字符串的长度:

print(len(my_str))    # { len(my_str) - 1 } 即为最后一个元素的正数下标

# 5
  • 切片 :

        对操作对象截取其中一部分  字符串、列表、元组都支持该操作 --> 会得到一个新的字符串
 

语法:
        变量[起始:结束:步长]


选择的区间从'起始'位开始,到'结束'位的前一位结束(不包含结束位本身),步长表示选取间隔
 

切片可以获得一段数据(多个数据)  下标只能获得一个数据
# start 开始位置下标
# end 结束位置下标
# step 步长 下标之间的间隔 默认为1(为1时可不写)  可以为负数
从start到end 每间隔step取一次
my_str = 'hello'

my_str0 = my_str[:]   # 得到和原来一样的字符串

my_str1 = my_str[0:5:2]
print(my_str1)

# hlo

my_str2 = my_str[0:2]  # 默认step为1
print(my_str2)

# he

my_str3 = my_str[0::3]  # end位置不写默认为len() 即可以取到最后一个元素 !! 但是冒号要写
print(my_str3)

# hl

my_str4 = my_str[:3]  # start位置不写 默认为0  !!  但是冒号要写
print(my_str4)

# hel

my_str5 = my_str[-4:-1]   # 也可以用负数下标
print(my_str5)

# ell

my_str6 = my_str[3:0:-1]  # step为负数时 start可以小于end  (倒着取)
print(my_str6)

# lle

my_str_ni = my_str[::-1]  # 字符串的逆置
print(my_str_ni)

# olleh

3.字符串的常见操作

<1>. find
        检测一个字符串a是否包含在字符串b中 如果是返回start索引值 不是返回-1

        若my_str中存在多个str片段 找到第一个后即停止

my_str.find(str, start, end)

# str:要在字符串中查找的内容 类型也是str
# start:开始位置 从哪里开始查找 默认是0
# end:结束位置 查找到哪里结束 默认是len() 例如end=5 最后一个查找的下标为4
# 返回值:即方法执行的结果是什么 如果找到str 返回str在my_str中位置正数下标 没有找到返回-1

my_str = 'this world is very beautiful'

index = my_str.find('world', 0, 10)

print(my_str.find('world', 3, 5))
print(index)

# rfind    从右边(后边)开始查找
print(my_str.rfind('world'))

# -1
# 5
# 5

<2>.index
        与find用法一致 唯一区别为 若未找到字符串 index会报错

print(my_str.index('tif'))

# rindex    从右边(后边)开始找
print(my_str.rindex('very'))

# 23
# 14

<3>.count()
        统计出现的次数 用法与find一样

print(my_str.count('is', 10))

# 1

<4>.字符串的替换  replace()
        把my_str中的str1 换成 str2  若count指定  则替换不超过(<=)count次

my_str.replace(str1, str2, count)
# count默认为my_str.count(str1)
# 返回值得到一个新的字符串 不会改变原来的字符串

my_str1 = my_str.replace('is', 'are', 1)
print(my_str1)

# thare world is very beautiful

<5>.split()
        以str作为分隔符切片my_str  若maxsplit有指定值 则仅分割maxsplit+1个子字符串

my_str.split(str=' ', maxsplit)
# str默认为空白字符 【空格 tab键】
# maxsplit 默认为全切割 为my_str.count(str)
# 返回值为一个列表 []


my_str2 = my_str.split("is", 1)     # 从左切割
print(my_str2)

# ['th', ' world is very beautiful']

my_str3 = my_str.split()   # 默认按空白字符切割
print(my_str3)

# ['this', 'world', 'is', 'very', 'beautiful']

# rsplit() 从右边开始切割
my_str4 = my_str.rsplit('is', 1)    #  从右切割
print(my_str4)

# ['this world ', ' very beautiful']

<6>.字符串的连接  join

my_str.join(可迭代对象)   该对象可为str 列表(需要列表中每一个数据都是str类型)
# 将my_str插入到str中每个元素之间 构造出一个新的字符串 (把前面的插入到后面的里面去)


my_str5 = '_'.join('hello')
print(my_str5)

my_str6 = 'is'.join(my_str4)   # my_str4为列表 把'is'插入到列表中的每个数据之间
print(my_str6)

# h_e_l_l_o
# this world is very beautiful

一些其他的操作:

my_str = 'hello__this__world'
s1 = '          hello          '

<1>.capitalize  把字符串中第一个字符大写 得到一个新的字符串

my_str1 = my_str.capitalize()
print(my_str1)

# Hello__this__world

<2>.title 把字符串中 每一个单词(以空格分隔辨别)的首字母都大写

my_str2 = my_str.title()
print(my_str2)

# Hello__This__World

<3>.upper 所有字符变大写

my_str3 = my_str.upper()
print(my_str3)

# HELLO__THIS__WORLD

<4>.lower 所有字符变小写

my_str4 = my_str3.lower()
print(my_str4)

# hello__this__world

<5>.startswith  /  endswith

        my_str.startswith(str) 检查字符串是否以str开头

        my_str.endswith(str) 检查字符串是否以str结尾

        是则返回True 否则返回False

my_str5 = my_str.startswith('h') 
my_str6 = my_str.endswith('ddsad') 
print(my_str5) 
print(my_str6)

# True
# False

<6>.center(width)

         返回一个 原字符串居中、使用空格填充至长度width的 新字符串

my_str7 = my_str.center(50) # 输出占宽50个单位 字符串居中

print(my_str7)

#                 hello__this__world                

<7>.ljust(width)

         返回一个 原字符串左对齐、使用空格填充至长度width的 新字符串

my_str8 = my_str.ljust(30) 
print(my_str8)

# hello__this__world            

<8>.rjust(width)

         返回一个 原字符串右对齐、使用空格填充至长度width的 新字符串

my_str9 = my_str.rjust(30) 
print(my_str9)

#             hello__this__world

<9>.  lstrip() 去除字符串左边的空白字符

         rstrip() 去除字符串右边的空白字符

        strip() 去除字符串两边的空白字符

        不可以去除字符串中间的空白字符

print(s1.lstrip()) 
print(s1.rstrip()) 
print(s1.strip())

# hello          
#           hello
# hello

<10>.partition(str)

           把字符串分为 str前、str、str后

print(my_str.partition('__'))

# ('hello', '__', 'this__world')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值