day3笔记

#字典dict
# d={
# 'username':'xiaohei',
# 'id':1,
# 'grade':'天马座',
# 'addr':'北京',
# 'age':18
# }
#增加
#如果key已存在,setdefault不能赋值
# d['age']=20
# d.setdefault('age',38)
# print(d)
# # 改
# d['age']=20
# # 查
#如果是不存在的key,[]会报错,get会返回None
# print(d['addr'])
# print(d.get('username1'))
# print(d.get('sex','男'))#如果没有就显示‘男’

# 删除
# d.pop('username')
# del d['addr']
#清空字典
# d.clear()
# print(d)
# print(d.keys())#拿到所有的key值
# print(d.values())#拿到所有的velue值
# d.update(a=1,b=2)#添加一个或多个key-value值
# print(d)
# l=d.keys()
# print(d.keys())
# print(l)
# print(type(l))



# users = {
# 'fd':'123451',
# 'xzh':'123452'
# }
# print(d.keys())
# print('fd' in users)#True判断这个key是否存在,in users,只是遍历users中的key值,不会去查找velue值
# print('123451' in users)#False

# print(d.items())
#[('username', 'xiaohei'), ('id', 1), ('grade', '天马座'), ('addr', '北京'), ('age', 18)]

# for k,v in d.items():
# print(k,v)
#l=d.get('username')
#print(l)
# for k in d:
# print(k,d.get(k))
#
# dict练习:注册账号
# users={
# 'fd':'123451',
# 'lhy':'123452'
# }
# for count in range(3):
# username=input('请输入用户名:').strip()
# passwd=input('请输入密码:').strip()
# cpwd=input('请确认密码:').strip()
# if username=='' or passwd=='' or cpwd=='':
# print('用户名密码不能为空!')
# elif passwd!=cpwd:
# print('密码不一致!')
# elif username in users:
# print('用户已存在!')
# else:
# users[username]=passwd
# print('注册成功!')
# print(users)
# break
# else:
# print('错误次数过多!')
#


# 字典练习
# info = {
# 'lgy':{
# 'age':18,
# 'addr':'北京',
# 'cars':['bmw','ben-z','audi']
# },
# 'fd':{
# 'house':{
# '北京':['昌平区','海淀区','朝阳区','西城区'],
# '上海':['静安区','闸北区'],
# },
# 'money':5000
#
# }
# }
# info['lgy']['cars'].append('五菱宏光')
# info['fd']['house']['北京'].remove('昌平区')
# info['fd']['money']+=4000000
# print(info)


# 元组tuple
# l=(1,2,3,4,5,5,6,3,1)#不可改变的list,元组一旦被创建,不可以改变里面的值
# print(l[1])
# print(l.index(5))
# print(l.count(6))
# l1=('abc',)#如果元组中只有一个元素,要在元素后面加‘,’
# print(type(l1))


# 字符串的方法
# s.count()
# s.index()
# s.strip()
# s.replace()
# s.format()
# s.upper()
# s.lower()
# s.isdigit()
# s.endswith()
# s.startswith()
#
# s.format_map()
# s.center()
# s.title()
# s.isspace()
# s.isupper()
# s.islower()
#s.capitalixe()
#
# s.split()
# s.join()


s = 'abcabcabcsdsdsdsdsdabcabc'
#print(s)
# print(s.count('a'))#统计a的个数,如果没有,显示0
# print(s.index('a'))#查找字符串,找到第一个返回其下标,找不到会报错
# print(s.find('d'))#找不到返回-1
# print(s.find('bc',2))
# print(s.index('bc',2))#从第二个下标开始往后找(包含第二个下标)
# print(s.index('bc',2,10))#从下标2开始,到10结束
#
# print(s.strip())#去掉字符串前后的空格
# print(s.rstrip())#去掉字符串右边的空格
# print(s.lstrip())#去掉字符串左边的空格
# s1=',,,,,,abcabcabc,,,,,,,,,'
# print(s1.strip(','))#去掉指定的字符串
# s2=' abcabc你好\n'
# print(s2)
# print(s2.strip())#默认去掉首尾的空格和换行符
# print(s2.strip())

# print(s.replace('a','A'))#把所有的a替换成A
# print(s.replace('a','A',2))#把所有的a替换成A,只替换前两次出出现的
#输入一段话,这段话中如果出现'傻逼'‘sb’‘煞笔’‘杀b’这些词,用*代替
# word_list=['傻逼','sb','煞笔','杀b']
# content=input('请输入:')
# for i in word_list:
# content=content.replace(i,'**')
# #content=content.replace('傻逼', '**')
# print(content)

#字符串格式化
# print('{},{}'.format(1,2))
# print('{name},{value}'.format(name='fangdan',value=1000))
# print('{name},{value}'.format_map({'name':'fangdan','value':1000}))
#大小写转换
# s='USA.usa'
# print(s.upper())#把字符串转换成大写
#print(s.lower())#把字符串转换成小写
#位数不够,前面补零
s='1'
#print(s.zfill(4))#0001

#判断是否是纯数字
#s='123'
#print(s.isdigit())#如果是返回Ture

#判断是以什么开头或者以什么结尾
# s='123werie.py'
# print(s.endswith('.py'))
# print(s.startswith('123'))

# print('欢迎登录!'.center(50,'*'))#字符串居中显示
# print('my car'.title())#文章标题中以空格隔开的每一个单词的首字母大写 My Car
# print(' q '.isspace())#传入的字符串是不是全是空格,全是空格返回Ture,否则返回False
# s='abc'
# print(s.isupper())#判断字符串是否全是大写字母
# print(s.islower())#判断字符串是否全是小写字母
# print(s.capitalize())#首字母大写

#分割字符串
# s='''
# 你好
# 早上好
# 中午好 下午好
# 晚上好
# 晚安
# '''
# print(s.split())#默认按照空格和换行符来分割字符串
# print(s.split('\n'))
# s1=s.split()
# print(s1,type(s1))
# s='abcdefg'
# print(s.split(','))#字符串中没有发现分隔符,就把这个字符串放到list里面,只有一个元素
#
# # 链接list(能循环的)每个元素的
# l=['你好', '早上好', '中午好', '下午好', '晚上好', '晚安']
# l_str=' '.join(l)
# print(l_str)
# l_str1=','.join(l)
# print(l_str1)



#切片 是list取值的一种方式
import string

# print(string.ascii_lowercase)
# print(string.ascii_uppercase)
# print(string.digits)
# print(string.ascii_letters)
# print(string.punctuation)

# l=['a','b','c','d','e','f','g','h','i']
# print(l[0:3])#切片的时候顾头不顾尾,从下标为0的元素开始取,连续取3个。
# print(l[3:])#从下标为3的元素开始取,一直到末尾
# print(l[:3])
# print(l[:])#取所有的元素
# print(l[0:10:1])#1 步长
# print(l[0:10:2])
# print(l[::-1])#步长为负数,取值是就是从右往左取,同时你的开始和结束的下标也要写成负数
# print(l[-1:-9:-3])
# s='abcdefg'
# print(s[::-1])
# t=(1,2,3,4,5,6)
# print(t[1:8:2])

# l=[0,1,2,2,3,4,5,6,7,8,9]#如果只有l一个列表,结果[1, 2, 3, 5, 7, 9],下标变化导致一部分元素未被取余判断
# l1=[0,1,2,2,3,4,5,6,7,8,9]
# print(l1)
# for i in l1:
# if i%2==0:
# l.remove(i)
# print(l)
# l=[0,1,2,2,3,4,5,6,7,8,9]
# l2=[]
# for i in l:
# l2.append(i)
# print(l2)
# for i in l2:
# if i%2==0:
# l.remove(i)
# print(l)

#浅拷贝、深拷贝
# l=[0,1,2,2,3,4,5]
# l1=l#浅拷贝,l,l1同时指向同一个内存地址
# import copy
# l=[0,1,2,2,3,4,5]
# l2=copy.deepcopy(l)#深拷贝,如果复制了一个变量,这两个变量其中一个发生变化,不应该影响另外一个的情况下,就要用深拷贝
# print(id(l))#查看内存地址
# print(id(l2))
#只有copy.deepcopy()是深拷贝,其他的都是浅拷贝
# l=[1,2,3,[4,5,6]]
# l2=l.copy()#修改列表中的列表元素,两个列表都发生改变
# l2=copy.copy()
# l2=l[:]
# l[1]='a'
# print(l)
# print(l2)
# l[-1].append('d')
# print(l)
# print(l2)

#非空即真,非零即真
#None {} () [] ''

# username1 = input('请输入username:')
# print(not username1.strip())
# if not username1.strip():#不为空
# print('username1不能为空')
# else:
# print('你输入的不为空',username1)


#操作文件
# 读文件
# open('a.txt')#在当前路径打开文件a.txt
# open('e:\book\a.txt')#写绝对路径
# open(r'e:\user\niuhanyang\a.txt')#路径前面加r,用原字符的意思,不要转意
#f=open('a.txt')#三种模式 w r a(写、读、附加),默认是读模式
# f=open('a.txt','r',encoding='utf-8')#有中文需要加encoding='utf-8'
#result=f.read()
# result=f.readlines()#把文件中的每一行作为一个元素,放到列表中
# result=f.readline()#调用一次读一行,在调用一次在读一行
# print(result)
#f1=open('b.txt')#读文件时,文件不存在会报错
#f.close()#文件打开后一定要关闭

#写文件
# name=['abc','def','wer','wer']
# f=open('a.txt','w')#只写模式,不能读,如果文件存在,打开后,立马清空原文件,重新写内容,如果不存在,创建一个新文件。
# #f.write('acv')#只能写字符串
# f.writelines(name)
# f.close()
# new_name='\n'.join(name)#换行
#
# numbers=[1,2,3,4,5]#把整型的列表元素转换成字符串类型
# for index in range(len(numbers)):
# numbers[index]=str*(numbers[index])
# print(numbers)

#r模式
# f=open('a.txt','a')
# f1=open('b.txt','a')#不存在的文件,在当前目录创建一个新文件
# #result=f.read()#不能读文件
# f.write('abcde')#在原文件的基础上继续写入新的内容
# f.close()
#文件指针,读写文件时与文件指针所在位置有关
#模式总结
#r w a
#r+ w+ a+
#r,r+ 打开不存在的文件都会报错
#w,w+ 打开文件清空原文件,w+可以写,但是读不出来,因为写后文件指针在末尾
#a,a+ 一打开文件,文件指针就在末尾

# f=open('a.txt','a+')
# f.seek(0)#吧文件指针移动到开头
# print(f.read())
# f.write('abc')#即使把指针挪到最前面了,写的时候还是在最后面写

f=open('a.txt','a+')
f.seek(0)
result=f.read()
print(result)
new_result=result.upper()
print(new_result)
f.seek(0)
f.truncate()#清空文件内容,清空文件之前要让文件指针回到文件开头
f.write(new_result)
f.seek(0)
result=f.read()
print(result)
f.close()

posted @ 2020-08-18 00:30  xianfeng1224  阅读(87)  评论(0)    收藏  举报