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/8/16 20:09:16 阅读更多 →
Windows 11上搭建与配置Doom Emacs:从安装到个性化开发环境

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

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

2026/8/16 20:09:16 阅读更多 →
手把手把缠论画到通达信主图:3步编译ChanlunX插件并跑通笔线段中枢

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

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

2026/8/16 20:09:16 阅读更多 →

最新新闻

OpenClaw持久化记忆实现:从向量数据库到混合架构的实践指南

OpenClaw持久化记忆实现:从向量数据库到混合架构的实践指南

1. 从“失忆”到“长记性”:为什么OpenClaw的持久化记忆是个大问题 如果你最近在折腾本地AI智能体,尤其是OpenClaw,那你大概率遇到过这个让人抓狂的场景:昨天你和它聊得好好的,让它帮你整理了一份项目文档,…

2026/8/16 21:45:09 阅读更多 →
卡尔曼滤波详解——预测更新循环的直觉理解

卡尔曼滤波详解——预测更新循环的直觉理解

上篇聊了传感器数据融合的基础——为什么要融合、融合的层次、集中式和分布式架构的区别。讲到融合的具体实现时,我提了一嘴卡尔曼滤波,说它是传感器融合中最核心的工具。这话真不是吹的。你去面试任何一家做移动机器人的公司,面试官问"…

2026/8/16 21:45:09 阅读更多 →
远程调用HTTP 400错误排查指南:从协议原理到RestTemplate/Feign实战

远程调用HTTP 400错误排查指南:从协议原理到RestTemplate/Feign实战

1. 项目概述:当远程调用遇上400 Bad Request 在微服务架构和前后端分离成为主流的今天,远程调用(Remote Procedure Call, RPC)或者更具体地说,通过HTTP协议进行的服务间通信,已经像我们每天呼吸的空气一样普…

2026/8/16 21:45:09 阅读更多 →
扩展卡尔曼滤波EKF——非线性系统的状态估计

扩展卡尔曼滤波EKF——非线性系统的状态估计

上篇把卡尔曼滤波的预测-更新循环讲透了——蒙眼走路的直觉、五个核心方程、Q和R的工程调参。但卡尔曼滤波有个硬伤:它要求系统是线性的。真实世界的机器人系统,几乎都不是线性的。你想想,机器人转弯的时候,航向角和位置之间的关系…

2026/8/16 21:45:09 阅读更多 →
群晖Docker部署Odoo 13:低成本构建企业级ERP系统

群晖Docker部署Odoo 13:低成本构建企业级ERP系统

1. 项目概述:为什么要在群晖Docker里部署Odoo 13?如果你手头有一台群晖NAS,并且正在为小团队或初创公司寻找一个成本可控、功能全面又易于管理的企业资源计划(ERP)系统,那么“在群晖Docker里跑Odoo 13”这个…

2026/8/16 21:45:09 阅读更多 →
腾讯云轻量服务器部署OpenClaw AI智能体:云端部署全流程与优化指南

腾讯云轻量服务器部署OpenClaw AI智能体:云端部署全流程与优化指南

1. 项目概述:为什么OpenClaw的云端部署值得关注? 最近在AI智能体圈子里,OpenClaw(小龙虾)的热度持续攀升,它不再是一个遥不可及的实验室项目,而是越来越多开发者和企业开始尝试落地的工具。简单…

2026/8/16 21:44:08 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →