精华内容
下载资源
问答
  • Visual C++ 编程技巧精选500例 - [罗斌].pdf

    千次下载 热门讨论 2014-02-23 02:14:27
    Visual C++ 编程技巧精选500例 - [罗斌].pdf
  • Visual C++编程技巧精选500例

    千次下载 热门讨论 2013-04-17 20:44:06
    Visual C++编程技巧精选500例,从常用控件、对话框等基础到图形图像、线程进程等方面,深入浅出,通过学习这些基础代码,能全面掌握vc工具,并达到熟练水平
  • 编程能力与编程技巧 最近突然觉得这个话题要重新思考下。作为一个做系统的程序员。编程技巧服务于编程能力。 个人对编程能力的定义 1. 是提升改造轮子的能力,而不是重新造轮子的能力 2. 是将零部件组装起来的...

    编程能力与编程技巧

    最近突然觉得这个话题要重新思考下。作为一个做系统的程序员。编程技巧服务于编程能力。

    个人对编程能力的定义

    1. 是提升改造轮子的能力,而不是重新造轮子的能力
    2. 是将零部件组装起来的能力
    3. 是准确评估的能力
    4. 是准确对技术选型的能力
    5. 是解释技术为何如此的能力
    6. 是抽象的能力
    7. 是迅速定位问题的能力
    8. 是发现问题隐患的能力
    9. 是工程的能力


    个人对编程技巧的定义

    1. 是对问题的更优的解决方案
    2. 是一种变通的方法
    3. 是更为成熟的处理办法

    小结

    所以,编程技巧只是一种方法,它服务于编程能力,编程技巧只能对某个特定问题提出解决方案,其优劣判定也仅限某个特定问题。
    而,编程能力是解决所有问题的方案,它能用时间,效率进行量化评定。
    展开全文
  • QT高级编程技巧

    千次阅读 2019-04-27 16:00:57
    参考链接: QT高级编程技巧(一)-- 编写高效的signal & slot通信代码 QT高级编程技巧(二)-- 编写多线程和并发应用 QT 多线程程序设计
    展开全文
  • VC界面类编程技巧大全

    千次下载 热门讨论 2008-02-09 13:16:20
    VC界面类编程技巧大全,收录了135个典型的界面类编程技巧,对开发界面特效有很大的帮助。精心收集。
  • 给Python初学者的一些编程技巧

    千次阅读 多人点赞 2020-02-10 21:59:40
    这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下 交换变量 x = 6 y = 5 x, y = y, x print x >>> 5 print y >>> 6 if 语句在行内 ...

    这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下
    交换变量

    x = 6
    y = 5
      
    x, y = y, x
      
    print x
    >>> 5
    print y
    >>> 6
    

    if 语句在行内

    print "Hello" if True else "World"
    >>> Hello
    

    连接

    下面的最后一种方式在绑定两个不同类型的对象时显得很co

    nfc = ["Packers", "49ers"]
    afc = ["Ravens", "Patriots"]
    print nfc + afc
    >>> ['Packers', '49ers', 'Ravens', 'Patriots']
      
    print str(1) + " world"
    >>> 1 world
      
    print `1` + " world"
    >>> 1 world
      
    print 1, "world"
    >>> 1 world
    print nfc, 1
    >>> ['Packers', '49ers'] 1
    

    数字技巧

    #除后向下取整
    print 5.0//2
    >>> 2
    # 2的5次方
    print 2**5
    >> 32
    

    注意浮点数的除法

    print .3/.1
    >>> 2.9999999999999996
    print .3//.1
    >>> 2.0
    

    数值比较

    这是我见过诸多语言中很少有的如此棒的简便法

    x = 2
    if 3 > x > 1:
     print x
    >>> 2
    if 1 < x > 0:
     print x
    >>> 2
    

    同时迭代两个列表

    nfc = ["Packers", "49ers"]
    afc = ["Ravens", "Patriots"]
    for teama, teamb in zip(nfc, afc):
      print teama + " vs. " + teamb
    >>> Packers vs. Ravens
    >>> 49ers vs. Patriots
    

    带索引的列表迭代

    teams = ["Packers", "49ers", "Ravens", "Patriots"]
    for index, team in enumerate(teams):
     print index, team
    >>> 0 Packers
    >>> 1 49ers
    >>> 2 Ravens
    >>> 3 Patriots
    

    列表推导式

    已知一个列表,我们可以刷选出偶数列表方法

    numbers = [1,2,3,4,5,6]
    even = []
    for number in numbers:
     if number%2 == 0:
      even.append(number)
    

    转变成如下:

    numbers = [1,2,3,4,5,6]
    even = [number for number in numbers if number%2 == 0]
    

    是不是很牛呢,哈哈。

    字典推导

    和列表推导类似,字典可以做同样的工作:

    teams = ["Packers", "49ers", "Ravens", "Patriots"]
    print {key: value for value, key in enumerate(teams)}
    >>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
    

    初始化列表的值

    items = [0]*3
    print items
    >>> [0,0,0]
    

    列表转换为字符串

    teams = ["Packers", "49ers", "Ravens", "Patriots"]
    print ", ".join(teams)
    >>> 'Packers, 49ers, Ravens, Patriots'
    

    从字典中获取元素

    我承认try/except代码并不雅致,不过这里有一种简单方法,尝试在字典中查找key,如果没有找到对应的alue将用第二个参数设为其变量值。

    data = {'user': 1, 'name': 'Max', 'three': 4}
    try:
     is_admin = data['admin']
    except KeyError:
     is_admin = False
    1
    

    替换诚这样:

    data = {'user': 1, 'name': 'Max', 'three': 4}
    is_admin = data.get('admin', False)
    

    获取列表的子集

    有时,你只需要列表中的部分元素,这里是一些获取列表子集的方法。

    x = [1,2,3,4,5,6]
    #前3个
    print x[:3]
    >>> [1,2,3]
    #中间4个
    print x[1:5]
    >>> [2,3,4,5]
    #最后3个
    print x[-3:]
    >>> [4,5,6]
    #奇数项
    print x[::2]
    >>> [1,3,5]
    #偶数项
    print x[1::2]
    >>> [2,4,6]
    

    60个字符解决FizzBuzz

    前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

    写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
    

    这里就是一个简短的,有意思的方法解决这个问题:

     for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x
    

    推荐我们的Python学习扣qun:913066266 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地
    集合

    除了python内置的数据类型外,在collection模块同样还包括一些特别的用例,在有些场合Counter非常实用。如果你参加过在这一年的Facebook HackerCup,你甚至也能找到他的实用之处。

    from collections import Counter
    print Counter("hello")
    >>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
    

    迭代工具

    和collections库一样,还有一个库叫itertools,对某些问题真能高效地解决。其中一个用例是查找所有组合,他能告诉你在一个组中元素的所有不能的组合方式

    from itertools import combinations
    teams = ["Packers", "49ers", "Ravens", "Patriots"]
    for game in combinations(teams, 2):
     print game
    >>> ('Packers', '49ers')
    >>> ('Packers', 'Ravens')
    >>> ('Packers', 'Patriots')
    >>> ('49ers', 'Ravens')
    >>> ('49ers', 'Patriots')
    >>> ('Ravens', 'Patriots')
    

    False == True

    比起实用技术来说这是一个很有趣的事,在python中,True和False是全局变量,因此

    False = True
    if False:
     print "Hello"
    else:
     print "World"
    >>> Hello
    
    展开全文
  • Blender Python编程技巧

    千次阅读 2019-03-03 20:00:59
    Blender Python编程技巧 整理自 https://docs.blender.org/ bpy.data object复制 ob = obj.copy() # duplicate linked ob.data = obj.data.copy() # optional: make this a real duplicate (not linked) bpy.context...

    Blender Python编程技巧

    整理自 https://docs.blender.org/

    bpy.data

    object复制

    ob = obj.copy() # duplicate linked
    ob.data = obj.data.copy() # optional: make this a real duplicate (not linked)
    bpy.context.scene.objects.link(ob) # add to scene
    ob.location.y += 5
    

    object数学变换

    # 获取旋转四元数
    ob.rotation_euler.to_quaternion()
    

    文件读写

    https://docs.blender.org/api/blender_python_api_current/bpy.types.BlendDataLibraries.html

    # 链接所有以A为开头的object
    # data_from为原文件的数据,data_to为选择加入当前文件的数据
    with bpy.data.libraries.load(filepath, link=True) as (data_from, data_to):
        data_to.objects = [name for name in data_from.objects if name.startswith("A")]
    
    # 复制所有data并进入当前blend文件
    with bpy.data.libraries.load(filepath) as (data_from, data_to):
        for attr in dir(data_to):
            setattr(data_to, attr, getattr(data_from, attr))
    
    # write selected objects and their data to a blend file
    data_blocks = set(bpy.context.selected_objects)
    bpy.data.libraries.write("./new_library.blend", data_blocks)
    

    object界面选中与取消

    ob = bpy.data.objects[0]
    ob.select = True # add to selected list
    bpy.context.scene.objects.active = ob # make ob active
    
    # 选中所有
    bpy.ops.object.select_all(action='SELECT')
    # 取消所有选中
    bpy.ops.object.select_all(action='DESELECT')
    

    添加灯光

    scene = bpy.context.scene
    
    # Create new lamp datablock
    lamp_data = bpy.data.lamps.new(name="New Lamp", type='POINT')
    
    # Create new object with our lamp datablock
    lamp_object = bpy.data.objects.new(name="New Lamp", object_data=lamp_data)
    
    # Link lamp object to the scene so it'll appear in this scene
    scene.objects.link(lamp_object)
    
    # Place lamp to a specified location
    lamp_object.location = (5.0, 5.0, 5.0)
    

    修改Object材质

    # 获取第0个材质槽
    slot = obj.material_slots[0]
    # 材质槽中的材质名
    print(slot.name)
    # 材质槽的链接方式(OBJECT或DATA)
    print(slot.link)
    # 材质槽的材质
    print(slot.material)
    # 仅对OBJECT进行材质修改
    mat = bpy.data.materials['Mat.002']
    slot.link = 'OBJECT'
    slot.material = mat
    

    修改材质的纹理

    img = bpy.data.images.load(texturePath)
    tex = bpy.data.textures.new("Tex", 'IMAGE')
    tex.image = img
    
    mat.texture_slots.add()
    slot = mat.texture_slots[0]
    slot.texture = tex
    slot.texture_coords =  'UV'
    slot.mapping =  'FLAT'
    

    bpy.ops

    应用数据修改

    # 将object的修改应用到mesh数据上
    bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
    

    导入obj

    bpy.ops.import_scene.obj(filepath='/test/xx.obj', axis_forward='Y', axis_up='Z', use_groups_as_vgroups=True)
    

    另存为blend文件

    bpy.ops.wm.save_as_mainfile(filepath="path/to/myfilename")
    

    删除object及其所有数据

    # 取消所有选中
    bpy.ops.object.select_all(action='DESELECT')
    # 选择需要删除Object
    bpy.data.objects['Camera'].select = True
    # 执行删除
    bpy.ops.object.delete() 
    

    切换Area类型

    types = {'VIEW_3D', 'TIMELINE', 'GRAPH_EDITOR', 'DOPESHEET_EDITOR', 'NLA_EDITOR', 'IMAGE_EDITOR', 'SEQUENCE_EDITOR', 'CLIP_EDITOR', 'TEXT_EDITOR', 'NODE_EDITOR', 'LOGIC_EDITOR', 'PROPERTIES', 'OUTLINER', 'USER_PREFERENCES', 'INFO', 'FILE_BROWSER', 'CONSOLE'}
    
    # save the current area
    area = bpy.context.area.type
    # 当前Area切换到 3D View
    bpy.context.area.type = 'VIEW_3D'
    

    Python Tips

    Blender后台运行

    # 单纯运行,不引入blend文件
    blender --background --python myscript.py
    blender -b -P myscript.py
    # 引入blend文件,直接修改该文件
    blender myscene.blend --background --python myscript.py
    # 渲染blend文件
    blender -b hello.blend -o ./test -F PNG -x 1 -f 1
    

    快速删除list元素

    pop_index = 5
    
    # swap so the pop_index is last.
    my_list[-1], my_list[pop_index] = my_list[pop_index], my_list[-1]
    
    # remove last item (pop_index)
    my_list.pop()
    

    快速字符串操作

    Join is fastest on many strings, string formatting is quite fast too (better for converting data types). String arithmetic is slowest.

    rather than…

    if line[0:5] == "vert ": ...
    

    use…

    if line.startswith("vert "):
    

    循环中减少try

    try is significantly slower than an if since an exception has to be set each time, so avoid using try in areas of your code that execute in a loop and runs many times.

    启动交互式Python

    In the middle of a script you may want to inspect some variables, run some function and generally dig about to see whats going on.

    import code
    code.interact(local=locals())
    

    If you want to access both global and local variables do this…

    import code
    namespace = globals().copy()
    namespace.update(locals())
    code.interact(local=namespace)
    

    The next example is an equivalent single line version of the script above which is easier to paste into your code:

    __import__('code').interact(local=dict(globals(), **locals()))
    
    展开全文
  • 手写数字识别系统编程技巧

    千次阅读 2017-03-15 16:01:36
    手写数字识别系统编程技巧之前,我...本文就在那篇文章的基础上,总结当中的编程技巧,主要是图像处理和tkinter的编程。注意:本文写的编程技巧,仅针对之前的文章而言,并非是系统的讲解!1 图像处理编程技巧手写数字
  • VC++编程技巧

    2014-02-22 10:53:25
    一 系统类编程技巧 本程序演示了3个VC系统类编程技巧,获取windows目录,获取temp目录,获取屏幕分辨率, 代码如下: void CSys1View::OnDraw(CDC* pDC) {  CSys1Doc* pDoc = GetDocument();  ASSERT_...
  • 你不知道的18个Python高效编程技巧

    千次阅读 2020-08-28 19:54:56
    来源 |Python编程时光初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c++的人,兴...
  • python的30个编程技巧

    千次阅读 2017-12-02 16:30:37
    从公众号上看到了一篇文章《30个python编程技巧!》,觉得有些挺有用的,有的也一直在用,就挨个实现了一下。  1、原地交换两个数字 In [1]: x, y =10, 20 print(x, y) y, x = x, ...
  • 华为上机考试注意事项及编程技巧

    千次阅读 2020-01-19 11:47:02
    华为上机考试注意事项及编程技巧 这是一篇关于华为招聘软件类职位上机考试的博客,主要介绍一下华为机考的流程、注意事项以及一些机试题中常用的编程技巧,写得有点长,但都是尽心尽力敲的,如果真的要...
  • Shell编程技巧总结

    千次阅读 2010-10-30 10:13:00
    这里主要记录一些实用的Shell编程技巧、Shell程序设计技巧。v0.9.12.11
  • 本课程主要分享白帽子脚本编程和运维自动化编程等干货技术! 二、课程含括        1、Python编程        2、Linux Shell编程        3、Windows CMD...
  • 提高编程技巧的十大方法 【CSDN编译】本文为开发者总结了提高编程技巧的十大方法,为开发者学习编程加以点拨、指明捷径,有了技巧,在编程时能帮助你事半功倍。 1.学习一门新的编程语言(Learn a new programming ...
  • 华为上机考试注意事项及编程技巧(精品)

    万次阅读 多人点赞 2016-10-17 22:49:42
    这是一篇关于华为招聘软件类职位上机考试的博客,主要介绍一下华为机考的流程、注意事项以及一些机试题中常用的编程技巧,写得有点长,但都是尽心尽力敲的,如果真的要参加华为招聘(或者类似公司的招聘),建议稍微...
  • 偏执却管用的10条Java编程技巧

    万次阅读 2016-04-08 15:35:34
    “任何可能出错的事情,最后都会出错。” 这就是人们为什么喜欢进行“防错性程序设计”的原因。偏执的习惯有时很有意义,有时则不够清晰也...下面是我列出的的个人感觉最有用而又偏执的 10 项 Java 编程技巧。请看:
  • 《电脑编程技巧与维护》杂志社:
  • 游戏编程技巧

    2014-10-28 19:24:20
    看了《3D游戏编程大师技巧》的1.3节内容,感觉本科学的好多知识突然找到了价值。比如汇编、寻址等等。 这些东西也可以用到游戏编程中去~摘记部分要点如下 视频游戏是一种超高性能计算机程序。这意味...
  • 本文长期更新,汇总一些自己在平时科研中逐渐领悟到的一些编程技巧,欢迎交流,欢迎指导。文中的内容基本会结合自己遇到的具体例子来说明。 科研与做产品不同,在写代码的过程中往往要经过很多调试,修改参数,调整...
  • MFC中的数据库编程技巧

    千次阅读 2011-10-06 06:59:58
    MFC中的数据库编程技巧 2011-09-04 19:13 高级技巧 选择数据库选项 Visual C++提供了几个不同的选项,允许或禁止应用程序中的数据库支持。所选择的数据库支持层次依赖于正创建的应用程序的类型,虽然这并...
  • vs下编程技巧

    万次阅读 2019-01-12 16:32:44
    一.粘贴时注释对齐 从外界粘贴注释到vs中时,会去掉空白字符。这是vs下代码自动格式化的原因,只需要点击一下撤销Ctrl + z就会回到保存空白行的状态,在此撤销时才会撤销粘贴。 ...
  • 在线学习新编程 技巧全攻略

    千次阅读 2013-01-12 10:45:20
    本文为你收集了一些编程技巧,让你轻松学编程。 有句俗语叫:“技多不压身”,如果你有时间和兴趣,不妨多了解和掌握编程技能,或许随时可能有用。本文为你收集了一些编程技巧,让你轻松学编程。 1. ...
  • 编程技巧之嵌入式C语言完全学习笔记及案例[图]

    千次阅读 多人点赞 2018-08-15 19:34:29
    编程技巧之嵌入式C语言完全学习笔记及案例[图] 1、经典入门:hello world 1.1、概念: *源文件:源文件即源代码文件,C语言源文件后缀名是.c。 *头文件:头文件后缀名为.h(head,头),C语言代码由源文件和头文件...
  • C++宏编程技巧

    万次阅读 2018-10-05 10:36:01
    相信在编程过程中,经常会遇到相似代码重复多次出现的情况,显然宏就是为这种重复工作而生的东东。 举例如下: //fd为文件描述符,以只读模式打开a.txt文件 int fd = open("a.txt", O_RDONLY); if (fd ) { ...
  • Linux GCC 64位编程技巧

    万次阅读 2010-10-17 19:48:00
    Linux GCC 64位编程技巧,项目要用到,上网查了一下,资料虽多,但零零散散,干脆自己整理一份,共享给大家。 Windows和Linux类似,但有的细节还需要大家自己查了。
  • VB.NET编程技巧与实例集粹PDF,200个经典实例,非常好的教程.
  • linux shell编程技巧

    千次阅读 2018-02-23 12:44:26
    1,shell 特性history 用法 连续敲两个!! 代表输入history!$代表上一条命令的最后一个参数! 数字代表执行数字数的命令!vi 代表从history 从下向上数,最近一条vi开头的命令$!2,tab用于命令补全如果按完以后不动...
  • DSP编程技巧

    千次阅读 2016-07-12 13:28:34
    技巧来减小代码尺寸。  例如,我们可以使用“空间换时间”,或者“时间换空间”的方法,在代码尺寸和执行速度上做一些折衷。比如对于一个滑动傅立叶变换(sDFT),我们既可以使用很大的数组来保存滑动值, 从而...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 278,714
精华内容 111,485
关键字:

编程技巧