Python String类型详解

前言

在python中,String是代表Unicode字符的字节数组。但是在python中没有单个的字符数据类型,'a’这种只是长度为1的string

String基本操作

1.创建String

在python中创建字符串可以用单引号,双引号甚至是三引号。

>>>a='ada'
>>>b="dsfsg"
>>>c='''dasfdf'''

>>>a
'ada'
>>>b
'dsfsg'
>>>c
'dasfdf'
2.访问String中的字符

可以用索引(下标)访问字符串中的字符,需要注意的是,在python中索引可以是负数,如-1表示字符串最后一个字符的下标,-2是倒数第二个等。
当下标越界是会报IndexErroer,下标只能是整数,如果是float或其他类型会报TypeError

3.字符串切片

这和列表一摸一样

>>>s="apple and banana"
>>> s[0:10]
'apple and '
>>> s[10:-1]
'banan'
>>> s[-1:4:-1]  #逆序
'ananab dna '
4.删除或更新字符串

注意: 字符串是不可更改的和元组一样,所以不能进行删除和更新单个或多个字符,但是可以删除整个字符串,或更新整个字符串。会有如下报错形式:

>>> s="apple and banana"
>>> s[0]='d'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

>>>s="orange"
>>>s
'orange'

>>> del a[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object doesn't support item deletion

>>> del s  #删除整个s
>>> s
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 's' is not defined
5.python 中的转义字符

在字符串里有单引号或双引号会产生SyntaxError,因为字符串本身就包含了单引号和双引号,因此可以用三引号或转义字符来输出这样的字符串。
用反斜杠做转义字符会有两种用法:如果用单引号来表示字符串,那么字符串里的单引号前都要用转义字符。双引号也同理。

#方式一 直接用三引号表示字符串,就不用在意里面是否有单引号或双引号了
>>> string1=''' I'm  a ''pig'''''
>>> print(string1)
I'm a "pig"
#方式二 
>>> string2=' I\'m  a ''pig'''
>>> print(string2)
I'm a "pig"
#方式三
>>> string3="I'm a \"pig\""
>>> print(string3)
I'm a "pig"

如果在字符串前加R或r可以使转义字符\的功能失效,如

>>> string4=r"I'm a \"pig\""
>>> print(string4)
I'm a \"pig\"
字符串的格式化

python中字符串可以背格式化用format()函数。相关用法如下:

#默认形式
>>> String1 = "{} {} {}".format('Geeks', 'For', 'Life') 
>>> print(String1) 
Geeks For Life

#有定位的格式化
>>> String1 = "{1} {0} {2}".format('Geeks', 'For', 'Life') 
>>> print(String1)
For Geeks Life

#关键字的格式化
>>> String1 = "{l} {f} {g}".format(g = 'Geeks', f = 'For', l = 'Life') 
>>> print(String1) 
Life For Geeks

整型如二进制,十六进制等还有浮点型消暑可以被以指数形式表示,如

#整型的格式化
>>>String1 = "{0:b}".format(16) 
>>> print(String1) 
10000

#浮点型的格式化
>>> String1 = "{0:e}".format(165.6458) 
>>> print(String1)
1.656458e+02

#四舍五入的整型
>>> String1 = "{0:.2f}".format(1/6)
>>> print(String1)
0.17

String 的函数

内置函数描述
String .isdigit()如果字符串都是数字返回True,反之返回False
String.isalpha()如果字符串的字符都是按字典顺序排列返回True,否则返回False
String.index(ele)返回第一个ele元素的下标,如果没有会报错
String.replace(new,old)返回原来字符串的拷贝,这个拷贝中将old的元素都替换成了new的元素
String.lower()返回原来字符串的拷贝,这个拷贝将所有大写字符转成小写字符
String.upper()同理
String.count(ele)返回ele出现的次数
String.split(ele)返回一个列表,这个列表按照ele元素将字符串进行分隔,如果ele不再字符串中,或者没有输入ele,默认直接返回字符串本身的列表
String.join(seq)返回一个字符串,这个字符串将seq的每个元素都插入String,如果不想插入,String可以是’'空字符

申明:本文主要是翻译英文网站的文章,并不是严格的翻译,主要是为自己日后学习,或读者使用,如有侵权会马上删除,有翻译不好的地方也请指出。
英文原文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值