1.# 位运算:计算56和-18的所有位运算结果 # 注意:在计算机中,负数用补码表示 # 原值 a = 56 # 正数56 b = -18 # 负数-18 print("原始值:") print(f"56的二进制(原码): 00111000") print(f"-18的二进制(原码): 10010010") print(f"-18的二进制(反码): 11101101") print(f"-18的二进制(补码): 11101110") print() # 1. 按位与 (&) - 两个位都为1时结果才为1 # 计算过程: # 56(补码): 00111000 (正数原码、反码、补码相同) # -18(补码): 11101110 (负数在计算机中以补码存储) # 按位与: 00101000 = 40 result_and = a & b print(f"1. 按位与 (&): {a} & {b} = {result_and}") print(f" 计算过程: 00111000 & 11101110 = 00101000 = 40") print() # 2. 按位或 (|) - 两个位有一个为1时结果就为1 # 计算过程: # 56(补码): 00111000 # -18(补码): 11101110 # 按位或: 11111110 = -2 (补码) # 11111110(补码) → 11111101(反码) → 10000010(原码) = -2 result_or = a | b print(f"2. 按位或 (|): {a} | {b} = {result_or}") print(f" 计算过程: 00111000 | 11101110 = 11111110(补码) = -2") print() # 3. 按位异或 (^) - 两个位不同时结果为1 # 计算过程: # 56(补码): 00111000 # -18(补码): 11101110 # 按位异或: 11010110 = -42 (补码) # 11010110(补码) → 11010101(反码) → 10101010(原码) = -42 result_xor = a ^ b print(f"3. 按位异或 (^): {a} ^ {b} = {result_xor}") print(f" 计算过程: 00111000 ^ 11101110 = 11010110(补码) = -42") print() # 4. 按位取反 (~) - 每个位取反,0变1,1变0 # 注意:Python中~x = -x-1 # 计算过程: # 56(补码): 00111000 # 取反操作: 11000111 (补码) # 11000111(补码) → 11000110(反码) → 10111001(原码) = -57 result_not_a = ~a print(f"4.1 按位取反 (~): ~{a} = {result_not_a}") print(f" 计算过程: ~00111000 = 11000111(补码) = -57") print(f" Python特性: ~{a} = -{a}-1 = -{a+1} = -57") # -18(补码): 11101110 # 取反操作: 00010001 = 17 (正数补码就是原码) result_not_b = ~b print(f"4.2 按位取反 (~): ~{b} = {result_not_b}") print(f" 计算过程: ~11101110 = 00010001 = 17") print(f" Python特性: ~{b} = -{b}-1 = -(-18)-1 = 17") print() # 5. 左移运算 (<<) - 所有位向左移动,右侧补0 # 计算过程: # 56 << 2: 00111000 → 11100000 = 224 # -18 << 2: 11101110 → 10111000 = -72 (补码) # 10111000(补码) → 10110111(反码) → 11001000(原码) = -72 result_left_shift_a = a << 2 result_left_shift_b = b << 2 print(f"5.1 左移 (<<): {a} << 2 = {result_left_shift_a}") print(f" 计算过程: 00111000 << 2 = 11100000 = 224") print(f"5.2 左移 (<
2. def wrapper(*args, **kwargs): # 获取当前系统时间 current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 调用原始函数 result = func(*args, **kwargs) # 如果结果是字符串(文件内容),则添加时间戳 if isinstance(result, str): # 将内容写入文件(以追加模式) with open("output_with_timestamp.txt", "a", encoding="utf-8") as f: # 写入时间戳和内容 f.write(f"[{current_time}]\n") f.write(result) f.write("\n" + "="*50 + "\n\n") # 在控制台打印最后一行(时间戳) print(f"\n文件已写入,添加时间戳: {current_time}") print(f"输出文件: output_with_timestamp.txt") return result return wrapper # 文件读取函数,使用装饰器 @add_timestamp_to_file def read_file_with_timestamp(file_path): """读取文件内容,并自动添加时间戳写入新文件""" try: # 检查文件是否存在 if not os.path.exists(file_path): raise FileNotFoundError(f"文件不存在: {file_path}") # 检查是否是文件 if not os.path.isfile(file_path): raise ValueError(f"路径不是文件: {file_path}") # 读取文件内容 with open(file_path, "r", encoding="utf-8") as f: content = f.read() # 打印文件信息到控制台 file_size = os.path.getsize(file_path) file_mod_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path)) print(f"文件读取成功!") print(f"文件路径: {file_path}") print(f"文件大小: {file_size} 字节") print(f"最后修改时间: {file_mod_time}") print(f"内容预览 (前500字符):") print("-" * 50) print(content[:500] + ("..." if len(content) > 500 else "")) print("-" * 50) return content except Exception as e: print(f"读取文件时出错: {e}") return None # 文件写入函数,
3.import os import datetime from functools import wraps # 装饰器:用于给文件写入操作添加时间戳 def add_timestamp_to_file(func): """装饰器:在写入文件时添加当前系统时间""" @wraps(func) def findDuplicate_sort(nums): nums.sort() # 排序,时间复杂度O(nlogn) for i in range(len(nums) - 1): if nums[i] == nums[i + 1]: return nums[i] return -1
4.class SimpleLoginSystem: def __init__(self, data_file="users.pkl"): self.data_file = data_file self.users = {} self.current_user = None self.load_data() def load_data(self): """从文件反序列化用户数据""" try: if os.path.exists(self.data_file): with open(self.data_file, 'rb') as f: self.users = pickle.load(f) print(f"已加载 {len(self.users)} 个用户") else: print("用户数据文件不存在,将创建新文件") self.users = {} except Exception as e: print(f"加载数据时出错: {e}") self.users = {} def save_data(self): """序列化用户数据到文件""" try: with open(self.data_file, 'wb') as f: pickle.dump(self.users, f) print("用户数据已保存") except Exception as e: print(f"保存数据时出错: {e}") def register(self): """用户注册""" print("\n--- 用户注册 ---") username = input("请输入用户名: ") if username in self.users: print("用户名已存在!") return password = input("请输入密码: ") confirm_password = input("请确认密码: ") if password != confirm_password: print("两次输入的密码不一致!") return # 创建新用户 self.users[username] = User(username, password) self.save_data() print(f"用户 '{username}' 注册成功!") def login(self): """用户登录""" print("\n--- 用户登录 ---") username = input("请输入用户名: ") password = input("请输入密码: ") if username not in self.users: print("用户名不存在!") return False