字符串
1.什么是字符串
- 用引号引起来的一串字符
- 用引号(“ ”)来创建字符串
- 单引号
- 双引号
- 三单引号
- 三双引号
格式:
name = "hangzhou"
area = "gongshu"
history = "2000"
person = """苏轼,许仙,白素贞"""
captical_of = '''吴越,南宋'''
print(type(name),type(area),type(history),type(person),type(captical_of))
注意:
引号的匹配关系,单引号和双引号使用时不可以换行
若换行使用三单引号或三双引号
sent = "i'm lilei" sent2 = '"He is my brother",he said' sent3 = '''轻轻地我走了, 正如我轻轻地来。'''
2.字符串的运算及常见操作
(1)拼接
拼接基于同一种数据类型
a = "Hello"
b = ",Python"
print(a + b)
(2)重复
a = "City_college "
print(a * 3)
(3)索引(偏移)[] 切片[:],[::]
str = "Python"
print(str[2])
#遍历数组
for i in range(len(str)):
print(str[i],end="")
for char in str:
print(char,end = "")
#切片
str = "life is short,you need python."
print(len(str))
print(str[:4])
#翻转输出
str = "life is short, you need python."
print(len(str))
print(str[::-1])
(4)大小写转换
str = "LIFE is short, you NEED python."
print(str.lower()) #转小写
print(str.upper()) #转大写
print(str.swapcase()) #大小写互换
print(str.title()) #转为标题形式
print(str.capitalize()) #首字母大写
#验证码确认
import random
li = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
str1 = ""
str = random.sample(li,6)
for char in str:
str1 += char
print(str1)
print()
str2 = input("请输入验证码:")
if str1.upper() == str2.upper():
print("验证码正确")
else:
print("验证码错误")
(5)字符串的格式输出对齐
格式:
str.center([len],[填充符号]) #居中对齐
str.ljust([len],[填充符号]) #居左对齐
str.rjust([len],[填充符号]) #居右对齐
str.zfill(51) #右对齐,以0填充
demo:
str = "LIFE is short, you NEED python."
print(len(str))
print(str.center(51,'#'))
print(str.ljust(51,"#"))
print(str.rjust(51,"#"))
print(str.zfill(32))
(6)删除指定字符
格式:
str.strip() #删除两边指定字符
str.lstrip() #删除左边指定字符
str.rstrip() #删除右边指定字符
demo:
str = "###LIFE is short, you NEED python.####"
print(str.strip("#"))
(7)计数
格式:
str.count()
demo:
str = "LIFE is short, you NEED python."
print(str.count("o",9,17)) #指定范围内查找指定的参数
(8)字符串搜索定位和替换
格式:
str.find() #查找元素并返回第一次出现时的索引值,查找不到返回-1
str.index() #查找元素并返回第一次出现时的索引值,查找不到报错
str.rindex() #从右往左查找
str.replace([现有字符],[替换字符])
demo:
str = "life is short, you need python."
print(str.find("e",10,23))
print(str.index("e",10,15))
print(str.rindex("e"))
print(str.replace("t","T",2)) #替换前2个指定字符
(9)字符串条件判断
格式:
str.isalnum() #判断字符串有字母或者数字组成
str.isalpha() #判断仅有字母组成
str.isdigit() #判断仅有数字组成
demo:
str = "lifeisshortyouneedpython223"
print(str.isalnum())
print(str.isalpha())
print(str.isdigit())
(10)制表符的转化
格式:
str.expandtabs()
(11)字符串的分割变换
格式:
"字符".join(str) #将指定字符插入到元素之间
str.split("字符") #以指定字符分割并去除该字符
str.partition("字符") #以指定字符分割字符串并保留字符
demo:
str = "LIFE is short, you NEED python."
print("-".join(str))
print(str.split(" "))
print(str.partition(" "))
(12)ASCII值和字符的转化
格式:
chr() #digit--->alpha
ord() #alpha--->digit
demo:
#输出'a'--->'z'
for i in range(ord('a'),ord('z')+1):
print(chr(i),end=" ")
string模块:
import string
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.printable) #0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
print(string.punctuation) #!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
print(string.capwords("a")) #A