欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二周第三天:字符串

程序员文章站 2022-05-19 13:18:18
...

字符串:
a = “123abc”
#print(a[0])
#print(a[3])
i=0
while i<len(a):
print(a[i])
i+=1

for i in a:
print(i)

for i in range(len(a)):
print(a[i])
1
2
3
a
b
c

i=-1
while i >= -len(a):
print(a[i])
i-=1

for i in range(-1,-len(a)-1,-1):
print(a[i])
c
b
a
3
2
1

切片
a=“123abcd”
b=a[0:5:2]
print(b)

for i in range(0,5,2):
print(a[i],end=" ")
13b
1 3 b
print(a[3:]) # abcd

print(a[:5]) # 123ab

print(a[:]) # 123abcd

print(a[0::3]) # 1ad

print(a[3::3]) # ad

print(a[3:0:-1]) # a32

print(a[::-1]) # dcba321

print(a[-1:-5:-2]) # db

a=“123456789”
print(a[-8:5]) # 2345

print(a[0:-7]) # 12

print(a[-1:-5:-1]) # 9876

拼接和重复

a=“我爱 你”
b=“北京”
c=a+b
print©
我爱 你北京

a=“你好”*3
print(a) # 你好你好你好

a,b,c=“124”
print(a) # 1
print(b) # 2
print© # 4

a,*b =“1234”
print(a) # 1
print(b) # [‘2’, ‘3’, ‘4’]

字符串格式化
a=“我叫{},年龄{}”.format(“张三”,29)
print(a)
我叫张三,年龄29

a=“我叫{0}姓名{0}年龄{1}”.format(“李四”,29)
print(a) # 我叫李四姓名李四年龄29

a=“我叫{0}姓名{0}年龄{1}姓名{0}”.format(“李四”,29)
print(a) # 我叫李四姓名李四年龄29姓名李四

a=“我叫{name},年龄{age},姓名{name}”.format(name=“张三”,age=30)
print(a) # 我叫张三,年龄30,姓名张三

a="我叫{:KaTeX parse error: Expected 'EOF', got '}' at position 3: ^8}̲".format("赵六") …赵六$
^赵六居中

a="我叫{:KaTeX parse error: Expected 'EOF', got '}' at position 3: <8}̲".format("赵六") …$$$$$
<赵六居左

a="我叫{:KaTeX parse error: Expected 'EOF', got '}' at position 3: >8}̲".format("赵六") …$$$$$赵六
>赵六居右
# :后面是填充字符,中间^赵六居中,<赵六居左,>赵六居右 ,最后面的数字,代表占的总长度

进制转换
a = “二进制{:b}”.format(10)
print(a) # 二进制1010
x=bin(10)
print(x,type(x)) # 0b1010 <class ‘str’>
b = “八进制{????}”.format(10)
print(b) # 八进制12
x=oct(10)
print(x,type(x)) # 0o12 <class ‘str’>
c = “十六进制{:x}”.format(10)
print© # 十六进制a
x=hex(10)
print(x,type(x)) # 0xa <class ‘str’>

字符串格式化–百分号
name=“张三”
age =18
height = 1.75
x=“我叫%s身高%f年龄%d”%(name,height,age)
print(x) # 我叫张三身高1.750000年龄18

a=“成材率35%%”
print(a) # 成材率35%%
x=0.25
a=“成材率%.2f%%”%(x) # %.2f小数点后两位
print(a) # 成材率0.25%

a=“abcdefcdg”
b=‘cd’
x=a.find(b)
print(x) # 索引为2
print(a.find(“zz”)) # 找不到返回-1
x=a.rfind(b)
print(x) # 6
print(a.rfind(‘cdx’)) # -1
print(a.index(b)) # 2
print(a.rindex(b)) # 6
print(a.index(“cda”)) # ValueError: substring not found
print(a.count(b)) # 2个cd

a=input(“请输入一个长串”)
b=input(“请输入一个子串”)
i=0
while i<=len(a)-len(b):
j=0
while j<len(b):
if a[i+j]!=b[j]:
break
j+=1
if j==len(b):
print(i)
break
i+=1
else:
print(-1)

for i in range(len(a)-len(b)+1):

for j in range(len(b)):
    if a[i+j]!=b[j]:
        break
else:
    print(i)

a=“123ab456”
x=a.partition(“ab”) # 以ab分割
print(x) # (‘123’, ‘ab’, ‘456’)

a=“123ab456ab789”
x=a.partition(“ab”) # 以第一个ab分割,最多只能分三部分,ab前,ab后和ab自身
print(x) # (‘123’, ‘ab’, ‘456ab789’)

a=“123a456a789a0”
b=a.split(‘a’) # 以自身为分割线,自己不会被打印出来
print(b) # [‘123’, ‘456’, ‘789’, ‘0’]

a=“123a456a789a0”
b=a.split(‘a’,maxsplit=1) # 以自身为分割线,自己不会被打印出来,maxsplit=1只在第一个起作用
print(b) # [‘123’, ‘456a789a0’]

a=“2019-07-24”
print(a[0:4]) # 2019
print(a[5:7]) # 07
print(a[8:]) # 24
b=a.split(’-’)
print(b) # [‘2019’, ‘07’, ‘24’]

a=“abc\n123\n45”
b=a.splitlines()
print(b) # [‘abc’, ‘123’, ‘45’]
print(a.split(’\n’)) # [‘abc’, ‘123’, ‘45’]

a=‘123ab456ab789ab000’
b=a.split(‘ab’,maxsplit=2) # 最大切2次
print(b) # [‘123’, ‘456’, ‘789ab000’]

a=‘123abc456abc’
b=a.replace(‘abc’,‘xy’) # abc被xy取代
print(b) # 123xy456xy
print(a) # 123abc456abc

s=‘1234567890111’
a=‘1234567’ # a和b必须一一对应,长度相同
b=‘abcdefg’
table=str.maketrans(a,b) # 创建映射表时,a/b的长度必须一样,组合成映射表
b=s.translate(table) # 通过映射表,进行替换生成新的串
print(b) # abcdefg890aaa

a=‘123’
b = a.center(7,"") # 居中,带123一共7个位置,不足的
print(b) # 123
b=a.ljust(10,'KaTeX parse error: Expected 'EOF', got '#' at position 5: ') #̲ 居左,带123一共10个位置…
print(b) # 123$$$$$KaTeX parse error: Can't use function '$' in math mode at position 16: b=a.rjust(10,'$̲') # 居右,带123一共…$$$$$123
b=a.zfill(10) # 左边填充0,带123一共10个位置,前面空的都是0补
print(b) # 0000000123

a=’ 123 ’
b=a.lstrip() # 去左边空格
print(b,end="$") # 123 $
b=a.rstrip() # 去右边空格
print(b,end="#") # 123#
b=a.strip() # 去两边空格
print(b,end="KaTeX parse error: Expected 'EOF', got '#' at position 5: ") #̲ 123

a=’###123####’
print(a.lstrip("#")) # 123####
print(a.rstrip("#")) # ###123
print(a.strip("#")) # 123

字符串变形
a=‘abcABC’
print(a.upper()) # ABCABC 全部变成大写
print(a.lower()) # abcabc 全部变成小写
print(a.swapcase()) #ABCabc 大小写互换
print(a.title()) #Abcabc 首字母大写

a=‘what is you name’
print(a.title()) # What Is You Name 开头首字母大写,遇到不是字母下个字母大写
print(a.capitalize()) # What is you name 第一个首字母大写

a=“123\t456\txx”
print(a.expandtabs()) # 将\t转换成8个空格

a=‘123’
print(a.isdigit()) # True 判断是不是全部由数字组成

a=‘123d’
print(a.isdigit()) # False

a=‘azAz’
print(a.isalpha()) # True 判断是不是全有a-z组成,是就True

a=‘azAz-’
print(a.isalpha()) # False

a=‘123aZ’
print(a.isalnum()) # 判断是不是全由数字字母组成 True

a=‘123aZ-’
print(a.isalnum()) # False

a=‘abc’
print(a.islower()) # True 判断是不是全小写字母组成

a=‘ABC’
print(a.isupper()) # True 判断是不是全大写字母组成

a=‘What Is Your Nmae’
print(a.istitle()) # True 判断是不是满足title格式,每个单词首字母大写

a=’ ’
print(a.isspace()) # 判断字符串完全由空格组成 True

a=‘123’
print(a.startswith(“abs”)) # False 判断以什么开始
print(a.endswith(“3”)) # True 判断以什么结束

a=“abc”
print(dir(a)) # 列出字符串对象中所有的方法和名称
print(help(a.replace)) # 查看每一个方法具体要做什么

a=‘tom’s cat’ # \转义字符格式
print(a) # tom’s cat
b=“tom’s cat”
print(b) # tom’s cat

a=“E:\test\nex.txt”
print(a) # E: est
ex.txt
a=“E:\test\nex.txt”
print(a) # E:\test\nex.txt

a=19
b=20
c=22
d=33
if a>33 and b>44 and c>55 and c <100 and d>200 and d<=300
and a<300:
print(“判断成功”) # \起到连续的作用

print("\c")
print("\n")
print("\t")
print("\")
print(""")
print(’’’)
\c


"

a=r"E:\test\nex.txt" # r或者R保持原样,转义字符不进行操作
print(a) # E:\test\nex.txt
a=r"E:\test\nex.txt" # r或者R保持原样,转义字符不进行操作
print(a) # E:\test\nex.txt

a=“1a我”
b = a.encode() # 编码
print(b) # b’1a\xe6\x88\x91’
c=b.decode() # 解码
print© # 1a我