python(day014——字符串2)

本文深入讲解了Python中字符串的各种操作技巧,包括编码解码、修改、常用方法如split、join、count等,以及字符串的格式化输出、查找、替换等功能。通过实例演示,帮助读者掌握字符串处理的核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.编码和解码

>>> s="abc"
>>> type(s)
<class 'str'>
>>> s=b"abc"
>>> type(s)
<class 'bytes'>
>>> s=b"中"
  File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> s="中"
>>> type(s)
<class 'str'>
>>> s1=s.encode("gbk")
>>> s1
b'\xd6\xd0'
>>> type(s1)
<class 'bytes'>
>>> s1.decode("gbk")
'中'

2.修改字符串(字符串不能修改,只能改成list后修改)

>>> a
'hello'
>>> list(a)
['h', 'e', 'l', 'l', 'o']
>>> a
'hello'
>>> s=list(a)
>>> del s[1:4]
>>> "".join(s)
'ho'

3.常用的字符串方法:

*split:分割字符串

>>> "a b c d".split()
['a', 'b', 'c', 'd']
>>> "a\nb\tc\rd e".split()
['a', 'b', 'c', 'd', 'e']
>>> "a||b||c||def".split("||")
['a', 'b', 'c', 'def']

*splitlines:按行分割

>>> "a\nb\tc\rd e".splitlines()
['a', 'b\tc', 'd e']
>>> "a\nb\tc\rd e".split()
['a', 'b', 'c', 'd', 'e']
>>> "a\n\rb\tc\r\nd e".splitlines()
['a', '', 'b\tc', 'd e']

>>> import os
>>> os.linesep
'\r\n'

>>> "a\rb\rc".splitlines()
['a', 'b', 'c']
>>> "a\rb\rc".splitlines(13)  #如果想保留\r
['a\r', 'b\r', 'c']

*join:拼接

>>> "".join(["1","2","hello"])
'12hello'
>>> "**".join(["1","2","hello"])
'1**2**hello'

*count :统计

>>> a
'1**2**hello'
>>> a.count("*")
4
>>> a.count("**")
2

*strip:移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。中间不会清掉。

>>> "      a  bc  \r  \t  \n  ".strip()
'a  bc'
>>> "aabbccdd".lstrip("a")
'bbccdd'
>>> "aabbccdd".rstrip("d")
'aabbcc'
>>> "aabbccddaa".strip("a")
'bbccdd'
>>> "abcabbccddaabc".strip("abc")
'dd'
>>> "abcabbccdaabbccdaabc".strip("abc")
'daabbccd'

*lower、upper、title

>>> a="i am a girl".upper()
>>> a
'I AM A GIRL'
>>> a.lower()
'i am a girl'
>>> a=a.lower()
>>> a
'i am a girl'
>>> a.title()
'I Am A Girl'

*find和index

>>> "abcdefg".find("cd")  #找到cd的坐标
2  
>>> "abcdefg".find("cdf")  #找不到返回-1
-1
>>> "abcdefg".index("cd")
2
>>> "abcdefg".index("cdf")  #找不到抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
#解决,加个try
>>> try:
...     "abcdefg".index("cdf")
... except:
...      print("cdf is not found")
...
cdf is not found

*center:居中显示,一般用于格式化字符串输出

*ljust:居左显示

*rjust:居右显示

>>> "abc".center(10)
'   abc    '
>>> "abc".center(10,"*")
'***abc****'
>>> "abc".ljust(10,"*")
'abc*******'
>>> "abc".rjust(10,"*")
'*******abc'

*replace:替换

>>> "abcd".replace("ab","hello")
'hellocd'

*capitalize:首字母大写

>>> "i am a boy!".capitalize()
'I am a boy!'

 


*startswith()和endswith():判断是否以某字符串开头/结尾

>>> "i am a boy!".startswith("i")
True
>>> "i am a boy!".startswith("I")
False
>>> "i am a boy!".startswith("am")
False
>>> "i am a boy!".endswith("!")
True

*isdigit():判断字符串全部都是数字,小数点也是False

*isnumeric:判断字符串全部都是数字,小数点也是False

区别:待补充

>>> "123".isdigit()
True
>>> "123.0".isdigit()
False
>>> "123".isnumeric()
True
>>> "123.0".isnumeric()
False

*isupper:判断是否为大写

*islower:判断是否为小写

>>> a
'i am a girl'
>>> a.islower()
True
>>> a.isupper()
False
>>> (a.upper()).isupper()
True

练习:

1.字符串反转

a="helloword"
a=list(a)
a.reverse()
print("".join(a))



a="helloword"
result=""
for i in range(len(a)-1,-1,-1):
    result+=a[i]

print(result)


a="helloword"
result=""
for i in a[::-1]:
    result+=i

print(result)

2.字符串排重

a="abcabc"
result=""
for i in a:
    if i not in result:
        result+=i

print(result)


a="abcabc"
result={}
for i in a:
    result[i]=""
#利用key值唯一性
print(result)
print("".join(result.keys()))


a="abcabc"
result=list({}.fromkeys(a).keys())
print("".join(result))


>>> a="abcabc"
>>> "".join(set(a))
'bca'

3.统计字符串中单词数量

a="I am a boy"
print(len(a.split()))

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值