关于python的代码中,变量是否需要定义的疑问

编写代码时,发现,部分变量如单独定义的话,会方便后面的使用。但是这个貌似也会延长代码运行时间。
而有时候,我也发现,一个表达式如果不定义为一个变量的话,写起来很长,不便于阅读。同时,有时候一样会增加代码的运行速度。。
因此,想请问下,到底什么时候设置变量好些呢?

我个人感觉,如果在for循环下,定义变量的话,会拖慢速度。。
而如果不存在循环的话,则定义变量,貌似则会加快速度。。
不知道是否真的如此。。

3个回答

  1. python慢的是循环,不是变量定义
  2. python属性,方法获取比call慢。比如 list.append(a) 比 apd=list.append 后的 apd(a) 慢【不包含apd=list.append】。 所以循环如果足够多的话,考虑这类设置个变量
  3. for x in y: 如果用不到x,可考虑用while,或者 用 _ 代替x
  4. python中,一般情形是,有函数的比没函数的快,写的短的比写的长的快,内建方法比循环快。所以多用列表推导式,少用循环。
  5. 先写程序后优化,如果碰到程序总需要优化,再去关注优化结果,再反过头来优化自己的使用习惯。


根据你提供的的内容:
data.txt

7.79,8.66,2.76,7.06,3.47
5.52,1.61,9.55,9.19,9.95
8.74,5.93,4.81,0.47,0.60
9.64,9.47,6.49,4.44,8.64
0.96,9.14,6.23,4.32,7.72
0.82,6.41,5.25,2.214,3.87
....

args.txt内容如下:

1,3,5,7
2,4,6,8
1,2,3,5
。。。s

输出:

0.113,0.083,0.760,0.009,1.000
0.260,1.000,0.910,0.313,0.244
0.249,0.965,0.905,1.000,1.000
0.377,0.184,0.298,0.720,0.080
1.000,0.143,0.246,0.660,0.720
1.000,0.205,0.050,0.214,1.000
0.585,1.000,0.550,1.000,0.410
0.211,0.930,0.735,1.000,1.000
1.000,0.218,0.360,0.100,0.110
0.515,1.000,0.560,0.585,0.420
0.306,0.220,0.900,0.316,0.209
0.180,1.000,1.000,0.285,1.000
0.110,1.000,0.922,1.000,1.000

代码如下:

argTable = []

def getNew(num,colidx):
    level = argTable[colidx]
    if num< level[0]:
        return 1.0
    if num > level[3]:
        return (num-level[3])/level[3]
    levelR = zip(level, level[1:len(level)])

    for lR in levelR:
        if lR[0] < num <= lR[1]:
            return (lR[0] - num) / (lR[0] - lR[1])

if __name__ == '__main__':
    with open("args.txt","rb")as f:
        for line in f:
            l= line.split(b",")
            l = [float(i) for i in l]
            argTable.append(l)
    with open("data.txt","rb")as f:
        with open("newdata.txt", "wb") as fw:
            for line in f:
                l = line.split(b",")
                l = [float(i) for i in l]
                newl = [getNew(i,idx) for idx,i in enumerate(l)]
                newlS = [f"{i:2.3f}" for i in newl]
                fw.write(",".join(newlS).encode("utf-8")+b"\r\n")
lmw0320
lmw0320 回复notback: 我说的时而时而,是因为计算其实有几个步骤,fc上的帖子,只是其中的一个步骤。。所以会存在一会需要对行进行计算(需要统计行之间的数据),一会需要对列进行计算。你提到的验证列名什么的,倒是不存在,因为我已经将相关的列名放在一起,可以切片处理的。不管怎样,很感谢你提供的解决方案,我自己去试下。
6 个月之前 回复
NotBack
notback 具体问题具体分析,代码还是要靠自己写的。我只能在大方向给予个方向。另外,别说你验证行名列名什么的。txt或者csv数据本身就是包含数据位置逻辑。你所谓的验证其实都是可以先验的,也就是说你构建argTable的时候就可以调整顺序。我代码中直接用了索引数而没用列名行名,主要不想代码写的太多。无非再args.txt加一列标准名,在data.txt中加一行列名.getNew中多些判断而已。代码复杂度不变。
6 个月之前 回复
NotBack
notback 你fc上的pandas,我猜测你的逻辑是,对每个指标的每个标准值进行遍历,然后再对每列数据中符合标准值的数据进行处理。事实上你的逻辑就是,数值小于最小标准值如何如何,数值大于最大标准值如何如何,数值在最小最大间如何如何,这3条逻辑。跟每个标准有多少个标准值无关。
6 个月之前 回复
NotBack
notback 就你贴出的fc论坛上的例子,没有什么时而时而的。我上面的代码,按照你的判断逻辑写的,核心也就getNew中的9行。
6 个月之前 回复
NotBack
notback 不同语言的调用,有什么比文件input,output更好的?先把处理逻辑搞清楚,再写代码,别时而时而的,搞的吓死人不偿命。你就100个指标,只要data.txt是100列的数据,照样跑的欢。
6 个月之前 回复
NotBack
notback 上面这个,不管多少等级指标,写在argTable中即可。argTable对应data.txt中的列。就是说你有几行argTable,就要有几列data.txt。上面代码唯一没判定null,在l转换前判断null,并设定个0,在getNew中再判断个0就可以了。任何语言的标准库和内建函数,肯定能覆盖所有问题的基本解决逻辑,其他的扩展库,只是在速度、性能、便捷性上扩展。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 可以加你的QQ或微信吗?好具体请教。我也可以提供完整的代码,好优化
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 我目前暂时只能考虑用pandas。因为我得和别人配合,我这个只是脚本,主程序是JAVA。我是被调用的部分。我的std_level中有12个指标,每个指标都有各自的5个等级和2个极限值(极大极小值)。我需要时而对每行数据进行横向处理,时而对每列数据进行单独处理。所以目前可能需要考虑的是,一部分一部分代码修改。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 你说你的代码?是getNew这个吗? 100W行跑22.3秒?能达到这个速度,肯定很好了。。看来的确就像你说的,我的代码逻辑不合理,没有尽量使用内建方法。
6 个月之前 回复
NotBack
notback apply当然耗时,对同一列的每个数据进行函数操作,当然耗时。但是在大量数据时候,比python自循环对同列每个数据进行操作,理论上速度更快而已。假设数据行数为n,等级数为m。利用python的循环遍历每个数进行操作,则在python中循环n*m次。而用pandas,则只在python中循环m次,其他的在pandas内部函数中循环,鉴于python可怜的循环效率,自然更快。但是你别搞错,就算我口中的可怜的循环效率,对绝大多数应用来说,都是光速。
6 个月之前 回复
NotBack
notback 实在想用pandas,把我的getNew拿去改改,应该没问题。
6 个月之前 回复
NotBack
notback 理论上5次apply。前面说错。
6 个月之前 回复
NotBack
notback 我的程序你跑了吗?100w行,垃圾机器22.3秒,机器好更快。足够你的效率了吧。标标准准的文件遍历。效率足够高。算法复杂度o(n)至o(n*m) ,n为数据条数,m为分类等级。基本线性。apply是对一列数据做同一个函数。理论上,以你的数据,理论上你的apply只需要跑4次。查查你的std_level有多少值。不是你函数写的有问题,就是你for的循环次数太多,做了太多无用功。我的代码全用的内建函数,不是解决了吗?输出与你的预期不同?
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 另外,按照你的说法,pandas什么标准库可以解决这个问题呢? 论坛上发了帖子,貌似都没什么回。。
6 个月之前 回复
lmw0320
lmw0320 我也问了别人,别人给我提供了个建议,就是先定义函数,传入两个参数。因为apply方法是允许传参的。换句话说,就是定义一个公共函数,然后适用到每个字段中去。而我之前的做法是遍历每个字段,对单独的字段进行函数定义。结果发现,两者的耗时基本一样(当然,先定义函数的做法,肯定更规范些)。后面,我自己拆分了步骤,看到底哪行代码比较耗时,结果发现函数定义基本不消耗时间,都是在函数进行apply时,耗时最多。也就是说,主要的耗时在于对每行数据apply定义的函数。
6 个月之前 回复
NotBack
notback 1、我可以肯定你pandas用法错误。2、啥复杂算法,搞的我都不太敢多说。就这个需求,python标准库随便写写就搞定了。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 可以不生成新表,而在第一个表的数据中生成新列就可以。否则计算关联时,又要关联到第一张表中。第二张表是标准表,因为行列数不一样,不便合并到一起,才独立出来的。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: ...我的表述能力真心有点差。。。我也不知道怎么把问题描述清楚了。。基本就是你说的意思。。这种情况下,是否可以不在for循环内进行函数定义呢?
6 个月之前 回复
NotBack
notback 看你的问题描述有点晕。我理解如下,第一个表的数据,参照第二个表,生成新的第一个表。原数据为d,则新y数据逻辑:假设新数据为第一行X1列。则y从argTable的第一行查。if d=null then y= null / if d<= I(1.0) then y=1.0 / if d> I(1.0) and d<=IV(7.00) then y = (下-d)/(下 -上) / if d > IV(7.00) then (d-IV)/IV 。就这些吧?
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 我在这个论坛上,发了个帖子,里面描述了具体的情况。。这样可能比空谈所谓的效率好些。可以的话,帮忙看下我的代码是否合理。。不合理,又该如何优化呢。链接是:https://fishc.com.cn/thread-140701-1-1.html
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 我今天又想了下,有个问题。。不知道是否我自己钻牛角尖了。。就是说,我的数据需要依赖于一个外部的标准等级判定数据文件,这样的话,感觉必须用到for循环,来进行处理不同字段字段的等级数据不同的情况。举个例子吧,我有A,B,C三个指标,每个指标的等级数据评定值都不一样。我的逻辑是需要先判定哪个指标,再去标准文件中取出对应指标的等级数据值,来进行判定数据的等级。如果不用for循环来遍历不同的字段,我如何处理不同字段的数据区别呢。。。这个等级判定,还只是简单的算法。后面还有些略微复杂些的,还要关联数据上下等级的标准值来计算。。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 那个时间很少,才0.4秒左右。主要的时间在于另外的计算公式。因为等级数据的生成,只是一个基础。后面的计算,需要利用到该等级数据,进行多次加工,才有最后的输出。
6 个月之前 回复
NotBack
notback 以你那个1-5级的数据例子,我看了一下,用最笨的方法:1、把源数据灌入db中(每种数据库都有高速导入接口,自己研究一下)2、select (case when 列1>=4.1 then 5 when 列1>=3.1 and 列1<4.1 then 4 ....... esle 1 end) 列levelX1 , ......... from table 3、导出数据。你看看运行速度。这种看似很土的方法其实效率不错,如果速度不够快,你还能数据库自定义函数和存储过程加速。另外,你的思维一直在对某个元素如何处理上,怎么说,你都觉得必须用for。所以说让你先多看看python的标准库和库代码,思维会有些转变。可以透露一下,你10w条数据读入,转换为每个人的等级数据的程序,跑多少时间吗?
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 不太懂你的意思了。我目前就是在对数据进行你所说的预处理啊。。根据标准等级数据,先生成等级数据。再利用等级数据来处理(但是这个是计算公式所要求的)。你的意思是让我用数据库来进行相应的处理?我用pandas的做法,也是尽量用到其内建的方法,如apply之类的,这个你说是max等性质的一样的啊。。我不懂为什么这个是方向性错误?我是在尽可能使用pandas的内建方法的情况下,迫不得已使用了for循环,因为没有找到合适的内建方法替换来提高速度。
6 个月之前 回复
NotBack
notback 你的方向性严重错误。看了你再问答中问的一些问题。明显感觉到,你不仅要优化python语句,还要优化pandas效率。如果学一样东西,最好从最基本的用起。根据你的代码,个人觉得你用pandas不一定比标准库效率高。数据的预处理其实很重要的,比方你一个将数值转换为等级的例子,你用任何语言,都比把数据灌到数据库,几条sql来的慢的多。个人建议:1、先把数据预先处理好,不要再代码中转换来转换去,非要用2种类型,可以弄2份对应数据。2、学好python的基础。3、虽然我对pandas没什么研究,随便看了几眼,个人觉得,用pandas更多的是使用其类似数据库的特性,比如不用for循环就能任意选择数据,比如不用循环就能计算所有数据的方差,max,sum。而不是用for循环。python的循环对于高级语言来说是速度是垫底的,我不太认为一个第三方库能解决这个问题。4、对于超大数据集的简单计算和统计,数据库本身就有极大优势,就算不能解决所有问题,通过一遍数据库计算和预处理,也能节省很多后期处理速度。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 目前来说,貌似也没有被不接受代码的运行速度。。我只是想自己进行优化,从中可以学到些东西。。毕竟刚入行半年多时间,很多东西不会。。目前的想法是把一个东西学精再说,学太多,蜻蜓点水,反而不好。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 谢谢你的建议~~很久前学过C,基本忘光了。。我是转行过来的。。目前是倾向先把python学好再说。以后考虑往机器学习方向靠。因此,可能会多花精力在算法优化上。。比如你说的那些内建方法和第三方包。。
6 个月之前 回复
NotBack
notback 实在优化不好算法,建议你拿c做。看你的描述,你的程序,无非是读取数据,计算某些值,输出出来。这些东西学个c也没多少时间。无非涉及,文件读取,数据类型,数值计算,if,for,while和printf。同样简单的多循环垃圾代码,c保守估计快个3,4倍没啥大问题。真学不会c,用vb6,仅仅涉及循环计算,string不要用只用bytes,效率也比python高。估计缩你个一半时间也没啥大问题。vb.net,c#我就不推荐了,光.net类库就够你哭的了。如果代码计算非常简单,你用js或者vbs试一试,也许也有惊喜哦。
6 个月之前 回复
NotBack
notback 先用cProfile看哪里最耗时。算法这东西很难说的清楚,自己找书看看吧。别太高估自己的算法。简单比方,[1,2,3,4]找最大值,你用for去找,效率肯定比max(list)低太多。你就去找能代替你算法的函数,第三方包。另外,但凡能让你少做一次循环的中间变量,你就存下来。蚂蚱也是肉。
6 个月之前 回复
NotBack
notback 给你几点建议,1,既然用到了pandas,就尽量用pandas的方法简化你的算法。 2,听你的说法来看,你的算法复杂度根本不是o(n),简单来说,你都不知道循环了多少遍你的10w条数据了。建议你算法上多看看。有没有优化的空间。说白了,就是少循环多记录。用空间换时间。现在内存都大经得起折腾。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 之前网上看过介绍,说是尽量减少for循环,而采用内建方法来提高速度。但是我这个代码的目的,是要对数据进行相应的转换计算,而且是层层推进(中间需要生成新的数据,再用新数据来二次,三次计算)。因此,我的代码用到了for循环,来遍历几个字段(计算每个字段的方法是相同的,我目前也只是想到先处理一个字段,再用遍历的方法来解决)
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 我是新手,目前只会一点python..现在是有时间,才考虑去优化代码。目前就是用了time模块,来拆分,找出耗时比较大的代码块。另外,10W行的数据,是csv格式,我用的是pandas库的read_csv方法来读取,这个读取花了1秒的时间。
6 个月之前 回复
NotBack
notback 一个程序的运行效率和运算量,算法,结构都有关系。优化先优化前者,最后才优化代码。如果你会多种语言,简单点的方法,用其他更快的语言试一试速度,就知道了。python最nb的地方,就是,实在python计算效率太低了,你会用c,写个dll给他调用就好了。实在不会其他语言,或者其他方法,先看你的程序运行能不能跑满cpu,不能跑满cpu再优化。能跑满,暂时也不建议多优化,优化很费神的。除非,非要用python,也必须把时间控制再某个范围之内,再考虑优化吧。
6 个月之前 回复
NotBack
notback 回复lmw0320: 优化要分拆细化的。10w行,光文件读就够你优化的了。你用r还是rb读取?rb读取比r快将近一个数量级。最土的方式,自己用time.time来算时间,好点用timeit来算效率。或者用cProfile来看看效率,哪里用时最多。这些都没看,纠结一个变量是否需要,没意义。
6 个月之前 回复
lmw0320
lmw0320 回复NotBack: 了解你的意思了。只是我没有时间数据对比,也不知道目前的代码是否已经足够优化了,这样无法判定效率的好坏。只能是自己的代码前后对比,感觉是比之前优化了不少。对你说的绕开循环的手段,我知道一些内建方法,如apply,map等,我也尽量去使用了。但是可能并没有完全绕开,所以时间不会很快。比如10W行的数据进行计算,花了30多秒。。我也不知道这个算快还是算慢的。。
6 个月之前 回复
NotBack
notback 回复lmw0320: 优化是有针对性的,没代码泛泛而谈就是扯淡,python很多手段绕循环的。先coding,效率实在不够再想优化。如果发现多次编程都存在问题,再考虑优化编程的使用习惯。很难理解吗?
6 个月之前 回复
lmw0320
lmw0320 是这样的:我的数据里,其实是对某些指标的考核。这些指标其实是相似的,我一般是定义一个函数(涉及到略微复杂的计算公式),然后用for循环来遍历,适用到所有指标中。循环无法避免。你所提的最后一句话,有些看不太明白。。
6 个月之前 回复

该定义就定义,你说的使用变量循环速度的差别,就算有也微乎其微,和代码可读性相比,这才是最重要的。

lmw0320
lmw0320 回复D720CJM: 哈哈,我本来就是菜鸟一个。直说更好些,能让我更快知道实际情况。你们所说的意思,我大致理解是,首先要保证逻辑的合理性,减少不必要的重复计算。如果有内建方法的,则应尽量采用等等。。只是我的水平有限,现在还在一个人摸索阶段,只能多来这边请教下各位,才能少走弯路。
6 个月之前 回复
D720CJM
D720CJM 回复lmw0320: 请恕我直言,与其说是缩短了多少秒多少秒,倒不如说从一开始的做法就是错的,才会导致多浪费那么多……其实优化并不是那么容易的一件事情,我觉得这位说差距微乎其微,大概就是指这个意思。有时候的确运行起来耗时相差很大,但可能是处理的逻辑出了问题
6 个月之前 回复
lmw0320
lmw0320 了解了,谢谢。不过我试了下变量的替换处理,如果定义变量的情况下,10W的数据,我跑40秒,而如果不定义变量的话,则时间会缩短6秒多。
6 个月之前 回复

我看了你好几个问题,感觉纠结在这些旁枝末节啊,并不能够提升或者减少多少效率吧,你花在这里的时间更多……
不过变量定义不定义,还是具体情况具体分析,新的内存空间才会拖累速度
另外,在Python中,不可变类型,比如int类型,元组,当给变量赋值不同的值时,变量的地址会变化,太多对象的确麻烦
至于可读性,应该是尽量用面向对象的思维编程吧,提高代码的复用性,尽量不要重复写同样的代码……

lmw0320
lmw0320 回复D720CJM: 问题在于,这个函数的定义,我后期进行了修改,增加了参数的传入。时间上并没有明显提升。同时,我也查看了时间情况,定义函数并不耗时,主要的耗时都在apply函数
5 个月之前 回复
D720CJM
D720CJM 回复lmw0320: 你有没有善用参数和面向对象的设计?我个人是无法理解在for循环里面不断def定义新函数的,这样太夸张了,你的函数明明可以只在for循环外定义一个,然后输入不同的参数进行处理,返回不同的结果。事先说明啊,我没弄懂你那边贴的代码,但我觉得应该可以避免。
6 个月之前 回复
lmw0320
lmw0320 回复D720CJM: 我检查过代码,重复计算避免不了。。因为前后需求的地方不一样。我本来想定义函数来处理,但是函数定义很难受,必须在for循环内定义。。因为这个函数只能用来适用一个字段,我必须要用for循环来遍历每个相似的字段。。这样的话,导致函数的使用范围受限。也就无法避免相同函数,多次定义。。这种情况下,不知道是否就是你所谓的重复计算呢? 同时,水平有限(才半年多的经验),很多内建函数不太会用,也是个大问题。
6 个月之前 回复
D720CJM
D720CJM 回复lmw0320: 写对的代码,本身就是简洁明了的,代码本身就具有可读性。如果你用复杂的流程,很绕的逻辑去处理一个任务,自然而然就难懂了。另外,尽量少重复造轮子。比如遍历文件夹,可以用walk的,你非要自己写个函数,各种递归去实现,那注定了事倍功半。
6 个月之前 回复
D720CJM
D720CJM 回复lmw0320: 相差几十秒是很大问题了,还是要注重的效率的,但一般来说,你代码写对了,无用功少了,不会相差这么大的,可能是思路走岔了,多了很多重复计算……
6 个月之前 回复
lmw0320
lmw0320 没有人指点。。自己瞎琢磨。。所以会钻牛角尖。。你的意思就是还是要注重代码的可读性,相对比速度影响不大的情况下,还是要倾向可读性了?
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于在java代码中调用Python代码的问题?
-
这是一个关于PYTHON的变量问题
-
python交换两个变量的值为什么不用中间变量?
-
python 类对象中静态属性的作用域与模块中全局变量的作用域差别
-
Python,类中字典变量的疑问
-
为什么我的python怎么都定义不了byte类型的变量
-
python中自定义的类怎样才能使用count()方法
-
python 全局变量设置问题
-
这是一个关于python面向对象的问题
-
python中 Generator[Any,Any,None],这三个变量类型分别对应的是什么变量?
-
关于cmd运行的python代码
-
python代码问题 for in
-
python已经配置环境变量,PyCharm也装好了,在命令控制行输入python还是提示不是内部或外部命令
-
这是一个关于PYTHON的调试问题
-
python怎么在输出变量时加上引号
-
关于python global关键字的问题
-
python中函数名还可以作为变量引用另一个函数吗
-
python类内状态变量(是一个对象)后面加括号是什么语法
-
python中嵌套函数引用外部循环变量时,什么时候需要使用默认值参数,而不能利用作用域?
-
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
程序员真是太太太太太有趣了!!!
网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位程序员大佬们,请让我听到你们的声音!不管你是前端开发...
1行Python代码制作动态二维码
目录 1、普通二维码 2、艺术二维码 3、动态二维码 在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码、艺术二维码(黑白/彩色)和动态GIF二维码。 GitHub网站参见:https://github.com/sylnsfar/qrcode 用法比较简单,直接通过pip安装即可。 pip3 install myqr 安装过程如下所...
全球最厉害的 14 位程序员!
来源 | ITWorld 整理自网络全球最厉害的 14 位程序员是谁?今天就让我们一起来了解一下吧,排名不分先后。01. Jon Skeet个人名望:程序技术问答网站 S...
从入门到精通,Java学习路线导航
引言 最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。 Java学习路线 当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。 基础阶段 首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Ora...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
别再翻了,面试二叉树看这 11 个就够了~
写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面,一紧张,代码写的乱七八糟。如果遇到没有做过的算法题,思路也不知道从何寻找。面试吃了亏之后,我就慢慢的做出总结,开始分类的把数据结构所有的题型和解题思路每周刷题做出的系统性总结写在了 Github...
接班马云的为何是张勇?
上海人、职业经理人、CFO 背景,集齐马云三大不喜欢的张勇怎么就成了阿里接班人? 作者|王琳 本文经授权转载自燃财经(ID:rancaijing) 9月10日,张勇转正了,他由阿里巴巴董事局候任主席正式成为阿里巴巴董事局主席,这也意味着阿里巴巴将正式开启“逍遥子时代”。 从2015年接任CEO开始,张勇已经将阿里巴巴股价拉升了超过200%。但和马云强大的个人光环比,张勇显得尤其...
什么是大公司病(太形象了)
点击蓝色“五分钟学算法”关注我哟加个“星标”,天天中午 12:15,一起学算法作者 | 南之鱼来源 | 芝麻观点(chinamkt)所谓大企业病,一般都具有机构臃肿、多重...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
离职了
这是我毕业后的第一份工作...面试时,HR小姐姐告诉我... 然鹅...我入职之后才发现:对标阿里的只有加班强度对标华为的只有狼性文化对标百度的,额,没有对...
iPhone 11 引领芯片新革命?
iPhone 11中的U1芯片开启了超宽带革命。 作者|Jason Snell 译者 |弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 苹果很喜欢讨论他们为iPhone设计的芯片,却不愿泄露任何尚未发布产品的消息。新的U1芯片正是如此,该芯片随着iPhone 11一起发布,但在近日的iPhone发布会上苹果却对该芯片只字未提。U1中嵌入了新...
如何在Windows中开启"上帝模式"
原文链接 : https://mp.weixin.qq.com/s?__biz=MzIwMjE1MjMyMw==&amp;mid=2650202982&amp;idx=1&amp;sn=2c6c609ce06db1cee81abf2ba797be1b&amp;chksm=8ee1438ab996ca9c2d0cd0f76426e92faa835beef20ae21b537c0867ec2773be...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
失业42天,我废了
作者:子彧师兄https://www.jianshu.com/p/62590c1339f12019.6.5这天下午,公司以资金困难,亏损较大为理由将我们整个技术部裁掉,我...
技术人员要拿百万年薪,必须要经历这9个段位
很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...
8000字干货:那些很厉害的人是怎么构建知识体系的
本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益: 分辨知识和知识体系的差别 理解如何用八大问发现知识的连接点; 掌握致用类知识体系的构建方法; 能够应用甜蜜区模型找到特定领域来构建知识体系。 1. 知识体系?有必要吗? 小张准备通过跑步锻炼身体,可因为之前听说过小腿变粗、膝盖受伤、猝死等等与跑步有关的意外状况,有点担心自己会掉进各种坑里,就在微信上问朋友圈一直晒跑步...
分布式、多线程、高并发都不懂,拿什么去跳槽
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确...
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Nginx 的常用命令和配置文件四、 Nginx 配置实例 1 反向代理五、 Nginx 配置实例 2 负载均衡六、 Nginx 配置实例 3 动静分离七、 Nginx 的高可用集群 前言 一、nginx简介...
动画:用动画给面试官解释 TCP 三次握手过程
作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握以及 TCP 的四次挥手,小鹿将会以动画的形式呈现给每个人,这样将复杂的知识简单化,理解起来也容易了很多,尤其对于一个初学者来说。 学习导图 一、TCP 是什么? TCP(Transmissio...
为什么程序员在学习编程的时候什么都记不住?
在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题? 作者 |Dylan Mestyanek 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 每个人都会在学习编程语言的时候,努力记住所有一切,这也不足为奇。虽然有些人可以过目不忘,直接在脑海里就能想出问题的解决方案,但普通人却不能。特别是那些刚...
相关热词 c#panel增加滚动条 c#中生成的dll文件 c# 模板类 c# 截取txt文本内容 c# 内存 占用 c#时间格式化 不带- c#替换字符串中指定位置 c# rdlc 动态报表 c# 获取txt编码格式 c#事件主动调用