news 2026/9/3 1:25:34

python作业四

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python作业四

题目一:位运算: 计算56及-18的所有位运算符结果,并使在注释中体现计算过程

a = 56 b = -18 # 56的二进制:00000000 00000000 00000000 00111000 #-18的二进制:11111111 11111111 11111111 11101110 """ -18二进制实现过程: 1.18的原码:00000000 00000000 00000000 00010010 2.反码: 11111111 11111111 11111111 11101101 3.补码: 11111111 11111111 11111111 11101110 """ #与& # 按位与规则:对应位都为1则为1,否则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 00000000 00000000 00000000 00101000 bit_and = a & b print(f"按位与({a} & {b} = {bit_and})") #按位或 (|) # 按位或规则:对应位有一个为1则为1,否则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 11111111 11111111 11111111 11111110 bit_or = a | b print(f"按位或({a} | {b} = {bit_or})") #按位异或 (^) #按位异或规则:对应位不同则为1,相同则为0 # 56: 00000000 00000000 00000000 00111000 # -18: 11111111 11111111 11111111 11101110 # 结果: 11111111 11111111 11111111 11010110 bit_xor = a ^ b print(f"按位异或({a} ^ {b} = {bit_xor})") #按位取反 (~) # 按位取反规则:所有位取反(0变1,1变0),结果为 -(x+1) # 56: 00000000 00000000 00000000 00111000 # ~56: 11111111 11111111 11111111 11000111 bit_not_a = ~a print(f"按位取反 (~{a}) = {bit_not_a}") bit_not_b = ~b print(f"按位取反 (~{b}) = {bit_not_b}") #左移 (<<) # 左移规则:所有位向左移n位,右边补0,等价于乘以2^n # 56: 00000000 00000000 00000000 00111000 # 结果: 00000000 00000000 00000000 01110000 left_shift_a1 = a << 1 print(f"左移1位 ({a} << 1) = {left_shift_a1}") left_shift_b2 = b << 2 print(f"左移2位 ({b} << 2) = {left_shift_b2}") # 右移 (>>) #右移规则(正数):所有位向右移n位,左边补0,等价于整除2^n # 56的二进制:00111000 → 右移1位:00011100 right_shift_a1 = a >> 1 print(f"右移1位 ({a} >> 1) = {right_shift_a1}") # 右移规则(负数):所有位向右移n位,左边补1(符号位) right_shift_b2 = b >> 2 print(f"右移2位 ({b} >> 2) = {right_shift_b2}")
运行结果如下所示:

题目二:完成文件读取功能,任意读取某个文件内容时,请编写装饰器,实现写出文件时增加当前系统时间,并打印至控制台最后一行

#--------------第二题-------------------------- import datetime from functools import wraps def add_time(func): @wraps(func) def wrapper(file_path): try: content = func(file_path) now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") with open (file_path,"a",encoding="utf-8")as f : f.write(f"\n\n文件读取/修改时间:{now}") print("-"*30) print(f"当前系统时间:{now}") return content except Exception as e : print(f"错误:{e}") return wrapper # 简化版文件读取函数 @add_time def read_file(file_path): with open(file_path, "r", encoding="utf-8") as f: content = f.read() print(f"文件内容:\n{content}") # 打印原内容 return content if __name__ =="__main__": read_file("test.txt")
运行结果如下:

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

#-----------第三题------------------ def find_duplicate(nums): res = set() # 空集合存储已遍历的数字 for num in nums: if num in res: # 发现重复 return num res.add(num) # 未重复则加入集合 #测试: nums = [1,2,3,4,2]#重复数字为2 print(f"重复的数:{find_duplicate(nums)}")
运行结果如下:

题目四:完成登录系统,登录时数据使用序列化和反序列化.

import pickle import os # 定义用户数据存储文件路径 USER_DATA_FILE = "user_data.pkl" # ===================== 序列化/反序列化核心函数 ===================== def save_user_data(user_dict): """序列化用户数据并保存到文件(覆盖式保存)""" with open(USER_DATA_FILE, "wb") as f: pickle.dump(user_dict, f) # 序列化:字典→字节流 def load_user_data(): """从文件反序列化读取用户数据,无文件则返回空字典""" if not os.path.exists(USER_DATA_FILE): return {} with open(USER_DATA_FILE, "rb") as f: return pickle.load(f) # 反序列化:字节流→字典 # ===================== 登录/注册功能 ===================== def register(): """用户注册:序列化存储用户名和密码""" username = input("请输入注册用户名:").strip() password = input("请输入注册密码:").strip() # 读取已有用户数据 user_data = load_user_data() # 检查用户名是否已存在 if username in user_data: print(f"用户名 {username} 已存在!") return False # 新增用户并序列化保存 user_data[username] = password save_user_data(user_data) print(f"用户名 {username} 注册成功!") return True def login(): """用户登录:反序列化读取数据并校验""" username = input("请输入登录用户名:").strip() password = input("请输入登录密码:").strip() # 反序列化读取用户数据 user_data = load_user_data() # 校验用户名和密码 if username not in user_data: print(f" 用户名 {username} 不存在!") return False if user_data[username] != password: print("密码错误!") return False print(f"欢迎 {username},登录成功!") return True # ===================== 主程序入口 ===================== def main(): while True: print("\n===== 登录系统 =====") print("1. 注册") print("2. 登录") print("3. 退出") choice = input("请选择操作(1/2/3):").strip() if choice == "1": register() elif choice == "2": login() elif choice == "3": print("再见!欢迎下次使用~") break else: print("输入错误,请选择1/2/3!") if __name__ == "__main__": main()
运行结果如下:

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

win一键关闭所有用户程序:告别繁琐的手动退出,高效下班关机

一、引子 每天下班前&#xff0c;我都有一个“强迫症”习惯&#xff1a;把电脑上所有打开的程序都关掉&#xff0c;再执行关机。 这不仅是为了让第二天开机时系统清爽、启动迅速&#xff0c;更是为了避免&#xff1a; 浏览器恢复几十个标签页&#xff0c;拖慢系统&#xff1b…

作者头像 李华
网站建设 2026/9/3 0:37:24

无需动捕设备!Linly-Talker通过语音驱动面部动画

无需动捕设备&#xff01;Linly-Talker通过语音驱动面部动画 在电商直播间里&#xff0c;一位“主播”正微笑着介绍新品——口型精准对齐话语&#xff0c;眼神自然流转&#xff0c;语气亲切生动。可你不会想到&#xff0c;这位数字人从未走进摄影棚&#xff0c;也没有佩戴任何动…

作者头像 李华
网站建设 2026/9/2 22:45:41

通信系统仿真:无线通信系统仿真_(17).无线通信系统的优化设计

无线通信系统的优化设计 1. 优化设计的重要性 在无线通信系统中&#xff0c;优化设计是提高系统性能的关键步骤。无线通信环境复杂多变&#xff0c;包括信道衰落、噪声、干扰等因素&#xff0c;这些都对通信质量产生重大影响。优化设计旨在通过系统参数的调整&#xff0c;使系统…

作者头像 李华
网站建设 2026/9/2 5:54:48

论文查重不过?几款AI工具帮你降重

论文一直是很多大学生们的大难题从开题报告到最后的答辩每一步都非常消耗时间和精力这当中&#xff0c;查重更是困扰着大家的一个麻烦别担心&#xff0c;学长将给大家介绍几款AI论文降重工具亲测好用&#xff0c;建议收藏&#xff01;【主力推荐】SpeedAI在众多工具中&#xff…

作者头像 李华
网站建设 2026/9/2 19:40:29

Linly-Talker语音识别模块(ASR)精准度实测分析

Linly-Talker语音识别模块&#xff08;ASR&#xff09;精准度实测分析 在数字人从实验室走向真实场景的今天&#xff0c;一个关键问题摆在开发者面前&#xff1a;用户说了一句话&#xff0c;系统真的“听懂”了吗&#xff1f;这看似简单的交互背后&#xff0c;藏着自动语音识别…

作者头像 李华
网站建设 2026/9/2 20:55:24

Linly-Talker适合中小企业吗?ROI成本收益分析

Linly-Talker适合中小企业吗&#xff1f;ROI成本收益分析 在客服电话永远占线、宣传视频制作周期动辄两周、新品发布还得请专业主播的今天&#xff0c;不少中小企业主都在问&#xff1a;我们能不能也用上“数字人”&#xff1f;不是那种需要百万预算和动捕棚的影视级虚拟偶像&a…

作者头像 李华