欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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()