news 2026/9/6 3:16:01

Python第4次作业

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python第4次作业

第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 56:00111000 -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 = -(x+1) ~56 = -(56+1) = -57 ~(-18) = -(-18+1) = 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",encoding="utf-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", encoding="utf-8") as f: content = f.read() print(content) return content # 测试代码 if __name__ == "__main__": #换成本机的文件路径 read_file("test.txt")

【运行结果】

第3题

给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数

【代码】

""" 3.给定一个包含n+1个整数的数组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

【运行结果】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 3:14:34

单相APFC仿真实战:Simulink建模、PI整定与波形优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 3:09:05

2026代码管理平台选型指南:从Git托管到研发协作升级

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 3:09:05

DeepSeek 涨价了,你换了吗?——技术视角下的成本与选型思考

1. 引言:DeepSeek 涨价,开发者圈炸了 最近 DeepSeek 官方宣布调整 API 价格,消息一出,开发者群里立刻炸开了锅。有人连夜对比各家大模型报价,有人开始盘算迁移成本,也有人淡定表示“早就预料到了”。 作为技…

作者头像 李华
网站建设 2026/9/6 3:07:02

SSM+VUE家庭食谱管理系统:前后端分离开发实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 3:05:56

DoIP诊断全解析:从DHCP/AutoIP到车辆发现与路由激活

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华