python处理字符串这么强吗


一、python中的字符串长什么样?

str_test = 'hello world'
str_test = "hello world"
str_test = """hello world"""

python中双引号, 单引号或者三引号里面的数据都是字符串

二、字符串的输入输出

# 输入
user_name = input("请输入用户名")
# 输出
print("用户名为: %s" % user_name)
# input 和 print 同 c++ 里 cin, cout

三、先来了解下什么是切片

字符串实际上就是字符的数组,所以也支持下标索引, 如果有字符串:name = ‘abcdef’,在内存中的实际存储如下:

下标切片
如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

   name = 'abcdef'

   print(name[0])  # a
   print(name[1])  # b
   print(name[2])  # c

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长]

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

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

     name = 'abcdef'
     print(name[0:3]) # 取下标 0~2 的字符 "ab"  

划重点, 面试经常问到切片的问题, 不是什么难点, 但是容易疏忽, 切片可以正着取也可以倒着取, 步长可正可负, 需要自己动手练习一下

四、字符串的常见操作

     mystr = 'hello world python and cpp'

1.find 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

     mystr.find(str, start=0, end=len(mystr)) 

2.index 跟find()方法一样,只不过如果str不在 mystr中会报一个异常

     mystr.index(str, start=0, end=len(mystr)) 

3.count 返回 str在start和end之间 在 mystr里面出现的次数

     mystr.count(str, start=0, end=len(mystr))

4.replace 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

     mystr.replace(str1, str2,  mystr.count(str1)) 

5.split 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串

     mystr.split(str=" ", 2)  

replace 和 split 真的很强大, 用好了处理字符都不需要正则

6.capitalize 把字符串的第一个字符大写

     mystr.capitalize()

7.title 把字符串的每个单词首字母大写

     a = "hello world"
     a.title()  # Hello World

8.startswith 检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False

     mystr.startswith("hello"")

9.endswith 检查字符串是否以obj结束,如果是返回True,否则返回 False.

     mystr.endswith("hello")

10.lower 转换 mystr 中所有大写字符为小写

     mystr.lower()  

11.upper 转换 mystr 中所有大写字符为大写

     mystr.upper()  

12.ljust 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

     mystr = "hello"
     mystr.ljust(10)  # 'hello     ' 

13.rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

     mystr = "hello"
     mystr.rjust(10)  # '     hello' 

14.center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

15.lstrip 删除 mystr 左边的空白字符

16.rstrip 删除 mystr 字符串末尾的空白字符

17.strip 删除mystr字符串两端的空白字符

18.rfind 类似于 find()函数,不过是从右边开始查找

19.rindex 类似于 index(),不过是从右边开始

20.partition 把mystr以str分割成三部分,str前,str和str后

21.rpartition 类似于 partition()函数,不过是从右边开始

22.splitlines 按照行分隔,返回一个包含各行作为元素的列表

23.isalpha 如果 mystr 所有字符都是字母 则返回 True,否则返回 False

24.isdigit 如果 mystr 只包含数字则返回 True 否则返回 False

25.isalnum 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

26.isspace 如果 mystr 中只包含空格,则返回 True,否则返回 False

27.join mystr 中每个元素后面插入str,构造出一个新的字符串

     my_str = " "
     my_list = ["my", "name", "is", "罗罗诺亚.索隆"]
     my_str.join(my_list) # "my name is 罗罗诺亚.索隆"

总结

字符串的操作就这么多了, 细心的小伙伴是不是发现中间一部分示例都不给了, 的确是因为不常用, 弱水三千我只取一瓢, 还是要提一句, replace 和 split 真的很强大, 用好了什么正则不正则, 完全横着走!

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值