编程tricks集锦(持续更新)

Matlab:

  1. 判断某字符串中是否含另一个字符串或字符

    strfind

  2. cell元素查找:

    [x y] =ind2sub(size(cellArray),find(cellfun(@(x)strcmp(x,var),cellArray)));
    

C++:

  1. 二维数组动态分配内存和释放

    template <class T>
    void make2dArray(T**&x, int numberOfRows, int numberOfColumns){
     x = new T*[numberOfRows];
     for(int i=0;i<numberOfRows;i++)
         x[i] = new T[numberOfColumns];
    }
    template <class T>
    void delete2dArray(T**&x, int numberOfRows){
     for(int i=0;i<numberOfRows;i++)
         delete []x[i];
     delete []x;
     x=NULL;
    }
    

Python

  1. 读文件并重新写入

    import json
    with open('demo.json', 'r+') as f:
        data = json.load(f)
        '''
        data处理
        '''
        f.seek(0, 0) # 文件开头
        f.truncate() # 清空文件
        json.dump(data, f)
    
  2. 跨文件全局变量

    global只能指定单个py文件的全局变量,因此单独新建一个文件去保存全局变量

    global_var.py

    # -*- coding: utf-8 -*-
    
    def _init():  # 初始化
        global _global_dict
        _global_dict = {}
    
    
    def set_value(key, value):
        """ 定义一个全局变量 """
        _global_dict[key] = value
    
    
    def get_value(key, defValue=None):
        """
        获得一个全局变量,不存在则返回默认值
        """
        return _global_dict.get(key, defValue)
    

    主代码

    import time
    import global_var as glo
    
    glo._init()
    glo.set_value('start', True)
    
    if __name__ == '__main__':
        while 1:
            if glo.get_value('start'):
                print('TTTTTT')
            else:
                print('FFFFFF')
            time.sleep(1)
    

    从代码

    import threading
    import time
    
    import global_var as glo
    
    def fun():
        while 1:
            glo.set_value('start', False)
            print(glo.get_value('start'))
            time.sleep(2)
            glo.set_value('start', True)
            print(glo.get_value('start'))
            time.sleep(2)
    
    t = threading.Thread(target=fun)
    t.start()
    

    直接执行python main.py即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值