gzdcs-谭雄泽 发表于 2021-9-1 19:12:51

第二天python笔记

# python中的索引    序列[数字]   序列类型的数据类型有字符串、列表、元素
#索引是分正负的
#正索引:从左往右数,从0开始
#负索引是从右向左数,从负一开始
'''str1='asdfghjkl'
print(str1) #获取str1中的索引位为0的值输出结果是a
print(str1)#输出结果是 h顺数第六位的值
#print(str1) #因为str1中最大的索引位只有8,所以执行报错,索引越界 index out of range
print(str1[-1])#这个负索引输出结果是l
print(str1[-6])#这个负索引输出结果是f
#print(str1[-10])一样会报错 索引越界
'''

#python中的切片操作
#1、切片是建立在索引的基础上,所以支持的数据类型也是:字符串、列表、元祖
#2、切片的表达式为:序列[开始索引:结束索引:步长值]/
#3、切片也分正负
#4、切片不取结束索引的值
#5、是通过步长值来控制的,默认为1,正步长从左往右取,负步长从右往左取
#6、开始索引不写的情况下

str1='asdfghjkl'
'''print(str1)#对str1进行切片,截取索引位为1到索引位为2的值,不取借结束索引,结果为:s
print(str1) #输出结果为asdf
print(str1#没有结果,因为开始索引是0,结束索引是5,但是步长是-1,无法取值
print(str1)#也无法取值 因为步长值是1'''
'''print(str1) #输出结果为:hgfds
print(str1[:2:-1])#截取直接从末尾开始结束索引位2的值,通过负步长进行,不取结束索引,结果为:lkjhgf
print(str1[:2:1])#结果为as
print(str1[:2])#输出结果为:as不取结束索引
print(str1)#输出结果为:adgj不取结束索引
print(str1[:8:3])#输出结果为:afj
print(str1[::2])#不写结束索引 输出结果为:adgjl 所以有l '''

'''print(str1[-3::])#结束索引还有步长没有写 输出结果是:jkl 步长值默认是1
print(str[::])#输出值是asdfghjkl
print(str1[::-1])#反转输出 这也是面试经常问的 输出结果为lkjhgfdsa'''

#python中的字符串字符串的定义是通过单引号或者双引号括起来表示
'''str1='asdfghjkl'
str2="qwert"
a=1
print(type(str1))       #<class'str'>
print(type(str2))       #<class 'str'>
print(type(a))         #<class'int'>'''

#python中字符串常用的函数
#1、capitalize首字母大写
str1='duo ce shi'
str2='1duo_cE_shi'
print(str1.capitalize()) #输出结果为Duoceshi首字母为大写,其他为小写
print(str2.capitalize())#输出结果为1duoceshi 如果首字符不是字母,将不会变大写,后面所有字母都转化小写

#2、title 首字母大写的第二种方式,标题化
print(str1.title()) #输出结果为 Duo Ce Shi 首字母以及空格后面的第一个字母都变成大写
print(str2.title())#输出结果为:1Duo_Ce_Shi 非字母后面第一个字母都会变大写

#3、count 统计字符串中指定字符出现的次数
'''print(str1.count('d')) #输出结果是1因为str1里面只有一个d
print(str2.count('_'))#输出结果为:2 因为str2里面有2个_符号
print(str2.count('_',5,9))#输出结果是0
#4、join 拼接函数
print('@'.join(str1))#输出结果为;d@u@o@ @c@e@ @s@h@i,在每个字符后面都添加一个@字符
print(str2.join(str1))

lisit1=['1','2','3']
print(''.join(lisit1))#输出结果为:123 通过一个空字符使用join函数对lisit1中的字符元素进行拼接

#5、split 分隔函数 跟join相反'''
'''str1='asdfasdfasdf'
print(str1.split('s'))#输出结果为:['a', 'dfa', 'dfa', 'df'] 是一个列表在s所在的地方分隔开来
print(str1.split('s',1))#输出结果为:['a', 'dfasdfasdf']后面的一个1 意思就是只分隔一次'''

#6、stritp 删除某个字符开头和结尾的指定字符函数
str1='asdfa'
print(str1.strip('a'))#输出结果为sdf删除开头和结尾的a字符

#7、lstrip 删除某个字符串开头的指定字符函数
print(str1.lstrip('a'))#输出结果为sdfa删除字符串中开头的字符

#8、rstrip 删除某个字符串结尾的指定字符函数
print(str1.rstrip('a')) #删除字符串中结尾的a字符输出结果asdf

#9、startswith 判断字符串是否以指定字符开头   判断返回的是布尔值
'''str1='absadfba'
print(str1.startswith('a'))#输出结果为 Ture
print(str1.startswith('d')) #输出结果为 False

#10、endswith判断字符串是否以指定字符结尾
print(str1.endswith('a')) #输出值为Ture
print(str1.endswith('fba'))#输出值为Ture'''

#11、find 查找字符串中指定字符的索引位,从左往右搜索 若是查询不存在的指令字符就返回结果为:-1
'''str1='absadfba'
print(str1.find('a')) #返回结果是0 查找str1中第一个a字符的索引位 所以是0
print(str1.find('a',2,-1)) #返回结果是3查找str1中索引位2到索引位最后一个的a字符(从左开始第一个) 所以是3
#index函数和find函数,作用是一样的,不过如果index中不存在指定字符则报错
#12、rfind 从右往左查找
print(str1.rfind('b'))#查找字符串中指定字符的索引位,从右往左搜索'''

#13、replace 替换函数 语法(原值,新值,替换次数)
'''str1='absadfba'
print(str1.replace('a','O'))#输出结果是:ObsOdfbO没有指定就会全部替换
print(str1.replace('a','b',1))#输出结果是:bbsadfba写了替换次数 从左往右替换对应次数'''

'''#14、upper   小写字母改为大写
str1='absEdfba'
print(str1.upper())#输出结果为ABSADFBA 没有指定的话就会全部更改为大写

#15、lower大写字母改小写
str1='absEdfba'
print(str1.lower())#输出结果为:absedfba

#16、isupper判断字符串中的字母是否全为大写返回布尔值
print(str1.isupper()) #输出结果为:False

#17、islower判断字符中的字母是否全为小写
print(str1.islower()) #输出结果为:False

#18、isalnum 判断字符串是否已字母或者数字组合返回布尔值
print(str1.isalnum()) #输出结果为:Ture

#19、isdigit 判断字符串是否已数字组合,返回布尔值
print(str1.isdigit()) #输出结果False

#20、len返回长度
str4='asdf1234'
print(len(str4)) #输出结果为8一共有8个字符
lisit=
'''
#21、istitle判断字符串是否标题化返回布尔值 判断非字母后的第一个字母是否为大写
'''str1='AsdfGhjk'
print(str1.istitle())#输出结果为False'''



#python中的列表 lisit
#列表的2种定义方法
'''list1=# 方法一:直接通过[]进行定义
print(type(list1))
#方法二:通过list()方法进行定义列表,但是写入值只能是选可迭代对象(字符串、元组、列表),不能
#直接写入数值、字典等对象
list2=list('1234')
print(list2)

print(list2)#列表的索引操作
print(lst2[::-1])#列表的切片操作'''

'''#二维数组:在列表中包含列表元素
list1=]
print(list1) #通过索引获取list中的索引位3的列表元素 就是['a','b','c']
print(list1)#把获取到list1中的列表再次索引或者二维数组中的具体元素


#通过索引的方式去替换列表中的元素
list1=]
list1='dcs' #把list1中的索引位3的元素替换为'dcs'
print(list1)#结果为,'dcs']

#通过切片的方式去替换列表中的元素
list1=]
list1='dcs' #把list1中索引位3开始的元素替换为'dcs',但是通过切片的操作,赋值会被拆分元素
print(list1)#'''



#1、append添加,默认是添加到列表的末尾
'''l1=
l1.append('gz')
print(l1)   #输出结果为:

#2、extend 拼接列表
l1=
l2=['a','b','c']
l1.extend(l2)#l1列表对l2列表进行拼接,不会对l2列表造成影响
print(l1)#输出结果:'''

#3、insert插入值,根据索引值进行插入
'''l1=
l1.insert(2,'dcs')
print(l1) #输出结果: 若是插入的值超过索引位 ,则默认放在末尾

#4、remove删除列表中的元素,不能删除不存在的元素 否则会报错
l1=
l1.remove(3)
print(l1)#输出结果为若是列表中有多个元素是一致的只会删除第一个
l1.remove(l1)#通过索引的方式删除
print(l1)'''

#5、delpython中的删除作用的保留关键字
#l1=
#del l1
#print(l1)#输出结果为:

#6、index获取索引位从左往右搜索匹配到的第一个元素的索引位
#l1=
#print(l1.index('abc'))#输出结果是:2'abc'所在的索引位

#7、sort排序函数(默认升序)可通过reverse参数的值进行定义升序或者降序操作,
# 整形不能个字符进行大小匹配 若是列表里有不一样的无法进行排序,纯字符可以进行排序
l1=
l1.sort()
print(l1)
l1.sort(reverse=True)#降序操作
print(l1)
l1.sort(reverse=False)
print(l1)


#max 和 min函数,获取最大和最小值
l1=
print(max(l1)) # 6
print(min(l1)) # 2

#8、sorted 排序函数
l1=
print(sorted(l1,reverse=True)) #降序反之升序

#区别:sort函数是list类里面的方法,sort函数不仅仅对列表起作用,还可以对其他可迭代的对象起作用

#9、revers 反转输出
#面试题:说一下怎么一个列表进行反转输出
#方法1:通过切片,设置步长为-1
'''l1=['A','a','9','=','4','5']
print(l1[::-1])
#方法二:通过列表自带函数reverse进行反转输出
l1.reverse()
print(l1)'''
#10、pop函数
#1、默认移除列表最后一个元素,并返回元素值
#2、移除指定位置元素list1.pop(0)表示移除第一个元素
#3、在列表中pop函数是唯一一个既能改变列表元素,又有返回值
'''l1=['A','a','9','=','4','5']
print(l1.pop()) #可以通过pop函数获取被移除的值结果是:5
print(l1) #被移除之后的结果:['A','a', '9', '=', '4']

print(l1.pop(2))#通过索引的方式对列表进行操作
print(l1)'''

#11、count函数,统计函数
l1=['A','a','9','=','4','5','=']
print(l1.count('=')) #2有两个等号

#12、clear 清除函数,清空列表
l1=['A','a','9','=','4','5','=']
l1.clear()
print(l1)#[] 清除列表中的数据了 返回空列表




#python中的元组 tuple
#定义元组:通过一对()进行定义
#tup=('a',1,3,4)
#print(type(tup))#<class 'tuple'>

#t=(1,)#当元组中只有一个值的时候,后面要加逗号
#print(type(t))

#元组的常见操作
#1、对元组转换为列表
'''tup=('a',1,3,4)
l1=list(tup)
print(l1,type(l1)) #['a', 1, 3, 4] <class 'list'>

#2、对列表转换为元组
l1=['a',1,3,4]
tup1=tup1(l1)
print(tup1,type(tup1))#['a', 1, 3, 4] <class 'list'>

#3、对元组进行修改
tup=('a',1,3,4)
#tup.insert(0,'d')不能直接怼元组进行修改

#我们可以通过把元祖转换为列表的方式进行修改,修改完后再转换为元组
l1=list(tup)#
l1.insert(0,'d')
tup=tuple(l1)
print(tup)#['a', 1, 3, 4] <class 'list'>'''


'''元组和列表的区别
相同:
1、都是支持序列类型的容器对象,可以存放任何类型的数据
2、支持切片、迭代等操作
不同:
1、list是可以变的对象,元组tuple是不可变的数据
2、tuple不可变,所以使用tuple可以使代码更加安全

面试题:
元组中的元素可以修改吗
答:不可以,但是如果一定要修改可以通过间接的方法,先把元祖转换为列表再修改,修改完再改元组

2、元组和列表比 哪个的数据处理速度更快?
答:元组更快,因为固定值比可变值要快'''
#二维数组的一些注意点
#如果元组中存在列表元素,那么里面列表元素是可以改变的
#通过索引的方式去改变元组中的列表元组


页: [1]
查看完整版本: 第二天python笔记