学习中的零碎的记录

1、python递归和非递归实现二分查找

python 复制代码
def binary_search(target, num_list):
    if len(num_list) == 0:
        return False
    left, right = 0, len(num_list)-1
    while(left < right):
        mid = (left + right)>>1
        if num_list[mid] == target:
            return True
        elif num_list[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return False

def binary_search_recursive(target, num_list):
    if len(num_list) == 0:
        return False
    mid = len(num_list) // 2
    if num_list[mid] == target:
        return True
    elif num_list[mid] < target:
        return binary_search_recursive(target, num_list[mid+1:])
    else:
        return binary_search_recursive(target, num_list[:mid])


num_list = [1,3,4,5,6,7,8,9]
print(binary_search_recursive(7, num_list))

2、撰写函数。如果文件被占用,则关闭文件句柄。

完美解决Pyinstaller 打包exe 出现PermissionError: [Errno 13] Permission denie 问题-CSDN博客

python 复制代码
import win32file
def file_occupied(file_name): # occupied:占用
    # 自己加的模块,防止出现错误:PermissionError: [Errno 13] Permission denied:exe_path
    # 如果检测到文件被占用,则关闭该文件句柄
    try:
        fp = open(file_name,'wb')
    except:
        vHandle = win32file.CreateFile(file_name, win32file.GENERIC_READ, 0, None,win32file.OPEN_EXISTING,win32file.FILE_ATTRIBUTE_NORMAL, None)
        win32file.CloseHandle(vHandle)
    else:fp.close()

3、python 使用 subprocess.run打包之后闪出弹框解决办法:

python 复制代码
result = subprocess.run(['nslookup', url], capture_output=True, text=True, shell=True)

之前没有加shell=True的时候,会出现弹框,加上这个之后再打包就没有弹框出现了。

4、LInux下使用c语言 关闭指定端口的程序

cpp 复制代码
// 结束指定端口进程
int killPortProcess(const char* targetPort) {
    // 构造Shell命令
    char command[100];
    snprintf(command, sizeof(command), "fuser -k -n tcp %s/tcp", targetPort);

    // 使用system调用执行Shell命令
    int status = system(command);

    // 检查命令执行结果
    if (status == 0) {
        printf("Processes on port %s have been terminated.\n", targetPort);
        return 0;
    } else {
        printf("No processes found on port %s.\n", targetPort);
        return -1;
    }
}
相关推荐
wanzhong233339 分钟前
学习triton-第1课 向量加法
开发语言·python·高性能计算
三千道应用题1 小时前
C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法
开发语言·c#
忧郁的蛋~1 小时前
使用.NET标准库实现多任务并行处理的详细过程
开发语言·c#·.net
dragon_perfect1 小时前
全流程基于Yolov8实现在Label-Studio实现半自动标注,已经把整个流程理清楚,把所有的坑解决。
开发语言·python·yolo·labelstudio
kalvin_y_liu1 小时前
四款主流深度相机在Python/C#开发中的典型案例及技术实现方案
开发语言·python·数码相机
劲镝丶1 小时前
malloc概述
c语言·开发语言·c++
1373i2 小时前
【Python】pytorch数据操作
开发语言·pytorch·python
努力努力再努力wz2 小时前
【C++进阶系列】:万字详解红黑树(附模拟实现的源码)
java·linux·运维·c语言·开发语言·c++
枫fengw2 小时前
9.8 C++
开发语言·c++
王璐WL2 小时前
【C语言入门级教学】内存函数
c语言·开发语言·算法