Python暑假第四次作业
第一题.每日一讲[链接]录制文件https://meeting.tencent.com/crm/Nob7k7dz6a第二题.位运算【代码】a 56 b -18 # res1 a b 56: 00000000 00111000 -18:11111111 11101110 运算后00000000 00101000 →40 print(res1) # | res2 a | b 56: 00000000 00111000 -18:11111111 11101110 |运算后11111111 11111110 →‑2 print(res2) # ^ res3 a ^ b 56: 00000000 00111000 -18:11111111 11101110 ^运算后11111111 11010110 →‑42 print(res3) # ~ res4_a ~a res4_b ~b ~56 -56‑1 -57 ~(-18) -(-18)-1 17 print(res4_a) print(res4_b) # res5_a a 1 res5_b b 1 561: 1110000 →112 ‑181‑36 print(res5_a) print(res5_b) # res6_a a 1 res6_b b 1 561 →28 ‑181 →‑9 print(res6_a) print(res6_b)【运行截图】第三题.完成文件读取功能任意读取某个文件内容时请编写装饰器实现写出文件时增加当前系统时间并打印至控制台最后一行【代码】import time def add_system_time(func): def wrapper(*args,**kwargs): now_time time.ctime() print(控制台输出当前系统时间,now_time) content f【{now_time}】\n args[0] return func(content,*args[1:],**kwargs) return wrapper add_system_time def write_file(content,filenamedemo.txt): with open(filename,a,encodingutf‑8) as f: f.write(content) def read_file(filenamedemo.txt): with open(filename,r,encodingutf‑8) as f: return f.read() write_file(测试文本内容) print(读取文件结果) print(read_file())【运行截图】第四题给定一个包含n1个整数的数组nums其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数请找出这个重复的数【代码】def find_chong(nums): slow nums[0] fast nums[0] while True: slow nums[slow] fast nums[nums[fast]] if slow fast: break ptr nums[0] while ptr ! slow: ptr nums[ptr] slow nums[slow] return ptr test1 [1,2,3,4,5,5] print(find_chong(test1))【运行截图】第五题完成登录系统登录时数据使用序列化和反序列化【代码】import pickle import os USER_FILE userdata.pkl def save_user(users): with open(USER_FILE,wb) as f: pickle.dump(users,f) def load_user(): if os.path.exists(USER_FILE): with open(USER_FILE,rb) as f: return pickle.load(f) else: return {} def main(): user_dict load_user() while True: print(登录系统) print(1 注册 2 登录 0 退出) op int(input(请输入选项)) if op 0: break elif op 1: username input(输入用户名) pwd input(输入密码) if username in user_dict: print(该账号已存在) else: user_dict[username] pwd save_user(user_dict) print(注册成功已序列化保存到文件) elif op 2: uname input(用户名) pw input(密码) data load_user() if uname in data and data[uname]pw: print(登录成功) else: print(用户名或者密码错误) main()【运行截图】