python知识点复习
str1="It's OK" #当字符串有单引号时,外面用双引号
str2='He said:"nice to see you."' #当字符串中有双引号时,外面用单引号
三引号,可以表达字符串中的换行符,制表符等
str3='''空山不见人
但闻人语响
返景入深林
复照青苔上'''
print(str3)
字符串的拼接
str4='ABC'
str5=6
print(str4*str5) #字符串乘以一个数字,表示显示这个字符串若干次
int型乘以float型,最后的结果是什么型?
num1=10
num2=0.1
print(num1*num2)
a='qqq'
b='2'
c='3.2'
print(a*int(b))
print(int(c)) #对于字符串形式的浮点数,不可以转换为int型
转义符
mulu='d:\note1.txt'
mulu='d:\note1.txt' #再加一个\去掉转义符的特殊含义
mulu=r'd:\note1.txt' #字符串的前面加一个r表示后面的字符串不进行转义
mulu='d:/note1.txt'
print(mulu)
字符串的下标
str6='htrevf'
print(str6[4])
print(str6[-2])
str6[0]='c' #字符串是不可变对象,不能修改字符串中的某一位的值
字符串的切片
print(str6[3:5])
print(str6[-2:-5:-1]) #ver
print(str6[4:1:-1]) #ver
print(str6[::-1]) #翻转字符串
列表可以存放哪些对象?任意对象
列表是可变对象还是不可变对象?可变
list1=[10,20]
list2=[20,10]
print(list1==list2) #结果为False
列表添加元素的方法 append,insert,extend
1,1,2,3,5,8,13,21,34,55...... 斐波那契数列
list1=[]
for i in range(20):
if len(list1)<2:
list1.append(1)
else:
list1.append(list1[-2]+list1[-1])
print(list1)
insert,添加元素到指定位置
list2=[10,20,30,40,50,60]
list2.insert(1,666)
print(list2)
extend,列表的拼接
list3=[100,200,300]
list2.extend(list3)
print(list2)
列表的删除
pop
list6=[36,11,22,36]
list6.pop() #不指定参数时,删除最后一位
list6.pop(0) #也可以指定下标进行删除
print(list6)
remove 根据值删除元素,效率相对较低
list6.remove(36) #删除列表中的第一个36
print(list6)
del
del list6[-1]
print(list6)
通过下标修改列表的元素
list7=['关羽','张飞','赵云','马超','黄忠']
list7[-1]='魏延'
print(list7)
列表的切片
new_list7=list7[1:3]
print(new_list7) #切片不会影响原列表
print(list7)
元组 元组也可以使用下标和切片,但是元组是不可变对象,不能进行增删改
tuple1=(10,20)
print(tuple1[:])
如果元组中有子列表,子列表是可变对象
tuple2=(100,[200,300])
tuple2[-1][-1]=999
print(tuple2)
浅拷贝,深拷贝
list9=[10,20,30,[40,50]]
list10=list9 #普通的赋值
list9[0]=123
print(list9)
print(list10)
import copy
list10=copy.copy(list9) #浅拷贝,真正生成了两个不同的列表,但是注意如果存在子列表,子列表仍然共用一个地址
list9[0]=123
list9[-1][0]=128
print(list9)
print(list10)
list10=copy.deepcopy(list9) #深拷贝,真正生成了两个不同的列表,子列表也是两个不同的
list9[-1][0]=128
print(list9)
print(list10)
切片等价于以上哪一种?等价于浅拷贝