Python:基础数据类型--字符串

基础数据类型:字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。字符串为不可变类型

var1 = 'Hello World!'
var2 = "Python Runoob"

python3中,字符前缀
  r'xxx' r/R:    非转义的原始字符串,以r开头的字符,常用于正则表达式,对应着re模块
  b'xxx' b:     BYTE字符串,可以使用encode('utf-8')转换为
  u'xxx' u/U:  表示unicode字符串,不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。

字符串:拼接

使用'+'加号连接两个字符串,可将两个字符串拼接在一起

s1 = 'foo'
s2 = 'python'
print(s1 + s2)
字符串*数字,通过'*'信号连接,重复该字符串多少次
print('坚强'*8)

字符串:切片

‘[]’中括号,通过索引获取字符串中字符。第一个字符的索引为0

s = 'alexwusirritian'
s1 = s[0]
print(s1)
a
s = 'alexwusirritian'
s1 = s[-1]
print(s1)
n

截取字符串中的一部分的方法为:s[起始索引:结束索引+1:步长],顾头不顾尾

反向索引开始为-1,依次类推。

s = 'alexwusirritian'
s1 = s[0:4]
print(s1)
alex
s = 'alexwusirritian'
s1 = s[:4]         #起始索引开始,默认可以不写
print(s1)
alex
s = 'alexwusirritian'
s1 = s[9:]         #结束索引为末尾,默认可以不写
print(s1)
ritian
s = 'alexwusirritian'
s1 = s[:5:2]       #:2表示指定步长,默认为1
print(s1)
aew
s = 'alexwusirritian'
s1 = s[-1:-5:-1]   #从后向前切片,步长为-1
print(s1)
nait

字符串:常用方法

 capitalize() 首字母大写其余字母小写

s = 'alexWUsir'
s1 = s.capitalize()
print(s1)
Alexwusir

swapcase() 大小写反转

s = 'alexWUsir'
s1 = s.swapcase()
print(s1)
ALEXwuSIR

title() 非字母隔开的每个单词的首字母大写

s = 'alex wusir*taibai2ritian'
s1 = s.title()
print(s1)
Alex Wusir*Taibai2Ritian

center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。

s1 = s.center(30,)
s2 = s.center(30,'*')
print(s1)
print(s2)
alex wusir
*taibai2ritian ***alex wusir*taibai2ritian***

upper(),lower() 全部大写和全部小写

s = 'alex wusir*taibai2ritian'
s1 = s.upper()
s2 = s.lower()
print(s1)
print(s2)
ALEX WUSIR
*TAIBAI2RITIAN alex wusir*taibai2ritian

startswith(),endswith() 判断是否以指定字符开头或结尾,是返回True,否返回False

s1 = s.startswith('a')
s2 = s.startswith('alex',5,len(s))    #startswith 可以指定匹配的索引范围,默认开始为0,结束为字符串的长度
s3 = s.endswith('esir')
print(s1)
print(s2)
print(s3)
True False False

strip()  默认去除字符串前后的空格,换行符,制表符。lstrip()去除前面   rstrip()去除后面

s = '   alexWUsir	'
s1 = s.strip()
print(s1)
alexWUsir
ss = 'abclaonanhaiq'
ss1 = ss.strip('abqc')   #指定字符串去除
print(ss1)
laonanhai


replace() 替换,默认替换匹配到的全部字符。

s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙'
s1 = s.replace('alex', 'SB')
s2 = s.replace('alex', 'SB',1)     #只替换第一个查找到的字符
print(s1)
print(s2)
SB 分甘共苦老地方 SB 风刀霜剑卡乐芙 SB 分甘共苦老地方 alex 风刀霜剑卡乐芙

split() 字符分隔,分隔后会产生一个新的列表。 str--->list

s1 = 'alex wusir taibai ritian'
s2 = 'alex,wusir,taibai,ritian'
s3 = 'alexwusirtaibairitian'
l1 = s1.split()        #默认以空格分隔 
l2 = s2.split(',')      #指定分隔符为','
l3 = s3.split('a')      #指定分隔符为'a'
l4 = s3.split('a',2)        #指定分隔符为'a',并且只分隔前2次
print(l1)
print(l2)
print(l3)
print(l4)
[
'alex', 'wusir', 'taibai', 'ritian'] ['alex', 'wusir', 'taibai', 'ritian'] ['', 'lexwusirt', 'ib', 'iriti', 'n'] ['', 'lexwusirt', 'ibairitian']

 join() 用于将序列中的元素以指定的字符连接生成一个新的字符串。  list ----> str

l1 = ['alex', 'wusir', 'ritian']
s1 = ' '.join(l1)         #默认为空格连接
print(s1,type(s1))

alex wusir ritian <class 'str'>

find() index() 通过元素找索引。index找不到会报错终止程序,而find找不到返回-1。 推荐使用find

s = 'alexwausir'
s11 = s.find('e')
s12 = s.find('ex')
print(s11,type(s11))
print(s12,type(s12))

2 <class 'int'>
2 <class 'int'>       #多个字符,返回查找到的第一个字符的索引
s = 'alexwausir'
s11 = s.find('a',1)   #从下标1开始查找
print(s11)

3

isdigit() 检测字符串是否只由数字组成

str = "123456";  # Only digit in this string
print str.isdigit();

str = "this is string example....wow!!!";
print str.isdigit();


True
False

如何判定字符串是否为空

str=""
str2="abc"

print
(not str) print(not str2) True False
原文地址:https://www.cnblogs.com/bailo/p/9031001.html