news 2026/4/15 12:10:53

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/4/14 21:25:54

Linly-Talker + LangChain:构建具备记忆的智能数字人助理

Linly-Talker LangChain&#xff1a;构建具备记忆的智能数字人助理 在客户服务、在线教育和虚拟主播日益普及的今天&#xff0c;用户对交互体验的要求早已超越“能说话”这一基本功能。人们期待的是一个能够记住对话历史、理解上下文、带有个性甚至情感反馈的“活生生”的数字…

作者头像 李华
网站建设 2026/4/15 12:09:41

数字人直播新纪元:Linly-Talker助力电商24小时自动带货

数字人直播新纪元&#xff1a;Linly-Talker助力电商24小时自动带货 你有没有注意到&#xff0c;最近在抖音、淘宝的直播间里&#xff0c;有些“主播”从不喝水、不会疲劳&#xff0c;甚至凌晨三点还在激情喊着“三二一上链接”&#xff1f;这些不知疲倦的“人”&#xff0c;很可…

作者头像 李华
网站建设 2026/4/14 21:56:19

Linly-Talker部署教程:GPU环境下快速搭建数字人对话系统

Linly-Talker部署教程&#xff1a;GPU环境下快速搭建数字人对话系统 在虚拟主播、智能客服和AI助手日益普及的今天&#xff0c;如何以低成本构建一个能“听懂”用户提问、“张嘴说话”并具备个性化声音与表情的数字人&#xff0c;已成为企业与开发者关注的核心问题。传统方案依…

作者头像 李华
网站建设 2026/4/15 5:44:06

Linly-Talker在药品使用说明中的逐条强调播放设计

Linly-Talker在药品使用说明中的逐条强调播放设计在医院药房、社区药店甚至家庭场景中&#xff0c;一个反复出现的问题是&#xff1a;患者真的读懂了手中的药品说明书吗&#xff1f;密密麻麻的文字、专业术语的堆叠、警示信息被淹没在段落之间——这些都可能导致用药错误&#…

作者头像 李华
网站建设 2026/4/10 20:28:04

【前端知识点总结】Web身份认证 Cookie vs .Token

在 Web 开发的世界里,身份认证是守护应用大门的第一道锁。长久以来,Cookie 一直是这把锁的忠实守护者。但随着架构的演进,一位新的挑战者——Token——登上了历史舞台,并逐渐成为现代应用的主流选择。 它们之间不是简单的替代关系,而是一场关于设计哲学、安全性和架构演进…

作者头像 李华
网站建设 2026/4/14 8:24:03

当热流遇上代码:COMSOL与Maxwell的工程实践

comsol 热仿真&#xff08;流固耦合散热&#xff09;&#xff0c;Maxwell 2D/3D电场、磁场仿真。工程师的桌面上总有些奇妙的组合——比如左手握着咖啡杯散热&#xff0c;右手在软件里模拟散热。COMSOL的热仿真就像这杯咖啡的温度传递&#xff0c;流固耦合的微妙平衡需要代码来…

作者头像 李华