切片 (自动切片与手动切片)
字典切片
a='asdafafsa'
#自动切片
b=a[2:6:2]#a[起始位置:结束位置:步长] 切片的规则是有头无尾
#用while切片
star=int(input('起始位置:'))
stop=int(input('结束位置:'))
step=int(input('步长:'))
while star<stop:
print(a[star],end='')
star+=step#要控制开始位置与步长,保证能切出来
#用for切片
star=int(input('起始位置:'))
stop=int(input('结束位置:'))
step=int(input('步长:'))
for i in range(star,stop,step):#range的内嵌函数就已经包含起始位置,结束位置,步长了,所以这个循环只是输入参数而已
print(a[i],end='')
range的内嵌函数就已经包含起始位置,结束位置,步长了,所以这个循环只是输入参数而已
切掉字符串中的-
for循环做
a='asd-bdb-uhn'
s=a.split('-')
print(s)
split的作用是将字符串按照要切片的位置进行分段,并且生成一个列表
手动切片
a='asd-bdb-uhn'
i=0
while i<len(a)-1:
if a[i]=='-':
print()
else:
print(a[i],end='')#不可以输出-
i+=1
字符串的替换
a='abcdefghigk'
b=a.replace('abc','123')#
print(b,type(b))#123defghigk <class 'str'>,虽然结果是这样的,但是b想到于重新组成了一个字符串,与a没有关系了
字符串是不能替换的,但是却可以生成一个新的字符串,那么replace的内置函数就可能有一个转化为列表函数
字典中的增删改查
增
dict(key=value)------创建一个字典
# a.update() update还不会
b=dict(shengao=1.8)#创建一个字典 结果是{'shengao':'1.8'}
print(b)
删
删除有
del a[key]–删除key对应的value
.clear()-----清空字典
.pop()------删除字典中的某一个键对应的value值
.popitem()-删除某一键值对
a={'name':'小五','age':18,'sex':'男'}
del a['name'] #这样就删除了这个key所对应的value
print(a) #并且字典是可修改的,不用另外保存
b=a.clear()
print(b,'没了') #后面的不是返回值,也就是说 ‘没了’ 只是一个输出项,而不是一个返回值
b=a.pop('name')
print(b) #这样是删除了键对应的value
print(a) #体现了字典的可修改性
b=a.popitem() #默认删除最后一个键值对
print(b)
print(a)
改
a[key]=value -------这就是一种更新方式
a={'name':'小五','age':18,'sex':'男'}
print(a['name'])
a['sex']='nv'#这是一种更新方式
print(a)
查
.get(key)-------得到key对应的value
a={'name':'小五','age':18,'sex':'男'}
print(a.get('sex'))#查找一个key所对应的value
小题
一、 直角杨辉
输出效果:
1
23
345
。。。
用while实现,必须是单层循环
a=str(input('请输入一串字符串:'))
hang=1
lie=0
i=0
while i<len(a)-1:
print(a[i], end='')#首先输出第一个
lie+=1#输出一个lie就得加一
if hang==lie:#当行列相同时,相当于一个对角线行列式
lie=0
hang += 1#这里是控制行列始终是三角形的
print()
i+=1
用for实现,必须是单层循环
for i in range(len(a)): #这里控制变量只用到了a的长度
print(a[i],end=' ')
lie+=1
if hang==lie:
lie =0
hang+=1
print() #全程没有改变字符串a,只不过是访问了一下
二、传送带的打印
思想是让元素循环起来
while 循环
import time
a=[1,2,3,4,5]
while True:
i=0
while i<len(a)-1: #控制着交换列表的元素依次前进着
a[i]=a[i+1]
i+=1
a[len(a)-1]=a[0] #列表最前面的放在最后面
time.sleep(1)
print(a)
for循环
import time
a=[1,2,3,4,5]
while True:
print(a)
for i in range(len(a)-1):
a[i]=a[i+1]
a[len(a) - 1] = a[0]
time.sleep(1)
#for循环暂时实现不了传送带
三、打印字符串的每个元素及其下标
a=input('请输入字符串:')
i=0
while i<len(a)-1:
print('这是第%d个元素%c,下标是%d'%(i+1,a[i],i))
i+=1
%c就是标志着元素
今天的东西有点多,个人拙见,请见谅