python 字符串操作
str1 = " nice to \t \n meet you \t \n "
str2 = "9999 nice to \t 9 \n meet you \t \n 99999999"
str3 = "nice to meet you"
增
(1)将全部由字符组成的列表合拼成一个字符串
list1 = ['m', 'e', 'y', 'u']
或list1 = list("meet you")
"".join(list1)
注1:可指定合成字符串的链接符,例如"|".join(list1)
注2:若列表中有非字符元素,该方法会报错。可通过str()方法,将元素转换,例如str(1)
(2)将非字符转换成字符或字符串
str(123456123)
(3)从键盘输入的内容默认作为字符串处理
name = input("Please input your name : ")
注:字符串"Please input your name : "为输入提示符
若将输入的内容转换成其他数据类型,需要相应转换
例如: age = int(input("Please input your age : "))
可通过type(name)方法判定数据类型。
(4)链接字符串生成新字符串
可使用str = str1 + str2
据说python中使用“+”链接符,会影响效率,但从功能实现上没有问题。
删
(1)删除字符串开头和末尾的空白字符
str1.strip()
注:空白符包括: 若干空格,tab键(\t ),换行符( \n)
(2)删除字符串开头和末尾的制定字符
str2.strip('9')
(3)删除字符串
del str2
改
(1) 字符全部大写
str3.upper()
(2)字符全部小写
str3.upper().lower()
(3)字符串首字符大写
str3.capitalize()
查
(1-1)查找字符串中某字符或字符串的下标(第一个满足条件的某字符或字符串)(推荐)
str1.find('meet')
注:'meet'为字符串中的字符串
注:该方法,查找元素没有,会返回-1。
(1-2)查找字符串中某字符或字符串的下标(第一个满足条件的某字符或字符串)(不推荐使用)
str1.index('e')
注:'e'为字符串中的字符
注:该方法,查找元素没有,会报错。
(2)统计字符串中某字符或字符串的个数
str1.count('e')
注:'e'为字符串中的元素
(3) 计算字符串的总元素个数
len(str1)
(4)判断某字符或字符串是否在字符串中存在
if 'e' in str1:
print("'e' in str1")
(5)字符串是否是数字组成
str1.isdigit()
(6)字符串是否是数字和字母组成
str1.isalnum()
(7)字符串是否以某字符或字符串开始
str1.startswith("meet")
(8)字符串是否以某字符或字符串结尾
str1.endswith("you")
其他
(1) 切片
a)不写步长,默认为1
str3 = "nice to meet you"
str3[1:6] #'ice t',虎头蛇尾(下标从1到5)
str3[:3] #'nic' 下标从0到2
str3[8:] #'meet you' 下标从8到最后
b)指定步长
str3[1:6:2] #'iet'
注:2表示步长为2
c)str3[:i] + str3[i:] == str3
d) str3 与 str3[:] 的字符串内容相同,同时他们是一个字符串。
可以通过 id(str3) , id(str3[:]) 确认
原因:字符串为常量,一旦生成,不可修改。
(2)格式化
方式一:
msg1 = "hi {name}, his {age}"
msg1.format( name='Li', age=20)
注:name和age是变量
方式二:
msg2 = "hi {0}, his {1}"
msg2.format( 'Li', 20)
方式三:
print("age=%s, name=%s" % (25, 'zh'))
print("name=%s" % 'zh')
(3)输出格式布局
a)居中打印信息
"start test".center(60, '-')
效果是-------------------------start test-------------------------
b)打印某字符若干
print("-" * 60)
(4)字符分割
a) 默认以空白符分割
str3.split()
b)指定分割符
str3.split('t')
注:分割的结果为一个列表