python第四次作业

  1. 位运算:计算 56 及 - 18 的所有位运算符结果,并使在注释中体现计算过程
python 复制代码
# 56的原码: 00111000  -18的源码:10010010 反码:11101101 补码:11101110
# & 与 
# 00111000 & 11101110 = 00101000
# 00111000 | 11101110 = 11111110
# 00111000 ^ 11101110 = 11010110
  1. 完成文件读取功能,任意读取某个文件内容时,请编写装饰器,实现写出文件时增加当前系统时间,并打印至控制台最后一行
python 复制代码
import time
class wirte_file2():
    def __init__(self,time):
        self.time = time
    def __call__(self,func):
        def wrapper(*args, **kwargs):
            with open("../test_log.txt", "a+") as f:
                f.write(f"time:{self.time}\n")
            func(*args, **kwargs)
        return wrapper

@wirte_file2(time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) )
def test3(str):
    with open("../test_log.txt", "a+") as f:
        f.write(str)

test3("a\n")
  1. 给定一个包含 n+1 个整数的数组 nums,其数字在 1 到 n 之间 (包含 1 和 n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数
python 复制代码
def find_duplicate(nums):
    nums.sort()
    for i in range(1,len(nums)):
        if nums[i] == nums[i-1]:
            return nums[i]
    return -1

nums1 = [1, 3, 4, 2,2]
print(find_duplicate(nums1))

运行结果:

  1. 完成登录系统,登录时数据使用序列化和反序列化.
python 复制代码
import pickle
import os

USER_FILE = "users.pkl"
# 初始化用户文件
if not os.path.exists(USER_FILE):
    with open(USER_FILE, 'wb') as f:
        pickle.dump({}, f)

def register(username, password):
    with open(USER_FILE, 'rb') as f:
        users = pickle.load(f)
    if username in users:
        return "用户名已存在"
    users[username] = password
    with open(USER_FILE, 'wb') as f:
        pickle.dump(users, f)
    return "注册成功"

def login(username, password):
    with open(USER_FILE, 'rb') as f:
        users = pickle.load(f)
    if username not in users:
        return "用户名不存在"
    return "登录成功" if users[username] == password else "密码错误"

register("user1", "123456")
login("user1", "123456") 

运行结果:

相关推荐
denlaku2 分钟前
JDK 13 新特性详解
java·开发语言
打工仔折腾 AI5 分钟前
极空间用 Docker 部署 Photopea:网页版 PS 的私有化实践
运维·后端·python·docker·容器·langchain·ai agent 实战
Eiceblue13 分钟前
使用 Python 实现 Excel 行列转置(保留单元格样式)
前端·python·excel
念越14 分钟前
题库、练习与错题本代码阅读
开发语言·数据结构
WeiXin_DZbishe15 分钟前
基于Node.js的马拉松赛事管理系统的设计与实现-计算机毕设 附源码【课程设计】90211
java·javascript·vue.js·python·php·课程设计
l1t16 分钟前
几种数据库软件count(distinct)和count()from group by子查询性能测试
开发语言·数据库
熊猫钓鱼>_>25 分钟前
大学图论第 6 讲:网络流与二分图匹配——对偶性让瓶颈自己现形
开发语言·算法·面试·职场和发展·图论·校招·面经
方便面不加香菜25 分钟前
C++ 关于多态的知识点讲解
开发语言·c++
计算机编程指导师29 分钟前
计算机毕设选题推荐:基于Spark+Django的黄金价格历史数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·计算机·spark·django·课程设计·黄金价格
yi01137 分钟前
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?
笔记·python·算法·leetcode·双指针·滑动窗口