a=100 b ='ccc' print(f"test string{a},{b}") #3.6引入 print(f"test string{100},{200}") #直接打印常量 print("test string {}, b {}".format(a,b)) #python3引入,打印多个变量 print("test string {}, b {}".format(100,'dddddd')) #直接打印常量 print('test string {1}, b {0}'.format(200, 'dddddd')) #输出test string dddddd, b 200;{}里可以指定后面嵌入第几个位置参数 print('test string {0}, b {1}'.format(200, 'dddddd')) #输出test string 200, b dddddd;{}里可以指定后面嵌入第几个位置参数 print('test string {0}, b {1}'.format(200, 'dddddd')) #输出test string 200, b dddddd;{}里可以指定后面嵌入第几个位置参数 print('test string {0}, b {1}, c {0}'.format(200, 'dddddd')) #输出test string 200, b dddddd, c 200;{}里可以指定后面嵌入第几个位置参数 print('test string {1}, b {1}, c {1}'.format(200, 'dddddd')) #输出test string dddddd, b dddddd, c dddddd;{}里可以指定后面嵌入第几个位置参数 # print('test string {}, b {}, c {}'.format(200, 'dddddd')) #错误,参数不足, NO OK print('test string {}, b {}'.format(200, 'dddddd', 200)) #输出test string 200, b dddddd,参数超过不影响 #取列表或者其他数据结构参数 nums = [12, 33, 22, 11, 55, 22] print('test string list {0[0]}, b {0[3]}'.format(nums)) #test string list 12, b 11,特殊写法 #取字典数据 dictd = {12:22, 13:'dd', 'abc':123, 'add':'dd'} print('test string dict {info[12]} , {info[add]}'.format(info=dictd)) #test string dict 22 , dd print('test string dict {abc} , {add}'.format(**dictd)) #test string dict 123 , dd, 拆包 #可以通过位置参数传入 print('test string {name}, b {age}'.format(name = 'hel', age = 12)) #test string hel, b 12 不依赖顺序 print('test string {age}, b {name}'.format(name = 'hel', age = 12)) #test string 12, b hel 不依赖顺序 #:>代表右对其,:<代表左对齐, 8代表占用8个字符位置 print('*******{:>8}*******'.format(999)) #******* 999******* ;右对齐占用8个位置 print('*******{:<8}*******'.format(999)) #*******999 ******* ;左对齐占用8个位置 print('*******{:0>8}*******'.format(999)) #*******00000999******* ;右对齐占用8个位置,左侧补0 print('*******{:a>8}*******'.format(999)) #*******aaaaa999******* ;右对齐占用8个位置,左侧补a print('*******{:1<8}*******'.format(999)) #*******99911111******* ;左对齐占用8个位置,右侧补1 print('*******{:c<8}*******'.format(999)) #*******999ccccc******* ;左对齐占用8个位置,右侧补c #:.指定小数点位数,:,指定以逗号分割 # print('test string {.3f}'.format(3.1314141515)) #没有:出错,no ok print('test string {:.3f}'.format(3.1314141515)) #test string 3.131 print('test string {:,}'.format(3314141515)) #test string 3,314,141,515 #以不同进制格式化打印 print('data is {:b}'.format(31)) #data is 11111, 二进制 print('data is {:d}'.format(31)) #data is 31, 十进制 print('data is {:x}'.format(31)) #data is 1f, 十六进制小写 print('data is {:X}'.format(31)) #data is 1F, 十六进制大写 print('data is {:o}'.format(31)) #data is 37,八进制 class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): # return 'Name is {}, Age is {}'.format(self.name, self.age) #等价实现1 # return 'Name is {name}, Age is {age}'.format(name=self.name, age=self.age) # 等价实现2 # return f'Name is {self.name}, Age is {self.age}' #等价实现3 # return 'Name is %s, Age is %d'%(self.name, self.age) #等价实现4 return 'Name is {self.name}, Age is {self.age}'.format(self = self) # 等价实现5,相当于self是变参做替换 p = Person('laowang', 23) print(p) #Name is laowang, Age is 23 print("test %d in "%(a)) #python2引入 print("test %d in %s" %(a,b)) #打印多个变量 print("test %d in %s" %(100,"ddddd")) #直接打印常量 print("test %d in %f" %(100,3.14)) #直接打印常量 print("test %d in %.4f" %(100,3.14)) #指定小数点后位数 b = 'this is a test string' c = "this is a test string" str = '123456789' print(str[0]) #输出'1',数组下标为0到8 print(str[8]) #输出'9',数组下标为0到8 print(str[-1]) #输出'9',数组下标为-9到-1 print(str[-9]) #输出'1',数组下标为-9到-1 #str[start:end:step],获取start到end中间的字符串(不包括end字符),步长为step print(str[0:3]) #获取前3个字符123 print(str[-9:-7]) #获取前两个字符,12 print(str[-9:-1:2]) #从第一个字符取到倒数第二个,不包括最后一个,步长为2,1357 print(str[:-1:2]) #从第一个字符取到倒数第二个,不包括最后一个,步长为2,1357 print(str[::2]) #步长为2获取所有字符13579 print(str[:-1]) #从第一个字符取到倒数第二个,不包括最后一个,12345678 print(str[0:]) #获取所有字符,123456789 print(str[:9]) #获取所有字符,123456789 print(str[3:-1]) #获取部分字符,45678 print(str[8:1:-2]) #获取部分字符,9753,步长为负,sart>end print(str[-1:-6:-2]) #获取部分字符,975,步长为负,sart>end print(str[::1]) #步长为1,从左到右获取所有字符,123456789 print(str[::-1]) #步长为-1,从右到左获取所有字符,987654321 print(str[:]) #默认步长为1,从左到右获取所有字符,123456789 mystr = '123456789' mystr.find('1234', 0, len(mystr)) print(mystr.find('456',0, len(mystr))) #返回开始的索引值,返回3 print('123456789'.find('456', 0,len('123456789'))) #返回开始的索引值,返回3 print('123456789'.rfind('456', 0,len('123456789'))) #在目标字符串里反向查找字符串,3 print('123456789'.count('55', 0,len('123456789'))) #统计56字符串个数,0 print('123456789'.replace('456', 'abc',2)) #abc替换456,最多替换2次 print(' 123 345 444 444 '.split()) #默认用空格与换行切分,得到list:['123', '345', '444', '444'] print(' 123 345 444 444 '.split(' ', 6)) #使用' '切分字符串,最多切分出6块,得到list:['', '123', '345', '444', '444', ''] print('#123#345#444#444#'.split('#', 3)) #使用'#'切分字符串,最多切分出3块,得到list:['', '123', '345', '444#444#'] print('abc Def cccDDAA dd'.startswith('abc D')) #True print('abc Def cccDDAA dd'.startswith('ac')) #False print('abc Def cccDDAA dd'.endswith(' dd')) #True print('abc Def cccDDAA dd'.endswith('cdd')) #False print('abc Def cccDDAA dd'.lower()) #'abc def cccddaa dd' print('abc Def cccDDAA dd'.upper()) #'ABC DEF CCCDDAA DD' #strip移除两端,lstrip移除开头,rstrip移除结尾,strip('abc')会移除abc,aaa,cba,等等不是说移除连续的abc print(' abc Def cccDDAA dd '.strip()) #'abc Def cccDDAA dd' ,去掉开头结尾空白字符(空格,换行,制表符) print(' abc Def cccDDAA dd '.strip('dd')) #' abc Def cccDDAA dd',去掉开头结尾'dd' print(' abc Def cccDDAA dd '.strip('dd ')) #'abc Def cccDDAA dd',去掉开头结尾'dd ' print('1234512333123333'.partition('123')) #分割成三部分,str前,str和str后,只以第一个分割,('', '123', '4512333123333') print('这是一个\n美丽的用完\n你好啊\n'.splitlines()) #按照行分隔,['这是一个', '美丽的用完', '你好啊'] print('1234512333123333'.isalpha()) #判断是否全字母,输出False print('12345123abASAddd33'.isalpha()) #判断是否全字母,输出False print('abcdeAAAAdadfa'.isalpha()) #判断是否全字母,输出True print('1234512333123333'.isdigit()) #判断是否全数字,输出True print('12345123abASAddd33'.isdigit()) #判断是否全数字,输出False print('abcdeAAAAdadfa'.isdigit()) #判断是否全数字,输出False print('1234512333123333'.isalnum()) #都是字母或数字则返回 True,输出True print('12345123abASAddd33'.isalnum()) #都是字母或数字则返回 True,输出True print('abcdeAAAAdadfa'.isalnum()) #都是字母或数字则返回 True,输出True L = ['hell' , 'owred', '1234' , 'abc'] #使用特殊字符把list中字符串连起来 print('你哈的啊啊啊大ddd'.join(L)) #输出'hell你哈的啊啊啊大dddowred你哈的啊啊啊大ddd1234你哈的啊啊啊大dddabc' print(''.join(L)) #输出'hellowred1234abc' print(' '.join(L)) #输出'hell owred 1234 abc'
Python进阶练习--string
于 2024-08-27 14:46:31 首次发布