Python笔记【2】_列表学习
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #字符串:通常有单引号“'”、双引号“"”、三个单引号“'''”或三个双引号“"""”包围的一串字符组成 Str='ABC\tdefGabc\n123DEFgGG' #查看对象的类,或对象所具备的功能 print(dir(str)) #查看str类的源码 # print(help(type(str))) print('Str:',Str) #Python 的字符串内建函数 '''一、大小写字母转换''' print('首字母大写,其他字母小写:',Str.capitalize()) Str1='ЛЮЯШЩабжз'#俄文 print('所有大写转换成小写:',Str1.casefold()) #对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法 print('A~Z中大写转换成小写:',Str.lower()) #lower() 方法只对ASCII编码,也就是‘A-Z’有效 print('翻转大小写:',Str.swapcase()) print('"标题化"的字符串',Str.title()) #所有单词都是以大写开始,其余字母均为小写 print('小写转换成大写:',Str.upper()) '''二、设定长度和字符进行填充显示''' print('设定长度将字符串居中显示,两边以X填充:',Str.center(50,'*')) print('设定长度将字符串居左显示,右边以X填充:',Str.ljust(50,'*')) print('设定长度将字符串居右显示,左边以X填充:',Str.rjust(50,'*')) print('设定长度将字符串局右显示,左边以0填充:',Str.zfill(50))#指定长度的字符串,原字符串右对齐,前面填充0 '''三、统计某字符的个数''' print('设定长度范围下,统计字符G个数:',Str.count('G',12,20)) '''四、编码和解码''' print('编码:',Str.encode('utf-8')) #将Unicode编码成utf-8 print('解码:',Str.encode('utf-8').decode('utf-8')) #将utf-8解码成Unicode '''五、字符串中的 tab 符号('\t')转为空格''' print('默认替换位数8,从字符串第0位~符号\\t位进行替换,无字符使用空格替换:',Str.expandtabs()) '''六、查找字符的位置''' print('显示第一个字符为X的位置,找不到返回-1:',Str.find('G',0,20)) print('显示最后一个字符为X的位置,找不到返回-1:',Str.rfind('G',0,20)) print('显示第一个字符为X的位置,找不到抛异常:',Str.index('G',0,20)) print('显示最后一个字符为X的位置,找不到抛异常:',Str.rindex('G',0,20)) '''七、字符的格式化''' name='xiaoshao' age=20 print('格式化字符串:我叫{0},今年{1}'.format(name,age)) print('格式化字符串:我叫{name},今年{age}'.format_map({'name':name,'age':age})) print('格式化字符串:我叫%s,今年%s'%(name,age)) print('格式化字符串:我叫{:s},今年{:d}'.format(name,age)) print('格式化字符串:我叫{name},今年{age}'.format(name=name,age=age)) #建议使用这种方式 '''八、字符串合法字符的判断''' print('是否以X开头:',Str.startswith('A')) print('是否以X结尾:',Str.endswith('G')) Str='Abc123' print('字符串是否全部为字母或数字:',Str.isalnum()) Str='Abc' print('字符串是否全部为字母:',Str.isalpha()) Str1='123456' #数字、全角数字 Str2='四壹' #汉字数字 Str3='Ⅳ' #罗马数字 Str4='①' #数字序号 Str5=b'123' #字节 print('字符串是否只包括数字:',Str1.isdigit()) #True(数字、字节、全角数字、数字序号),False(汉字数字、罗马数字),Error(无) print('字符串是否全部为半角和全角数字:',Str3.isdecimal()) #True(数字、全角数字),False(汉字数字、罗马数字、数字序号),Error(字节) print('字符串是否只包含数字字符:',Str3.isnumeric()) #True(数字、全角数字、罗马数字、汉字数字、数字序号),False(无),Error(字节) print('字符串是否为合法的标识符/变量名:',Str.isidentifier()) #合法的标识符/变量名是由数字、字母、下划线组成,且不能由数字开头 Str='abc' print('字符串是否全部为小写字母:',Str.islower()) print('字符串是否为可打印字符/能否原样输出:',Str.isprintable()) #例如\r或\n字符无法打印 Str=' \n' print('字符串是否为空格:',Str.isspace()) #例如' '或\n字符为空格 Str='I Studying String' print('字符串中单词拼写首字母是否为大写,且其它字母为小写:',Str.istitle()) Str='STR' print('字符串中所有的字母是否都为大写:',Str.isupper()) '''九、字符串生成:将列表、字典、元组中元素以指定的字符连接生成一个新的字符串''' List=['appiun','selenium','android','IOS'] print('列表中元素以X连接生成字符串:','_'.join(List)) Dict={'name':'xiaoshao','age':'20'} print('字典中元素以X连接生成字符串:','-'.join(Dict.keys())) print('字典中元素以X连接生成字符串:','-'.join(Dict.values())) Tup=('appiun','selenium','1991') print('元组中元素以X连接生成字符串:','*'.join(Tup)) '''十、删除指定字符(或空格)''' Str='*%abc1*%23%*' print('删除左边指定字符X(默认空格换行符):',Str.lstrip('*%')) print('删除右边指定字符X(默认空格换行符):',Str.rstrip('*%')) print('删除头尾指定的字符X(默认空格换行符):',Str.strip('*%')) #移除字符串头尾指定的字符(默认为空格或换行符)或字符序列 '''十一、字符串中字符的映射和替换''' Str1='amih' Str2='1234' Str='my name is xiaoshao' trantab1=Str.maketrans(Str1,Str2) #maketrans(需替代字符,映射字符)创建字符映射转换表 trantab2=Str.maketrans(Str1,Str2,'a') #maketrans(需替代字符,映射字符,删除制定字符)创建字符映射转换表创建字符映射转换表,并删除指定字符 print('按照映射表进行字符的替换:',Str.translate(trantab1)) print('按照映射表进行字符的替换,并删除指定字符:',Str.translate(trantab2)) print('字符串中的old替换成new替换不超过max次:',Str.replace('a','A',2)) '''十二、字符串的分隔''' Str='www.baidu.com' print('字符串按照指定第一个字符分割:',Str.partition('.'),type(Str.partition('.'))) print('字符串按照指定第一个字符分割:',Str.rpartition('.'),type(Str.rpartition('.'))) Str1='ABC 123\n¥&*\txyz' print('指定第一个分隔符X对字符串进行N次切片成列表:',Str.split('.',1),type(Str.split('.',1))) print('指定第一个分隔符X对字符串进行N次切片成列表:',Str1.split(),type(Str1.split())) #默认为所有的空字符,包括空格、换行(\n)、制表符(\t);分割次数,默认为 -1, 即分隔所有 print('指定最后一个分隔符X对字符串进行N次切片成列表:',Str.rsplit('.',1),type(Str.rsplit('.',1))) print('指定最后一个分隔符X对字符串进行N次切片成列表:',Str1.rsplit(),type(Str1.rsplit())) #默认为所有的空字符,包括空格、换行(\n)、制表符(\t);分割次数,默认为 -1, 即分隔所有 Str = 'ab c\n\nde fg\rkl\r\n' print('按照行分隔成列表:',Str.splitlines(False)) #按照行('\r', '\r\n', \n')分隔,参数为False,不包含换行符 print('按照行分隔成列表:',Str.splitlines(True)) #按照行('\r', '\r\n', \n')分隔,参数为True,包含换行符 '''十三、字符串单引号和双引号的区别''' Str1='\'a\'' #单引号中不能直接使用单引号,需要进行转义 print('单引号中转义使用单引号:',Str1) Str2="\"b\"" #双引号中不能直接使用双引号,需要进行转义 print('双引号中转义使用双引号:',Str2) Str3='"c"' #单引号中可以直接使用双引号 print('单引号中直接使用双引号:',Str3) Str4="'d'" #双引号中可以直接使用单引号 print('双引号中直接使用单引号:',Str4)