python练习4
1.给定一个包含n1个整数的数组nums其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数请找出这个重复的数 -- 可以使用多种方式 -异或运算/集合def find_duplicate_xor(nums): 使用异或运算找出重复的数字。 时间复杂度: O(n) 空间复杂度: O(1) n len(nums) - 1 result 0 # 将数组中的所有元素进行异或 for num in nums: result ^ num # 将1到n的所有整数进行异或 for i in range(1, n 1): result ^ i return result # 示例 nums1 [1, 3, 4, 2, 2] print(f数组 {nums1} 中重复的数字是 (使用异或): {find_duplicate_xor(nums1)}) # 输出: 2 nums2 [3, 1, 3, 4, 2] print(f数组 {nums2} 中重复的数字是 (使用异或): {find_duplicate_xor(nums2)}) # 输出: 32.编写一个登录功能使用序列化完成并使用装饰器完成用户名和密码的记录及每次登录时间- 1.存储文件中的用户名和密码使用序列化的形式--对象- 2.读取文件中的数据-反序列化的对象- 3.用户输入登录的账户和密码检验完成登录操作- 4.装饰器记录登录的账户和密码及登录时间import pickle import datetime import os # 用户数据文件名 USER_DATA_FILE users.pkl LOGIN_LOG_FILE login_log.txt # --- 1. 存储文件中的用户名和密码使用序列化的形式 -- 对象 --- def initialize_users(): 初始化用户数据文件 users { admin: password123, user1: mysecret } with open(USER_DATA_FILE, wb) as f: pickle.dump(users, f) print(f已初始化用户数据到 {USER_DATA_FILE}) # --- 2. 读取文件中的数据 - 反序列化的对象 --- def load_users(): 从文件中加载用户数据 if not os.path.exists(USER_DATA_FILE): print(f用户数据文件 {USER_DATA_FILE} 不存在。) return {} with open(USER_DATA_FILE, rb) as f: return pickle.load(f) # --- 4. 装饰器记录登录的账户和密码及登录时间 --- def log_login(func): 装饰器记录登录信息 def wrapper(username, password): timestamp datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S) log_message f[{timestamp}] 尝试登录: 账户{username}, 密码{password}\n with open(LOGIN_LOG_FILE, a) as f: f.write(log_message) print(log_message.strip()) # 在控制台也打印一条消息 return func(username, password) return wrapper # --- 3. 用户输入登录的账户和密码检验完成登录操作 --- log_login def login(username, password): 登录函数 users load_users() if username in users and users[username] password: print(f登录成功欢迎 {username}。) return True else: print(f登录失败用户名或密码错误。) return False # --- 测试 --- if __name__ __main__: # 1. 初始化用户数据 initialize_users() # 2. 清空之前的登录日志方便观察 if os.path.exists(LOGIN_LOG_FILE): os.remove(LOGIN_LOG_FILE) print(\n--- 开始登录测试 ---) # 测试1: 成功登录 login(admin, password123) # 测试2: 密码错误 login(user1, wrong_password) # 测试3: 用户名不存在 login(new_user, any_password) # 测试4: 再次成功登录 login(user1, mysecret) print(f\n--- 登录日志已写入 {LOGIN_LOG_FILE} ---) # 可以手动打开 login_log.txt 文件查看内容3.测试位运算符数字为23和-17的并详细列出位运算的全过程23 -1723: 00000000 00000000 00000000 00010111-17: 11111111 11111111 11111111 11101111结果: 00000000 00000000 00000000 00000111 (十进制: 7)23 | -1723: 00000000 00000000 00000000 00010111-17: 11111111 11111111 11111111 11101111结果: 11111111 11111111 11111111 11111111 (十进制: -1)23 ^ -1723: 00000000 00000000 00000000 00010111-17: 11111111 11111111 11111111 11101111结果: 11111111 11111111 11111111 11111000 (十进制: -8)23和-1723: 00000000 00000000 00000000 0001011123: 11111111 11111111 11111111 11101000 (十进制: -24)

相关新闻

如何用GetQzonehistory把QQ空间十年历史说说一次导出?

如何用GetQzonehistory把QQ空间十年历史说说一次导出?

如何用GetQzonehistory把QQ空间十年历史说说一次导出? 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 某个深夜,你心血来潮点开QQ空间,想翻翻十年前那…

2026/10/7 14:26:46 阅读更多 →
Windows 11上搭建与配置Doom Emacs:从安装到个性化开发环境

Windows 11上搭建与配置Doom Emacs:从安装到个性化开发环境

1. 从Vim到Emacs:为什么我最终选择了Doom Emacs 作为一个在Windows和Linux环境下都折腾过不少编辑器的人,我的编辑器之路可以说是“从一而终”的折腾。最早接触的是Vim,被它的高效和键盘流操作深深吸引,但配置起来实在是个无底洞&…

2026/10/6 9:50:19 阅读更多 →
手把手把缠论画到通达信主图:3步编译ChanlunX插件并跑通笔线段中枢

手把手把缠论画到通达信主图:3步编译ChanlunX插件并跑通笔线段中枢

手把手把缠论画到通达信主图:3步编译ChanlunX插件并跑通笔线段中枢 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX 是一款面向通达信金融终端的缠论可视化插件,它通过 DL…

2026/10/6 1:47:10 阅读更多 →

最新新闻

实战外业实训|10 月中旬,沈阳周边无人机巡检 + 测绘项目实操,跟着项目练真本事

实战外业实训|10 月中旬,沈阳周边无人机巡检 + 测绘项目实操,跟着项目练真本事

低空经济持续升温,电力巡检、实景三维测绘已经成为无人机飞手就业接单的两大核心赛道。很多学员考完执照,能完成基础起降,却缺少真实工程项目的外业作业经验。面对野外复杂地形、多变风力、现场航线规划、隐患识别、数据采集等实战场景&#…

2026/10/7 14:26:18 阅读更多 →
不少企业经常谈起流程、ERP、数字化,三者到底是什么关系?

不少企业经常谈起流程、ERP、数字化,三者到底是什么关系?

在工厂精益升级、现场整改、厂区规划的过程中,经常会听到三个高频词:流程、ERP、数字化。很多制造企业的管理者一直分不清三者的边界,经常陷入两个典型误区:一是觉得上线ERP系统,就是完成了数字化转型;二是…

2026/10/7 14:26:18 阅读更多 →
同一个模型,两张榜单差了 15 分:大模型评测到底还能信谁——用 TaoToken 统一 Key 复现 SWE-bench 与 Agent benchmark 的实操记录

同一个模型,两张榜单差了 15 分:大模型评测到底还能信谁——用 TaoToken 统一 Key 复现 SWE-bench 与 Agent benchmark 的实操记录

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

2026/10/7 14:26:18 阅读更多 →
Gemini客户端全平台配置指南:TaoToken统一Key接入与多端验证

Gemini客户端全平台配置指南:TaoToken统一Key接入与多端验证

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

2026/10/7 14:26:18 阅读更多 →
OpenClaw 办公自动化实战:批量处理、数据整理与流程自动化

OpenClaw 办公自动化实战:批量处理、数据整理与流程自动化

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

2026/10/7 14:26:18 阅读更多 →
vscode使用Excel插件导致codex插件无法粘贴图片,TaoToken统一Key通道下的排查与修复

vscode使用Excel插件导致codex插件无法粘贴图片,TaoToken统一Key通道下的排查与修复

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

2026/10/7 14:25:18 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/7 13:34:55 阅读更多 →