恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Python第4次作业
首页
资讯中心
/
Python第4次作业
Python第4次作业
发布时间:2026/9/6 3:16:49
第1题位运算 计算56及-18的所有位运算符结果并使在注释中体现计算过程【代码】# 1.位运算 计算56及-18的所有位运算符结果并使在注释中体现计算过程 # 数值定义 a 56 b -18 # bin()打印二进制负数输出带负号底层计算机存储为补码 # 56 二进制(正数原码) 00111000 # 18 原码00010010-18补码 ~18 1 print(--------位运算 按位与--------) res_and a b 规则对应位都为1结果才是1 5600111000 -18补码11101110 print(f{a} {b} {res_and}) print(\n-------位运算 | 按位或-------) res_or a | b # 任意一位为1结果位为1 print(f{a} | {b} {res_or}) print(\n------ ~按位取反-------) res_not_a ~a res_not_b ~b ~x -(x1) ~56 -(561) -57 ~(-18) -(-181) 17 print(f~{a} {res_not_a}) print(f~{b} {res_not_b})【运行结果】第2题完成文件读取功能任意读取某个文件内容时请编写装饰器实现写出文件时增加当前系统时间并打印至控制台最后一行【代码】 2.完成文件读取功能任意读取某个文件内容时 请编写装饰器实现写出文件时增加当前系统时间并打印至控制台最后一行 from datetime import datetime # 定义装饰器 def add_time_log(func): def wrapper(*args, **kwargs): #执行被装饰的读写函数 result func(*args, **kwargs) #获取当前系统时间 now_time datetime.now().strftime(%Y-%m-%d %H:%M:%S) with open(out.txt, a,encodingutf-8) as f: f.write(f\n{now_time}\n) #控制台输出时间 print(f文件末尾写入系统时间{now_time}) return result return wrapper # 读取文件函数使用装饰器 add_time_log def read_file(file_path): #读取任意文件内容 with open(file_path, r, encodingutf-8) as f: content f.read() print(content) return content # 测试代码 if __name__ __main__: #换成本机的文件路径 read_file(test.txt)【运行结果】第3题给定一个包含n1个整数的数组nums其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数请找出这个重复的数【代码】 3.给定一个包含n1个整数的数组nums其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数 假设只有一个重复的整数请找出这个重复的数 def findDuplicates(nums): #弗洛依德 slow nums[0] fast nums[0] # 第一阶段快慢指针相遇 while True: slow nums[slow] fast nums[nums[fast]] if slow fast: break # 第二阶段一个指针从头出发 p1 nums[0] p2 slow while p1 ! p2: p1 nums[p1] p2 nums[p2] return p1 # 测试 if __name__ __main__: arr [1,2,2,3,4,2] print(重复数字,findDuplicates(arr))【运行结果】第4题完成登录系统登录时数据使用序列化和反序列化【代码】import pickle import os FILE_NAME user.pkl # 序列化保存用户数据 def save_users(user_data): with open(FILE_NAME, wb) as f: pickle.dump(user_data, f) # 反序列化读取用户 def load_user(): # 判断文件存在并且不是空文件 if os.path.exists(FILE_NAME) and os.path.getsize(FILE_NAME) 0: with open(FILE_NAME, rb) as f: data pickle.load(f) return data else: return {} # 注册功能 def register(username,pwd): user_data load_user() if username in user_data: print(账号已经存在) return user_data[username] pwd save_users(user_data) # 变量统一是 user_data print(注册成功) # 登录功能 def login(username,pwd): user_data load_user() if username not in user_data: print(该账号不存在) return if user_data[username] pwd: print(登录成功) else: print(密码错误) if __name__ __main__: while True: op input(1‑注册 2‑登录 3‑退出\n请输入操作) if op 1: name input(输入用户名) pw input(输入密码) register(name,pw) elif op 2: name input(用户名) pw input(密码) login(name,pw) elif op 3: print(程序退出) break【运行结果】