今日内容:1、数据类型剩余的内置方法
2、字符编码
3、文件处理
4、函数基础
作业一
列表类型: list1=['tank',18,'male',3.0,9,'广东'] 插入 list1.insert(2,'oldboy') print(list1) print(list1.count('tank')) list2=list1.copy() print(list2) list3=list1 深拷贝:把list1中的所有值完全拷贝到一个新的地址中,进而与list1完全隔离开 浅拷贝:list1的列表中外层值改变对其不影响,但对list1中的可变类型进行修改则会随之改变值 list1 list1=[1,2,3] list2=[4,5,6] list1.extend(list2) print(list1) list1.reverse() print(list1) list3=[1,3,5,8,10,2,4,6] list3.sort() print(list3) list3.sort(reverse=True) print(list3) 一 字典的内置方法(字典是无序的) dict1=('name':'zhangqi','age':18,'sex':'male','school':'anhuigongchendaxue') print(dict1) print('name' in dict1) del dict1["name"] print[dict1] print(dict1) print(name) dict1.popitem() print(dict1) print(dict1.keys()) print(dict1.values()) print(dict1.items()) for key in dict1: print(key) print(dict1) dict2={"work":"student"} dict1.update(dict2) print(dict1) 二 元组类型(在小括号内,以逗号隔开存放多个值) tuple1=(1,2,3,4,5,6) print(tuple1) print(tuple1[2]) print(1 in tuple1) print(1 not in tuple1) 三 集合类型(一般用于去重) 在{}以逗号隔开,可存放多个值,但集合会自带默认去重功能。 集合是无序的 set1={1,2,3,4,,2,1,3,4} print(set1) set1=set() set2={} print(set1) print(set2) set2['name']='tank' print(type(set2)) 文件操作 f=open(r'',mode="wt",encoding="utf-8") f.write('hello anhuigongchendaxue') f.close() set1={1,2,3,4,2,1,3,4} print(set1) res=requests.get(https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=SyntaxError%3A%20invalid%20syntax&step_word=&hs=0&pn=0&spn=0&di=780&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=572336628%2C1786928497&os=90300731%2C188277195&simid=3447479157%2C485107579&adpicid=0&lpn=0&ln=276&fr=&fmq=1560323885747_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined©right=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=15&oriquery=&objurl=http%3A%2F%2Fpic7.zhimg.com%2Fv2-89ddba0f2f2f01b00aba6104cba20cf0_r.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3F3tw5w4_z%26e3Bp7xt_z%26e3Bv54_z%26e3BvgAzdH3Fetjok-mbbc0nnbb8mdn9-mbbc0nnbb8mdn9ald9_z%26e3Bip4s&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined) # print(res.content) # import requests.get('https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=SyntaxError%3A%20invalid%20syntax&step_word=&hs=0&pn=0&spn=0&di=780&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=572336628%2C1786928497&os=90300731%2C188277195&simid=3447479157%2C485107579&adpicid=0&lpn=0&ln=276&fr=&fmq=1560323885747_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined©right=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=15&oriquery=&objurl=http%3A%2F%2Fpic7.zhimg.com%2Fv2-89ddba0f2f2f01b00aba6104cba20cf0_r.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3F3tw5w4_z%26e3Bp7xt_z%26e3Bv54_z%26e3BvgAzdH3Fetjok-mbbc0nnbb8mdn9-mbbc0nnbb8mdn9ald9_z%26e3Bip4s&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined') with open('dashuaibi.jpg','wb')as f: f.write('res.content') 文件处理之上下文管理: with with会自带close()功能, 会在文件处理完以后自动调用close()关闭文件 写文件 with open(r'file1.txt', 'w', encoding='utf-8') as f: f.write('life is short, u need python!') # 读文件 with open(r'file1.txt', 'r', encoding='utf-8') as f: res = f.read() print(res) # 文件追加 with open(r'file1.txt', 'a', encoding='utf-8') as f: f.write('\n AAA') # import requests # pip3 install requests # res = requests.get( # '某网站.jpg') # print(res.content) # # # 写入图片 # with open('大帅比.jpg', 'wb') as f: # f.write(res.content) # # # # 读取图片 # with open('大帅比.jpg', 'rb') as f: # res = f.read() # print(res) # # # # 文件拷贝操作 # with open('大帅比.jpg', 'rb') as f, open('小哥哥.jpg', 'wb') as w: # res = f.read() # w.write(res) # # # 读写视频 # with open('tianyan_sys.mp4', 'rb') as f, open('tianyan_sys_copy.mp4', 'wb') as w: # res = f.read() # print(res) # w.write(res) 一行一行读文件 with open('tianyan_sys.mp4', 'rb') as f, open('tianyan_sys_copy.mp4', 'wb') as w: 一次打开文件所有内容,若文件的大小超出内存的大小会导致内存溢出 # f.read() 一行一行读取文件内容,一行一行写入文件中,避免内存溢出 for line in f: w.write(line) res = f.read() print(res) w.write(res) # 什么是函数 # 函数相当于工具,需要事先准备好,在需要时再使用 # 如何使用函数 # 函数必须先定义,后调用 # 函数的语法 # def cup(参数1,参数二...): # """函数的声明 # 水杯,用来喝水 # """ # 函数体代码(逻辑代码) # """def:(全称defind)用来声明定义函数的关键字""" # def register(): # while True: # user=input('请输入用户名:').strip() # pwd=input('请输入密码:').strip() # re_pwd=input('请确认密码:').strip() # if pwd==re_pwd: # user_info=f'用户名:{user},密码:{pwd}' # with open('user.txt','w',encoding='utf-8')as f: # f.write(user_info) # break # else: # print(' ') # register() ''' 函数在定义阶段发生的事情: 1.先打开python解释器。 2.加载05 函数基础.py 文件。 3.python解释器会帮我们检测py文件中语法, 但是只会检测python语法,不会执行函数体代码。 '''
作业二
1、让用户输入用户名与密码
2、校验用户名是否存在
3、用户名存在后检验密码是否正确,若正确打印"登录成功",
否则打印"用户名或密码错误",并让用户重新输入。
4、用户密码输入错误超过三次则退出循环。
def loading():