#!/usr/bin/env python
'''
字符串特点:有序、可重复、不可变的
什么是字符串???
字符串是以单引号或者双引号括起来的任意文本
'abc'
"abc"
'''
# 创建字符串
str1 = 'peng wei is good man!'
str2 = "peng wei is good man!"
# 拿到字符串中指定下标的元素:str[index]
# 字符串运算
str3 = 'peng'
str4 = 'wei'
str5 = str3 + str4
print('str3 = ',str3)
print('str4 = ',str4)
print('str5 = ',str5)
# 输出重复字符串
str6 = 'peng'
print(3 * str6)
# 访问字符串中某一个字符:字符串[下标],下标从0开始
str7 = 'peng'
print(str7[2])
# 字符串的截取:包左不包右
str8 = 'peng wei is good man!'
str9 = str8[:3] # 从下标0截取到下标2
str10 = str8[1:3] # 从下标1截取到下标2
str11 = str8[1:] # 从下标1截取到最后
str12 = str8[-1] # 截取最后一个字符
str13 = str8[7:-1] # 从下标7截取到下标倒数第二个
str14 = str8[0:-1] # 从下标0截取到下标倒数第二个
print('str9 =',str9)
print('str10 =',str10)
print('str11 =',str11)
print('str12 =',str12)
print('str13 =',str13)
print('str14 =',str14)
str15 = 'peng wei is good man!'
if 'peng' in str15:
print("peng在符串中")
if 'chen' not in str15:
print("chen不在符串中")
# 占位符:%d(整数) %s(字符串) %.nf(浮点数,n表示保留小数点后n位)
str16 = "peng wei"
age = 18
money = 123456.12345
# 换行符 \n
print('name = %s\nage = %d\nmoney = %2.f' %(str16,age,money))
# 转义字符\
print('peng wei is \'good man\'')
# 制表符 \t
# r加在一个字符串的前面,表示字符串中的字符都失去特殊含义
print(r'D:\pw\PythonProject\PyProject')
print('D:\\pw\\PythonProject\\PyProject')
# 字符串中的方法:
# 1、eval(str) 将字符串当着有效的表达式(只能包含运算符和数字),并返回计算结果
print(eval('123'))
print(eval('12+3'))
print(eval('12-3'))
print(eval('-123'))
print(eval('+123'))
print(eval('12*3'))
# 2、len(str) 返回字符串的长度(字符串的个数)
str17 = 'peng wei is good man!'
print(len(str17))
# 3、upper()将字符串全部转换成大写
str18 = 'peng wei'
print(str18.upper())
# 4、lower()将字符串全部转换成小写
str19 = 'CHEN LI JUAN'
print(str19.lower())
# 5、swapcase()小写转大写,大写转小写
str20 = 'Peng WEI'
print(str20.swapcase())
# 6、capitalize() 首字母大写
str21 = 'PENG wei Is gOOD mAn'
print(str21.capitalize())
# 7、title() 每个单词的首字母大写
str22 = 'PENG wei Is gOOD mAn'
print(str22.title())
# 8、center(width,fillchar) 返回指定宽度剧中的字符串,fillchar是填充的内容
str23 = 'PENG wei Is gOOD mAn'
print(str23.center(40,'*'))
# 9、ljust(width,fillchar) 返回指定宽度剧左的字符串,fillchar是填充的内容
str24 = 'peng wei'
print(str24.ljust(30,'$'))
# 10、rjust(width,fillchar) 返回指定宽度剧右的字符串,fillchar是填充的内容
str24 = 'peng wei'
print(str24.rjust(30,'$'))
# 11、count(str,start,end) 返回指定字符串在指定区间中出现的次数(不指定区间,表示整个字符串)
str25 = 'peng wei is good man'
print(str25.count('o',12,14))
print('#############################')
# 12、find(str,start,end)返回指定字符串在指定区间中第一次出现的下标(不指定区间,表示整个字符串)
str26 = 'peng wei is good man good man'
print(str26.find('good'))
print(str26.find('good',13))
print('#############################')
# 13、rfind(str,start,end)返回指定字符串在指定区间中第一次出现的下标
# (从右侧开始,不指定区间,表示在整个字符串中查找,找不到返回-1)
print(str26.rfind("good"))
print(str26.rfind("good",0,16))
print(str26.rfind("good",0,12))
print('#############################')
# 14、index(str,start,end)返回指定字符串在指定区间中第一次出现的下标
# (不指定区间,表示在整个字符串中查找,找不到就报错)
print(str26.index("good"))
# 15、rindex(str,start,end)返回指定字符串在指定区间中第一次出现的下标
# (从右侧开始,不指定区间,表示在整个字符串中查找,找不到就报错)
print(str26.rindex("good"))
# 16、lstrip(str) 截掉字符串中左侧指定的字符(不指定字符时,默认截取空格)
str27 = '***peng wei si good man!***'
print(str27.lstrip('*'))
# 17、rstrip(str) 截掉字符串中右侧指定的字符(不指定字符时,默认截取空格)
print(str27.rstrip('*'))
# 18、strip(str) 截掉字符串中指定的字符(不指定字符时,默认截取空格)
print(str27.strip('*'))
# 19、split(str) 返回以指定字符串切割后的列表
print(str27.split('*'))
print(str27.split())
# 20、startswith(str) 判断字符串是否是以指定字符开头
str28 = 'peng wei love chen li juan'
print(str28.startswith('**'))
print(str28.startswith('peng'))
print("############################")
# 21、endswith(str) 判断字符串是否是以指定字符结尾
str29 = 'chenlijuan.py'
print(str29.endswith('**'))
print(str29.endswith('.py'))
# 22、replace(oldStr,newStr)
str30 = 'peng love chen 伟'
print(str30.replace('peng','chen'))
# 23、编码
data = str30.encode('utf-8')
# 23、解码
data = str30.encode('utf-8')
print(data.decode('utf-8'))
来源:https://blog.csdn.net/clj5120/article/details/100085416