Python中的字符串可以使用 '', "", ''' ''' , """ """ 表示字符串是不可变对象,字符串是可迭代对象Python3中,字符串是Unicode编码
字符串一旦定义就不能改变
string = 'xkd'
string = 'hello xkd'
print('hello\nxkd')
print('hello\txkd')
# 索引访问
string = 'xkd'
print(string[1])
# 循环迭代访问
string = 'xkd'
for item in string:
print(item)
# 直接相加
string1 = 'hello'
string2 = '\t'
string3 = 'xkd'
print(string1 + string2 + string3)
# 使用join方法
lst = ['1', '2', '3', '4', '5']
lst_new = ''.join(lst)
print(lst_new)
# 使用 split(sep=None, maxsplit=-1) -> list of strings , 从左向右切割,sep指定分隔符,maxsplit指定切割的次数, -1表示有多少分隔符切多少刀
string1 = '1,2,3,4,5'
new_obj1 = string1.split(',')
new_obj2 = string1.split(',', maxsplit=1)
print(new_obj1)
print(new_obj2)
# 使用rsplit方法, rsplit(sep=None, maxsplit=-1) -> list of strings, 从右向左切割,sep指定分隔符,maxsplit指定切割的次数, -1表示有多少分隔符切多少刀
string1 = '1,2,3,4,5'
new_obj1 = string1.rsplit(',')
new_obj2 = string1.rsplit(',', maxsplit=1)
print(new_obj1)
print(new_obj2)
# 使用splitlines方法, splitlines([keepends]) -> list of strings, 按照行切割, keepends指是否保留分隔符
string1 = 'I love xkd \nI love xkd'
new_obj1 = string1.splitlines()
new_obj2 = string1.splitlines(True)
print(new_obj1)
print(new_obj2)
# 使用partition方法, partition(sep) -> (head, sep, tail), 从左到右切割三段,分隔符为中间那段
string1 = '1,2,3,4,5'
new_obj1, seq, new_obj2 = string1.partition(',')
print(new_obj1)
print(seq)
print(new_obj2)
new_obj1, _, _ = string1.partition(',')
print(new_obj1)
string = 'aBcd abcD'
print(string.upper()) # 全部改为大写
print(string.lower()) # 全部改为小写
print(string.swapcase()) # 大写改小写,小写改大写
print(string.title()) # 单词首字母大写
print(string.capitalize()) # 首字母大写
# center方法,center(width[, fillchar]) -> str, 将字符串居中,width指定宽度, fillchar指定填充的字符
print(string.center(100, '*'))
# ljust方法,ljust(width[, fillchar]), 将字符串居左,width指定宽度, fillchar指定填充的字符
print(string.ljust(100, '*'))
# rjust方法,rjust(width[, fillchar]), 将字符串居右,width指定宽度, fillchar指定填充的字符
print(string.rjust(100, '*'))
# zfill方法,zfill(width) -> str, 右对齐打印,左边0填充
print(string.zfill(100))
# replace方法,replace(old, new[, count]) -> str, 字符串替换,old指需要被替换的字符串,new为替换字符串, count为指定的次数
print(string.replace('a', 'z'))
# strip方法,strip([chars]) -> str, 剔除两端的字符,chars指定剔除的字符,chars不指定则为剔除空白字符
string = ' xkd '
print(string.strip())
# lstrip: 剔除左边的字符, rstrip: 剔除右边的字符
print(string.rstrip())
print(string.lstrip())
# find方法,find(sub[, start[, end]]) -> int, 从左向右查找,sub指定要查找的字符串,[start,end] 为开始和结束索引
print(string.find('x'))
# index方法,index(sub[, start[, end]]) -> int
print(string.index('d'))
# count方法,count(sub[, start[, end]]) -> int, 返回字符出现的次数
print(string.count('k'))
# startswith方法,startswith(prefix[, start[, end]]) -> bool, 是否以prefix开头
string = 'xkd'
print(string.startswith(''))
# endswith(suffix[, start[, end]]) -> bool, 是否以suffix结尾
print(string.endswith('x'))
#isalnum() 是否是字母或数字
#isalpha() 是否是字母
#isdecimal() 是否是十进制
#isdigit() 是否是数字
#isidentifier() 是否是字母和下划线开头
#islower() 是否是小写
#isupper() 是否是大写
#isspace() 是否是全空白字符
# C语言风格
print("I am %04d" % (100,)) # 前端补0
print('I am %s' % 'xkd') # 字符串
print('%.3f' % (99.56789)) # 保留3位小数
print("I am %-5d" % (20,)) # 左对齐
print("I am %5d" % (20,)) # 右对齐
# python format风格
S.format(*args, **kwargs) -> str, 其中args为元组,kwargs为字典,花括号为占位符
1: 占位
print('我是{}老师, 我在{}'.format('Robby', 'xkd'))
print('我是{0}老师, 我在{1}'.format('Robby', 'xkd'))
print('我是{1}老师, 我在{0}'.format('xkd','Robby',))
print('我是{1}老师, 我在{0}'.format(*('xkd','Robby')))
print('我是{name}老师, 我在{addr}'.format(name='Robby', addr='xkd'))
print('我是{name}老师, 我在{addr}'.format(**{'name':'Robby', 'addr':'xkd'}))
2:对齐
print('{0} + {1} = {2:<100}'.format(1,2,3)) # 指定100个位置,且左对齐
print('{0} + {1} = {2:>100}'.format(1,2,3)) # 指定100个位置,且右对齐
print('{0} + {1} = {2:0<100}'.format(1,2,3)) # 指定100个位置,且左对齐,其他地方补0
print('{0} + {1} = {2:0>100}'.format(1,2,3)) # 指定100个位置,且右对齐,其他地方补0
print('{0} + {1} = {2:^100}'.format(1,2,3)) # 指定100个位置,居中对齐
print('{0} + {1} = {2:0^100}'.format(1,2,'不知道')) # 指定100个位置,居中对齐, 其他地方补0
# 进制
print("int: {0:d} bin: {0:b} hex: {0:x} oct: {0:o} ".format(100))
print("int: {0:d} bin: {0:#b} hex: {0:#x} oct: {0:#o} ".format(100))