# 列表类型 # 1.insert()#插入 list1 = ['tank', 18, 'male', 3.0, 9, '广东'] list1.insert(2,'oldboy') print(list1) # 2.pop()#取出 # 3.remove()#移除 # 4.count()#查看个数 print(list1.count('tank')) # 5.index()#查看值得索引 print(list1.index('广东'), '---广东') # 6.clear()#清空列表的值 list1.clear() print(list1) # 7.copy()#浅拷贝 # 将list1的内存浅地址拷贝赋值给list2 list2 = list1.copy() print(list2, '添加值前') # 将list1的原地址直接赋值给了list3 list3 = list1 print(list3, '添加值前') # 深拷贝() from copy import deepcopy # 将list1的值深拷贝赋值给list4 list4 = deepcopy(list1) # 追加jason到list1中国 list1.append('jason') print(list2, '添加值后') print(list3, '添加值后') # 给list1中的可变列表进行追加值 list1[8].append('tank') # 打印直接赋值、深、浅拷贝的结果 # 浅拷贝:list1的列表中外层值改变对其不影响 # 但对list1中的可变类型进行修改则会随之改变值 print(list2) print(list3) # 深拷贝:把list1中的所有值完全拷贝到一个新的地址中 # 进而与list1完全隔离开 print(list4) # 8.extend()合并 list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # 9.reverse()反转 list1.reverse() print(list1) # 10.sort()排序 list3 = [1, 3, 5, 8, 10, 2, 4, 6] # 升序 list3.sort() print(list3) # 降序 list3.sort(reverse=True) print(list3) # 字典的内置方法(字典是无序的) # 1.按照key值取/存值 dict1 = {'name': '张琦', 'age': 18, 'sex': 'male', 'school': '安徽工程大学'} #根据key取张琦的学校 print(dict1['school']) print(dict1['sal']) #get() #第一个参数是字典的key #第二个的参数是默认值,若key存在则取key对应的值,否者取默认值 print(dict1.get('school','华南理工大学')) print(dict1.get('sal','15000')) #2.len print(len(dict1))#4 #3.成员运算in和not in print('name' in dict1)#True print('sal' in dict1)#False print('sal' not in dict1)#True #4.删除 del dict1['name'] print(dict1) #pop() #根据字典中的key取出对应的值赋值给变量name name = dict1.pop('name') print(dict1) print(name) #随机取出字典中的某个值 dict1.popitem() print(dict1) # 5.keys、values、items print(dict1.keys()) print(dict1.values()) print(dict1.items()) # 6.循环 for key in dict1: print(key) # 7.update() print(dict1) dict2 = {"work": "student"} #把dict2加到dict1字典中 dict1.update(dict2) print(dict1) # 元组类型(在小括号内,以逗号隔开存放多个值) # 注意:元组与列表的区,元组是不可变类型,列表是可变类型 tuple1 = (1, 2, 3) print(tuple1) # 优先掌握 # 1.按索引取值 print(tuple1[2]) # 2.切片(顾头不顾尾) print(tuple[0:6]) # (1,2,3,4,5,6) # 步长 print(tuple[0:6:2]) # 3.长度 print (len(tuple1)) #6 # 4.成员运算 in和 not in print(1 in tuple1) # True print(1 not in tuple1) # False # 5.循环 for line in tuple1: print(line) # 集合类型(一般用于去重) # 在{}以逗号隔开,可存放多个值,但集合会自带默认去重功能 set1 = {1, 2, 3, 4, 2, 1, 3, 4} print(set1) # 集合是无序的 set1 = set() set2 = {} print(set1) print(set2) set2['name'] = 'tank' print(type(set2))
以上为数据类型剩余内置方法
# 文件读写基本使用 # 对文本进行操作() # open(参数1:文件的绝对路径/文件的名字,参数2:操作模式,参数3:指定字符编码) # f :称之为 句柄 # r :避免转义符 # 打开文件会产生两种资源,一种是python解释器与python文件的资源,在程序结束python会自动回收。 # 另一种是操作系统打卡文件的资源,文件打开后,操作系统并不会帮我们自动收回,所以需要手动回收资源。 # copy path赋值文件目录绝对路径 #有歧义的路径在之前加上r以示区分 # 写文件 f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt', mode="wt", encoding="utf-8") f.write('hello tank!') f.close() # 读文件 f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt', # mode="rt", 默认rt 'r', encoding="utf-8") res = f.read() print(res) f.close() #文件追加模式 a f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt', # mode="at", 默认at模式 'a', encoding="utf-8" ) f.write('\nhello jason') f.close()
以上为文件管理备注
#文件处理值上下文管理:with #with会自带close()功能, #会在文件处理完以后自动调用close()关闭文件 #写文件 with open(r'file.txt','w',encoding='utf-8')as f: f.write('life is short,u need python!') #读文件 with open(r'file.txt', 'r', encoding='utf-8')as f: res = f.read() print(res) #文件追加 with open(r'file.txt','a',encoding='utf-8')as f: f.read('\nAAA')
以上为文件处理之上下文管理
#读写视频 with open('tianyan_sys.mp4','rb') as f, open('tianyan_sys_copy.mp4','wb')as w: res = f.read() print(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)
以上为图片与视频读写操作
''' 1.什么是函数? 函数相当于工具,需要事先准备好,在需要用是再使用 2.如何使用函数? 函数必须先定义、后调用。 ''' # 3.函数的语法: # # def cup(参数1,参数2···): # """ # 函数的声明 # """ # 函数体代码(逻辑代码) # return 返回值 ''' def:(全称defend)用来声明定义函数的关键字 函数名:看其名、知其意 ():括号,存放的是接收外界的参数。 注释:用来说明函数的作用。 函数体代码:逻辑代码。 return:后面跟函数的返回值 ''' #注册功能 #先定义 def register() ''' 此函数注册功能 :return: ''' while True: # 让用户输入用户名和密码 user = input('请输入用户名:').strip() pwd = input('请输入密码:').strip() re_pwd = input('请确认密码:').strip() ) #判断两次输入密码是否一致 if pwd == re_pwd: # 格式化字符串的三种方式 #user_info = '用户名:%s,密码:%s'% (user,pwd) # user_info = '用户名:{},密码:{}.format (user,pwd) #字符串前写一个f相当于调用format方法 user_info = f'用户名:{user},密码:{pwd}' #把用户信息写入文件中 with open(r'file.txt', 'w', encoding='utf-8')as f: f.write(user_info) break else: print('两次密码输入不一致,请重新输入!') #调用函数:函数名+括号 即调用函数。 register() ''' 函数在定义阶段发生的事情 1.先打开python解释器 2.加载05 函数基础.py文件。 3.python解释器会帮我们检测py文件中语法,但是只会检测python语法,不会执行函数体代码。 ''' def foo(): print('from foo!') # bar() #调用阶段,会执行foo函数体代码 foo()
以上为函数基础的一些内容
这次的作业为
编写一个函数实现以下功能
1.让用户输入用户名与密码
2.校验用户名是否存在
3.用户名存在后检验密码是否正确,若正确打印“登陆成功”
否则打印“用户名或密码错误”,并让用户重新输入
4.用户密码输入错误超过三次则退出循环。
def login(): i=1 while (i<=3): # 让用户输入用户名和密码 user = input('请输入用户名:').strip() pwd = input('请输入密码:').strip() with open(r'file.txt', 'r', encoding='utf-8')as f: res = f.read() res1 = res.split(' ') if res1[0] ==user: if res1[1] ==pwd: print('登陆成功') break else: print('用户名或密码错误,请重新登陆') else: print('用户名或密码错误') i=i+1 login()
结果截图
1.失败测试
2.成功测试
file文件截图
今天上课学到了很多的东西,尤其是tank老师很有趣,讲课让人印象深刻,接下来还会继续好好学python的。