Python学习之路(2)
程序员文章站
2024-02-25 10:07:28
...
一.标准数据类型学习
1.1数字
int、float、bool、complex(复数)
a, b, c, d = 20, 5.5, True, 4+3j
1.2字符串
t='.abc.ABCabcABCabc'
t.strip() #去掉字符串两边的空格和换行符
print (t + "TEST") # 连接字符串
print (t * 2) # 输出字符串两次
new_t =t.strip('.') #指定删除字符串两边的具体内容,这里是一个.
print(t.rstrip('.')) #删除右边的
print(t.lstrip('.')) #删除左边的
print(t.count('.')) #字符出现的次数
print(t.index('b')) #找某个字符串的下标,不存在报错
print(t.find('b')) #找某个字符串的下标,不存在返回-1
print(t.replace('abc','ABC')) #替换字符串
print(t.replace('abc','ABC',2)) #2代表从头替换几个,不写的话默认替换全部
print(t.upper()) #全部转成大写字母
print(t.lower()) #全部转成小写字母
y='python'
print(y.capitalize()) #首字母大写
print(y.startswith('n')) #判断是否以指定字符串开头
print(y.endswith('n')) #判断是否以指定字符串结尾
print(y.isupper()) #判断是否全大写字母
print(y.islower()) #判断是否全小写字母
print(y.isdigit()) #判断是否为纯数字
print(y.center(10)) #指定长度,字符串居中放置
print(y.center(50,"*")) #指定长度,字符串居中放置,其余以*补全
print(y.isspace()) #判断是否是空格
print(y.isidentifier()) #判断变量名是否合法
print(y.isalpha()) #判断是否是字母或者汉字,不能有数字和特殊符号
print(y.isalnum()) #判断是否没有特殊符号,只要没有就是True
print(y.format())
u ='insert into user Value ({username},{password},{addr},{email},{phone};)' #字符串格式化
news=u.format(addr='北京',phone=1223,email='[email protected]',username='niuniu',password='123456')
print(news)
1.3数组
stus =['aaa','bbb','测试','ccc']
#增加元素
stus.append('ddd') #在list末尾增加一个元素
stus.insert(0,'eee') #在制定位置增加元素
stus.insert(2,'fff') #在制定位置增加元素
stus.insert(20,'bbb') #如果制定的下标不存在,那么就在末尾增加
print(stus)
print('stus的长度是',len(stus))
改元素
stus[7]= 'hhh'
print('改完之后的',stus)
print(stus[-1]) #下标-1代表最后一个元素
#删元素
stus.pop() #默认删除最后一个元素
stus.pop(-2) #删除指定下标的元素
stus.remove('eee') #删除制定的元素
del stus[-1] #删除指定的元素
print(stus)
#查元素
print(stus[3])
print(stus)
stus.append('bbb')
result =stus.count('uuu') #查询某个元素在list里面出现的次数
#输出元素下标,如果有多个,返回第一个下标
#如果元素不存在,会报错
index=stus.index('bbb')
print(index)
stus.reverse() #反转元素
stus.sort() #排序,从小到大,逆序的话,先排序后反转
stus.sort(reverse=True) #逆序
stus.extend() #把括号里一个list里面元素加入到另外一个list
stus = ['杨静', '王志华', '王银梅', '乔美玲',
'段鑫琪', '王立文', '赵燕',
'杨华', '周永波', '杨静']
for index,stu in enumerate(stus): #enumerate计算下标,需要传2个值,同时取得下标和值,enumerate(stus,1) 代表从1开始
print("%s ===>%s"%(index,stu))
1.4多维数组
stu0 =[1,2,3,4]
stu1 =[1,2,3,4,['a','b','c']]
stu2 =[1,2,3,4,['a','b','c',['哈','喽','呀']]]
stu2[4][3][0] = '哈哈'
stu2[4][3].insert(0,'呵呵呵')
print(stu2)
print(stu2[4][3])
#切片,list取值的一种方式,指定范围取值
stu3 =[1,2,3,4,5,6,7,8,9,10]
new_stu =stu3[:] #重新赋值,和下面的有区别,内存处理?
new_stu1 =stu3
print(new_stu)
print(new_stu1)
print(stu3[2:5]) #冒号前面的是下标即从第几个开始取,要取几个值是“冒号后面的数-冒号前面的数”,冒号后面的数不是下标
print(stu3[:5]) #如果前面的数不写,代表从最开始取值
print(stu3[3:]) #如果后面的数不写,代表取到最后
print(stu3[-3:-1])
print(stu3[1:9:3]) #第二个冒号后面的是步长 结果是[2, 5, 8]
print(stu3[::-1]) #步长为负数,那么从右往左取值 [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
1.5字典
stu_info ={"name":"aaa","age":18,"addr":"北京"} #key-value格式,key不可以重复
print(stu_info['name']) #找不到key的话报错
print(stu_info.get('name')) #找不到key的话返回为空,get方法好
print(stu_info.get('uname','bbb')) #找不到key的话返回后面的默认值
#修改字典内值
stu_info['addr'] ='上海'
print(stu_info)
#新增
stu_info['phone'] ='133'
stu_info.setdefault('email','[email protected]')
stu_info.setdefault('age','[email protected]') #key存在的话,不修改原来的值
print(stu_info)
#删除
stu_info.pop('email')
print(stu_info)
stu_info.popitem() #随机删一个,一般删除末尾对
print(stu_info)
stu_info.clear() #清空字典
print(stu_info)
d1={}
d2={'a':'b'}
d1.update(d2)
print(d1)
print(d1.keys())
print(d1.values())
for i in stu_info: #循环的是字典里的key
print(i)
print('name' in stu_info) #判断keys是否在字典里, True
print('name' in stu_info.keys())
for i in stu_info: #循环的是字典里的key
s = "%s =》 %s" %(i,stu_info.get(i))
print(s)
print(i, stu_info.get(i))
for k,v in stu_info.items():
s = "%s =》 %s" %(k,v)
print(s)
二.操作文件
2.1打开文件
f=open('user.txt',encoding='utf-8') #当前目录,否则需要写绝对路径 ,文件必须存在才可以读
res =f .read() #读文件
print(res)
f.close()
2.2写文件
fw=open('user.txt',mode='a',encoding='utf-8') #写文件 mode='a',可以重复写,#mode='w',清空文件重新写
fw.write('xiaobai,123456\n')
fw.close()
下一篇: 最长连续序列-leecode