位运算: 计算56及-18的所有位运算符结果,并使在注释中体现计算过程
代码
""" a = 56 原码:0011 1000 b = -18 原码:0001 0010 反码:1110 1101 补码:1110 1110 bin a:0011 1000 b:1110 1110 a & b:0010 1000 40 a | b:1111 1110 -2 a ^ b:1101 0110 反码(1101 0101) 原码(0010 1010) -42 ~ a:1100 0111 -57 ~ b:0001 0001 17 a >>2:0000 1110 14 a <<2:1110 0000 224 b >>2:1111 1011 -5 b <<2:1011 1000 -72 """ import pickle a = 56 b = -18 print(f"a_bin:{bin(a)}\nb_bin:{bin(b)}") print(a & b) print(a | b) print(a ^ b) print(~ a) print(~ b) print(a >>2) print(a <<2) print(b >>2) print(b <<2)
运行结果
![]()
完成文件读取功能,任意读取某个文件内容时,请编写装饰器,实现写出文件时增加当前系统时间,并打印至控制台最后一行
代码
import time class print_time(): def __init__(self,time): self.time = time def __call__(self, func): def wrapper(*args,**kwargs): func(*args,**kwargs) print(f"当前系统时间:{self.time}") return wrapper @print_time(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) def read_file(): with open("../test_log2.txt","r+",encoding="utf-8") as f: print(f.read()) read_file()
运行结果
![]()
给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数
代码
import random def random_list(n): list_test = [] for i in range(1,n+1): list_test.append(i) list_test.append(random.randint(1,n)) return list_test list1 = random_list(10) print(list1) def check_list(list_test): for i in range(len(list_test)): for j in list_test[i+1:]: if list_test[i] == j: return j print(check_list(list1))
运行结果
![]()
完成登录系统,登录时数据使用序列化和反序列化.
代码
class MyException(Exception): msg = "" def __init__(self,msg): self.msg = msg username_mysql = "zhangsan" password_mysql = "123" import hashlib import pickle def encryption(s): salt = "@#$$%^&*&" res = hashlib.md5(s.encode("utf-8")) res.update(salt.encode("utf-8")) return res.hexdigest() def store(username,password): user_enc = pickle.dumps(encryption(username)) pwd_enc = pickle.dumps(encryption(password)) with open("../test_log.txt", "wb+") as f: f.write(user_enc) f.write(b"\n") f.write(pwd_enc) store(username_mysql,password_mysql) def login(username,password): with open("../test_log.txt","rb+") as f: if encryption(username) != pickle.loads(f.readline().strip()): raise MyException("用户名不存在") if encryption(password) != pickle.loads(f.readline().strip()): raise MyException("密码错误") return True username = input("username:") password = input("password:") try: login(username,password) except Exception as e: print(e) else: print("ok")
运行结果
![]()