字符串
1.什么是字符串
-
用引号引起来的一串字符
-
用引号来创建字符串
-单引号
-双引号
-三单引号
-三双引号
#创建字符串 name = "Hangzhou" area = 'Gongshu' history = "5000" famous_person = """苏轼,许仙,白素贞""" Captical0f='''吴越,南宋''' print(type(name),type(area),type(history),type(famous_person),type(Captical0f))
结果:<class ‘str’> <class ‘str’> <class ‘str’> <class ‘str’> <class ‘str’>
说明以上数据都是字符串
单引号和双引号使用时需注意匹配关系,且不可以换行
如果需要换行,三单引号或者三双引号
pm = '''轻轻地我走了, 正如我轻轻地来。''' print(pm)
字符串的运算及常见操作
(1)拼接
a= “Hello”
b= “,Python.”
print(a + b)
a = [“Hello”]
b=[“,Python.”]
print(a+b)
拼接基于同一种数据类型
(2)重复
a = “City College”
print(a*3)
(3)索引(偏移)[] 切片[:] [::]
len()方法语法:
len( str )
返回值:返回字符串长度。sr = "Python" print(len(sr)) print(sr[5])
切片 # ##0123456789012345678901234567890 sr = "Life is short,you need python." print(len(sr)) print(sr[1:4:2]) #1代表起始值,4代表终止值(但取不到),2代表步长
(4) 大小写互换
sr .lower() :转小写
sr .upper() :转大写
sr .swapcase() :大小互换
sr .title() :转为标题形式
sr .capitalize() :首字母大写
sr = "life is short,you NEED python." print(sr.lower()) print(sr.upper()) pring(sr.swapcase()) pring(sr .title()) pring(sr .capitalize())
验证码确认
certid = "AbCd" ipt = input("请输入验证码:") if ipt.lower() == certid.lower(): print("输入成功") else:print(“弟弟”) #输入ABCD则也显示成功,无关大小写。
(5)字符串的格式输出对齐
-sr.center([len],[填充符号])
-sr.ljust([len],[填充符号]),居左对齐
-sr.zfill([len]),居右对齐,默认填充0
sr = “Life is short, you need python.” print(sr.ljust(41,‘#’)) print(sr.rjust(41,'#'))
(6)删除指定字符
–sr.strip()
–sr.lstrip()
–sr.rstrip()
sr = “#####Life is short, you need python.#####” print(sr.strip("#"))
若不在同一行,则无法删除
sr = “\n#####Life is short, you need python.#####\n”
(7)计数
– sr.count()
##0123456789012345678901234567890
sr = "Life is short, you need python."
print(sr.count('o',9,17))
#输出结果 2
(8)字符串搜索定位和替换
–sr.find(),查找元素并反返回第一次出现的元素的索引值;查找不到,返回-1
–sr.index(),查找元素并反返回第一次出现的元素的索引值;查找不到,报错
–sr.rindex(),从右往左
–sr.replace([现有],[替新])
##0123456789012345678901234567890
sr = "Life is short, you need python."
print(sr.find('z',19,25))
print(sr.index('e',19,25))
print(sr.rindex('e'))
print(sr.replace('t','T','1'))
(9)字符串条件判断
–isalnum(),判断字符串有字母或者数字组成
–isalpha(),仅有字母
–isdigit(), 仅有数字
#判断是否全为数字
>>> a ="123"
>>> a.isdigit()
True
>>> b ="a123"
>>> b.isdigit()
False
#判断是否全为字母
>>> d ="alx--e"
>>> d.isalpha()
False
>>> c ="alex"
>>> c.isalpha()
True
#判断是否全为数字或者字母
>>> e ="abc123"
>>> e.isalnum()
True
(10)制表符的转化
—sr.expandtabs()
nm = "012345678901234567890123456789"
sr = "Life is short,you nee\td python."
print(nm)
print(sr.expandtabs(4))
(11)字符串的分割变换
– join(),将指定字符插入到元素之间
–split(),以指定字符分割字符串并去除该字符
–partition(),以指定字符分割字符串并保留该字符
#sr = "Life is short,you need python."
#print('+'.join(sr))
li = ["I ","Love ","Python."]
print(''.join(li))
print(sr.split('o',2))
print(sr.partition('0'))
(12)ASCII值何字符转化
—chr()dight ---->alpha
—ord()alpha ---->dight
for i in range(ord('a'),ord('z')+1):
print(chr(i),end=" ")
拓展
string模块
import string
print(dir(string))
结果:
[‘Formatter’, ‘Template’, ‘_ChainMap’, ‘_TemplateMetaclass’, ‘all’, ‘builtins’, ‘cached’, ‘doc’, ‘file’, ‘loader’, ‘name’, ‘package’, ‘spec’, ‘_re’, ‘_string’, ‘ascii_letters’, ‘ascii_lowercase’, ‘ascii_uppercase’, ‘capwords’, ‘digits’, ‘hexdigits’, ‘octdigits’, ‘printable’, ‘punctuation’, ‘whitespace’]
import string
print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
(13) 格式化输出
输出八进制数和十六进制数
for i in range(8):
print(oct(i),end=" ")
print()
for i in range(16):
print(hex(i),end=" ")
#输出结果:
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
print()
print('%o'%17) #八进制
print('%x'%17) #十六进制