Python 第四次作业

从轻量化到高精度:3DXML 转 STP 的工程数据升级技术指南 本文详细解析了3DXML转STP格式的工程数据升级技术,对比了两种格式在轻量化和高精度方面的特性差异,并提供了CATIA、FreeCAD及Python编程等多种专业级转换方案。通过实际案例展示了如何确保转换过程中的数据精度,适用于CAD设计、精密制造等场景,帮助工程师实现工程数据的高效升级。 阅读详情

1.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数 -- 可以使用多种方式 -异或运算/集合

def find_duplicate_set(nums):
    num_set = set()
    for num in nums:
        if num in num_set:
            return num  
        num_set.add(num)
    return -1

if __name__ == "__main__":
    nums1 = [1, 3, 4, 2, 2]
    nums2 = [3, 1, 3, 4, 2]
    nums3 = [1, 2, 3, 4, 4]
    
    print(f"数组{nums1}的重复数:{find_duplicate_set(nums1)}")  
    print(f"数组{nums2}的重复数:{find_duplicate_set(nums2)}")  
    print(f"数组{nums3}的重复数:{find_duplicate_set(nums3)}") 

2.编写一个登录功能,使用序列化完成,并使用装饰器完成用户名和密码的记录及每次登录时间
- 1.存储文件中的用户名和密码,使用序列化的形式--对象
- 2.读取文件中的数据-反序列化的对象,
- 3.用户输入登录的账户和密码,检验,完成登录操作
- 4.装饰器记录登录的账户和密码,及登录时间

import pickle
import time
import hashlib
from datetime import datetime
class User:
    def __init__(self, username, password):
        self.username = username  
        self.password = self.encrypt_password(password)
    
    @staticmethod
    def encrypt_password(password):
        salt = "login_serialize_2026"
        return hashlib.md5((password + salt).encode("utf-8")).hexdigest()
    
    def check_password(self, input_pwd):
        return self.encrypt_password(input_pwd) == self.password

def login_logger(func):
    def wrapper(*args, **kwargs):
        result, username, input_pwd = func(*args, **kwargs)
        
        login_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
        encrypted_pwd = User.encrypt_password(input_pwd) 
        
        log_content = f"时间:{login_time} | 用户名:{username} | 密码(加密):{encrypted_pwd} | 登录结果:{'成功' if result else '失败'}\n"
        with open("login_log.txt", "a", encoding="utf-8") as f:
            f.write(log_content)
        
        return result
    return wrapper

def save_users(users):
    with open("users.pkl", "wb") as f:
        pickle.dump(users, f)

def load_users():
    try:
        with open("users.pkl", "rb") as f:
            return pickle.load(f)
    except FileNotFoundError:
        return {}

@login_logger  
def login(username, input_pwd):
    users = load_users()
    if username not in users:
        print(f"用户名 {username} 不存在!")
        return False, username, input_pwd
    user_obj = users[username]
    if user_obj.check_password(input_pwd):
        print(f"登录成功!欢迎 {username}")
        return True, username, input_pwd
    else:
        print("密码错误!")
        return False, username, input_pwd

if __name__ == "__main__":
    username = input("请输入用户名:").strip()
    password = input("请输入密码:").strip()
    
    login(username, password)

3.测试位运算符,数字为23和-17的,并详细列出位运算的全过程

a = 23
b = -17

print(f"23 的二进制(8位补码):{bin(a)[2:].zfill(8)}") 
print(f"-17的二进制(8位补码):11101111(手动计算)")
print(f"按位与:23 & -17 = {a & b}")      
print(f"按位或:23 | -17 = {a | b}")      
print(f"按位异或:23 ^ -17 = {a ^ b}")     
print(f"按位取反~23 = {~a}")              
print(f"按位取反~-17 = {~b}")             
print(f"左移1位:23<<1 = {a << 1}")       
print(f"左移1位:-17<<1 = {b << 1}")       
print(f"右移1位:23>>1 = {a >> 1}")       
print(f"右移1位:-17>>1 = {b >> 1}") 

Neo4j 智能供应链应用源代码简析 本文简析Neo4j智能供应链应用的源代码,让你也可以快速开发自己的供应链应用。 阅读详情

相关推荐

数学概念 | 旋转矩阵、欧拉角、四元数

旋转矩阵、欧拉角、四元数概念及相关运算;

NapoleonCoder的博客 772

python第四次作业

1. def getPentagonalNumber(): for i in range(1,101): a=i*(3*i-1)/2 if i%10==0: print("\n") else: print("%d"%a,end=" ") getPentagonalNumber() 2. def...

qq_43077227的博客 331

Avellaneda & Stoikov’s market-making strategy 工程化处理

前2篇文章详细介绍了AS存货模型的做市策略,这次对于这些公式里面一些希腊字母的取值是如何计算的,如何做工程化并应用到生产环境中做一些说明。这个里面有一些重要参数:很直观,可以直接取值的有:s = current market mid price (中间价,也就是【最佳卖价+最佳买价】/2)q = quantity of assets in inventory of base asset (也就是买入多少价值的股票数量)

weixin_42480337的博客 7069

python的第四次作业

1. def getPentagonalNumber(): for i in range(1,101): a=i*(3*i-1)/2 if i%10==0: print("\n") else: print("%d"%a,end=" ") getPentagonalNumber() 2. def...

LVLIZ的博客 559

一文搞懂雷达脉冲压缩和匹配滤波器

为了解决传统单频脉冲雷达面临的作用距离和空间分辨力之间的矛盾,脉冲压缩理论被提出。在接收端设计一个和发射信号能够“共轭匹配”的网络来实现脉冲压缩。接收到的回波信号通过匹配滤波器时,滤波器的增益在信号越强的频率点越大;在信号越弱的频率点,增益越小,通过这样的方式使信号在时域更加集中。脉冲压缩技术大致可分为线性调频(LFM)和相位编码。其中LFM信号易于通过硬件或各种技术产生,但是进行匹配滤波后主旁瓣比高达13.2dB,在检测多个目标时,强目标的回波旁瓣可能会把弱小信号覆盖,导致弱小信号的检测受到影响。

FPGA入门到跑路 9937

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 1037

Python第四次作业

Atz5208189的博客 118

【保研经验】北科自动化到北大工学院

作者:办公室某学长 谢邀。。。作为拖延症晚期患者,希望能在我科开学前写完。 先简单介绍一下我的保研过程,申请了清华叉院&amp;北大叉院大数据&amp;北大信科计算机夏令营,三者都没入营;申请了自所夏令营(自所来宣讲时未交简历,这是重大错误),给了第二批补录但没去;最终九推去了北大工学院。我的这次保研最终成功的经历可以说有一定运气成分,不具有普适性,但在前期准备过程中还是有经验可以分享的。 ...

ruanjianbu的博客 1796

第四次python作业

给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数。完成文件读取功能,任意读取某个文件内容时,请编写装饰器,实现写出文件时增加当前系统时间,并打印至控制台最后一行。位运算: 计算56及-18的所有位运算符结果,并使在注释中体现计算过程。完成登录系统,登录时数据使用序列化和反序列化。

M2025113的博客 37

J-SCOPE实战:除了看波形,如何用它和JLink-RTT模式高效调试你的STM32变量?

本文详细介绍了如何利用J-SCOPE和JLink-RTT模式高效调试STM32变量,实现实时数据可视化。通过对比HSS和RTT模式的优劣,提供固件端配置、J-SCOPE设置及实战应用案例,帮助开发者快速掌握这一高效调试技术,特别适用于电机控制、传感器融合等需要实时监控的场景。

weixin_29159613的博客 446

AI Agent的知识蒸馏链:多阶段LLM模型优化

随着大语言模型(LLM)规模的不断扩大,如何在保持模型性能的同时提高其部署效率成为关键挑战。本文旨在探讨通过知识蒸馏技术构建多阶段优化链,实现LLM模型的高效压缩和性能优化。研究范围涵盖从基础理论到实际应用的完整知识蒸馏流程,特别关注AI Agent场景下的特殊需求和解决方案。本文首先介绍知识蒸馏的基本概念和背景,然后详细阐述多阶段蒸馏链的核心原理。接着,我们将深入探讨算法实现细节和数学模型,提供完整的代码示例。最后讨论实际应用、工具资源和未来发展方向。

AI大模型应用之禅 352

python第四次作业录屏讲解

录制文件:https://meeting.tencent.com/crm/KnW5P9e72f。录制文件:https://meeting.tencent.com/crm/KnW5o0zBd9。录制文件:https://meeting.tencent.com/crm/2k3eLe9493。录制文件:https://meeting.tencent.com/crm/KPvPy3Xe67。录制文件:https://meeting.tencent.com/crm/2rjEZMr361。

2403_89683767的博客 135

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Python 第三次作业
下一篇: Python 第五次作业
FoldWinCard
博客等级 码龄3年 48粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值