a='123abc'
print(a[0]) # 1
print(a[3]) # a
i=0
while i<len(a):
print(a[i]) # 123abc
i+=1
a='123abc'
for i in range(len(a)):
print(a[i]) # 123abc
a='123abc'
a[2]=6 # 报错,不可修改
a='123abc'
for i in range(-1,-len(a)-1,-1):
print(a[i],end='') # cba321
print()
a='123abc'
i=-1
while i>=-len(a):
print(a[i],end='') # cba321
i-=1
从字符串复制出一份指定的内容,存储在另一个变量中,不会对原字符串有影响。
a='123abc'
print(a[0:5]) # 123ab
for i in range(5):
print(a[i],end='') # 123ab
print()
print(a[0:5:2]) # 13b
for i in range(0,5,2):
print(a[i],end='') # 13b
a = '123abcd'
print(a[0:]) # 123abcd
print(a[3:]) # abcd
print(a[:5]) # 123ab
print(a[:]) # 123abcd
print(a[::3]) # 1ad
# 输出ad
print(a[3::3]) # ad
for i in range(3,len(a),3):
print(a[i],end='') # ad
print()
print(a[::3][1:]) # ad
# 输出1a
print(a[0:4:3]) # 1a
print(a[0:5:-1]) # 无结果
print(a[::-1]) # dcba321
print(a[-1:-5:-2]) # db
a='123456789'
print(a[-8:5]) # 2345
print(a[0:-7]) # 12
print(a[-7:0]) # 无结果
print(a[-7:0:-1]) # 32
print(a[-1:-5]) # 无结果
print(a[-1:-5:-1]) # 9876
a='我爱你'
b='北京'
c=a+b
print(c) # 我爱你北京
a='你好'
c=a*3
print(c) # 你好你好你好
a,b,c='123'
print(a) # 1
print(b) # 2
print(c) # 3
a,*b='123'
print(a) # 1
print(b) # ['2','3'] 变为列表类型
可以指定填充内容,默认空格
a='123'
b=a.center(7,'*')
print(b) # **123**
print(a) # 123
在指定长度左齐,可以指定填充内容,默认空格
在指定长度右齐,可以指定填充内容,默认空格
a='123'
b=a.ljust(10,'$')
print(b) # 123$$$$$$$
b=a.rjust(10,'$')
print(b) # $$$$$$$123
将字符串填充到指定长度,不足用0从左开始补充
a='123'
print(a.zfill(10)) # 0000000123
a=' 123 '
print(a.lstrip(),end='$') # 去左
print()
print(a.rstrip(),end='$') # 去右
print()
print(a.strip(),end='$') # 左右都去
a='###123####'
print(a.lstrip('#'))
print(a.rstrip('#'))
print(a.strip('#'))
a='我叫{},年龄{}'.format('张三',29)
print(a) # 我叫张三,年龄29
print('我叫{name},年龄{age},姓名{name}'.format(name='张三',age=30)) # 我叫张三,年龄30,姓名张三
a='我叫{0},姓名{0} 年龄{1}'.format('李四',29)
print(a) # 我叫李四,姓名李四 年龄29
格式:
:[填充字符][对齐方式][宽度]
字符–填充字符
对齐方式:
<–左对齐
^–居中对齐
>–右对齐
数字8–宽度
a='我叫{:$^8}'.format('赵六')
print(a) # 我叫$$$赵六$$$
a='我叫{:*<5}'.format('赵六')
print(a) # 我叫赵六***
a='我叫{:' '>3}'.format('赵六')
print(a) # 我叫 赵六
a='二进制{:b}'.format(10)
print(a,type(a))
x=bin(10)
print(x,type(x))
a='八进制{:o}'.format(10)
print(a,type(a))
x=oct(10)
print(x,type(x))
a='十六进制{:x}'.format(10)
print(a,type(a))
x=hex(10)
print(x,type(x))
结果:
二进制1010 <class 'str'>
0b1010 <class 'str'>
八进制12 <class 'str'>
0o12 <class 'str'>
十六进制a <class 'str'>
0xa <class 'str'>
name='张三'
age=18
height=1.75
x='我叫%s,身高%.2f,年龄%d'%(name,height,age)
print(x) # 我叫张三,身高1.75,年龄18
x=0.25
a='成材率%.0f%%'%(x)
print(a) # 成材率0%
a='abcdef'
b='cd'
x=a.find(b) # 2
print(x)
print(a.find('zz')) # -1
长字符串中有多个,只看第一个
a='abcdefcdg'
b='cd'
x=a.find(b)
print(x) # 2
a='abcdefcdg'
b='cd'
x=a.rfind(b)
print(x) # 6
a='abcdefcdg'
b='cd'
x=a.index(b) # 2
print(x)
b='cda'
print(a.index(b)) # 报错
a='abcdefcdg'
b='cd'
x=a.rindex(b) # 6
print(x)
b='cda'
print(a.rindex(b)) # 报错
a='abcdefcdgcd'
b='cd'
print(a.count(b)) # 3
a=input('请输入一个长字符串:')
b=input('请输入想要查找的子字符串:')
def find(b):
for i in range(len(a)-len(b)+1):
for j in range(len(b)):
if a[i+j]!=b[j]:
break
else:
return i
else:
return -1
print(find(b))
参数为一个字符串,以参数分隔长字符串。
只能分割为三部分,包括自身,且以第一次出现的为准。
返回值为一个元组。
x='123ab456ab789'
print(x.partition('ab')) # ('123', 'ab', '456ab789')
返回值为列表
a='abc\n123\n45'
print(a.splitlines()) # ['abc', '123', '45']
参数为一个字符串,以参数分隔长字符串,不包括自身。
若出现多次,可选用第二个参数maxsplit,设置分隔几次。
返回值为一个列表。
a='123a456a789a0'
print(a.split('a')) # ['123', '456', '789', '0']
a='2019-07-24'
print(a.split('-')) # ['2019', '07', '24']
a='123ab456ab789ab000'
print(a.split('ab',maxsplit=1))
print(a.split('ab',maxsplit=2))
print(a.split('ab',maxsplit=3))
结果:
['123', '456ab789ab000']
['123', '456', '789ab000']
['123', '456', '789', '000']
a='abc\n123\n45'
print(a.split('\n')) # ['abc', '123', '45']
a='abc\n123\n45'
i=0
while i<len(a):
if a[i]=='\n':
print()
else:
print(a[i],end='')
i+=1
结果:
abc
123
45
可以选用第三个参数指定替换的个数,默认全部替换。
原字符串不变。
a='123abc456abc'
b=a.replace('abc','xy')
print(b) # 123xy456xy
b=a.replace('abc','xy',1)
print(b) # 123xy456abc
print(a) # 123abc456abc
第一个参数是字符串,第二个参数也是字符串,表示转换的目标
两个字符串的长度必须相同,为一一对应的关系
s='12345678901111'
# a,b长度必须相同
a='1234567'
b='abcdefg'
table=str.maketrans(a,b)
c=s.translate(table)
print(c) # abcdefg890aaaa
a='abcABC12'
print(a.upper()) # ABCABC12
print(a.lower()) # abcabc12
print(a.swapcase()) # ABCabc12
a='what is your name?'
print(a.title()) # What Is Your Name?
a='what is your name?'
print(a.capitalize()) # What is your name?
空格数=8-字符数
a='234\t45\t78'
print(a.expandtabs()) # 234123 45 78
a='123d'
b=a.isdigit()
print(b) # False
a='azAz_'
print(a.isalpha()) # False
a='123aZ'
print(a.isalnum()) # True
a='ac123sd'
print(a.islower()) # True
a='12JAKSa'
print(a.isupper()) # False
a="What Is Your Name?"
print(a.istitle()) # True
a=' '
print(a.isspace()) # # True
范围同样左闭右开
a='aadsKJLA123'
print(a.startswith('123')) # False
print(a.startswith('123',8,11)) # True
范围同样左闭右开
a='aadsKJLA'
print(a.endswith('L')) # False
print(a.endswith('L',0,7)) # True
s='aa'
print(dir(s))
print(dir(str))
print(help(s.replace))
a='tom\'s cat'
print(a)
b="tom's cat"
print(b)
a='E:\test\nex.txt'
print(a)
a='E:\\test\\nex.txt'
print(a)
结果:
tom's cat
tom's cat
E: est
ex.txt
E:\test\nex.txt
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('判断成功')
else:
print('判断失败')
print('\c')
print('\n')
print('\t')
print('\\')
print('\'')
print("\"")
结果:
\c
\
'
"
加r,所有转义字符都不进行转义操作。
a=r'E:\test\nex.txt'
print(a) # E:\test\nex.txt
a='la我'
b=a.encode()
print(b)
c=b.decode()
print(c)
结果:
b'la\xe6\x88\x91'
la我
a={'001':{'name':'张三','age':18},
'002':{'name':'李四','age':28},
'003':{'name':'王五','age':19},
'004':{'name':'赵六','age':31},
}
def find(num):
for k in a.keys():
if k==num:
return True
else:
return False
def add():
print('请输入您想要添加的学生信息:')
num=input('编号:')
for i in a.keys():
if num==i:
print('编号重复,添加失败')
break
else:
name=input('姓名:')
age=input('年龄:')
a[num]={'name':name,'age':int(age)}
def delete(num):
if find(num):
del a[num]
else:
print('没有该学生')
def update(num):
if find(num):
name = input('姓名:')
age = input('年龄:')
a[num] = {'name': name, 'age': int(age)}
else:
print('没有该学生')
def findAll():
for i in a.items():
print(i)
while True:
print('1.增')
print('2.删')
print('3.改')
print('4.查某个')
print('5.查全部')
print('0.退出')
choice=int(input('请输入选择:'))
if choice==1:
add()
elif choice==2:
num = input('请输入想要删除的编号')
delete(num)
elif choice==3:
num = input('请输入想要更新的编号')
update(num)
elif choice==4:
num=input('请输入想要查询的编号')
if find(num):
print(num,':',a[num])
else:
print('没有该学生')
elif choice==5:
findAll()
elif choice==0:
break