2022-10
20

颠覆自己

By xrspook @ 9:23:11 归类于: 烂日记

近段时间我一直都在磕《DAX权威指南》这本书,但是越往下看感觉越难看下去。这种翻译类的书籍真的太难了。还记得大学的时候我从图书馆借过一本犀牛,好像是《JavaScript 权威指南》,那本书很厚。之所以印象这么深刻,是因为某个晚上我要一个人在实验室通宵过夜。我带上了一包皇子的速食米粉以及那本犀牛。速食米粉是在我晚上睡觉之前吃的,至于为什么要带那个去吃,至今我都搞不明白,因为实际上那个晚上我是有睡觉的。不过睡觉睡得不太踏实,每三个小时要起来一次而已。那本书带过去是在我还没开始睡觉之前看的,但很难看得下去。后来才知道原来那些翻译的书看起来都很让人绝望。因为有可能翻译的那个人根本不懂那些东西,所以他只是字面上的把那从英文变成中文,但实际上内行的人会发现完全不是那么回事,看那本书的时候自然就会觉得牛头不对马嘴。

现在我看的这本《DAX权威指南》翻译的那个人显然是靠谱的。无论是那个人在DAX方面的造诣,还是他的语言表达能力都是没有问题的。问题就在于这本书的原版。这本书的作者写这本书的意图显然不是给初学者看的。因为给我的感觉是没看那本书之前,我好像有点对那个东西感兴趣,但是越往下看,越不知道自己在做什么。比如一开始的时候,我好像知道某个函数到底是怎么用的,但是当他们把东西铺开,正面的、反面的、效率高的、效率低的、有用的、没用的都抛出来以后,我彻底的不知道自己在做什么了。还有另外一个很作死的地方——任何一个东西,公式套路决定了,以后问题就只是你怎么套而已。但实际上,DAX这个东西,当我要实现某个功能的时候,高手的解决方案早已不是一开始的那些套路了,为什么他们的招数根本就不是那个函数在书上白纸黑字写清楚的那个定义。所以在学习DAX的时候,很多人都多次强调你千万不要用别人的方案去套你自己,这绝对是自寻死路,哪怕你觉得相近的东西,你把它套进去,但只要你放的方式不对,又或者是你使用的场合不合适,依然不会得到你想要的结果,只会让你产生无穷无尽的问号,现在大概我就是这么一个状况,有些东西我好像是懂的,但这种是真的懂还是似懂非懂呢?很多时候我就觉得离那个我想要的答案就只有一步之遥了,但是穷尽我所认识的东西都没办法够得着,这让人很抓狂。咫尺天涯大概只是这个状态了。可以这么说,DAX完全颠覆了一直以来我对数据的认知,跟一般的编程语言对比起来,DAX的使用方式真的不一般。对一般的编程语言来说,核心思想就是判断和循环,搞好这两个以后基本就没什么问题了。一定程度上,我觉得DAX也是在做这种事,但是他们的循环却用得不那么显而易见。还记得学习python的时候,有分迭代与循环。这两个东西不一样,但又很相近。至今我仍旧很害怕迭代这个鬼东西,因为迭代经常让我感觉很迷茫。我不知道自己正在做什么,又或者我很难预知最终我将有什么结果。现在的状况就是我越怕什么我就越遇到什么,完全中了高中数学老师龙哥的预言。

如果再挣扎一些时间,我把自己希望用DAX解决的问题搞定后,我还会继续深入学习《DAX权威指南》这个玩意吗?

2020-04
13

制表符

By xrspook @ 19:14:09 归类于: 扮IT

题目本身很简单,对我这种新手难就难在完全靠自己去摸索格式。这本书之前根本没说过要怎么输出制表符,一个制表符不能解决问题的时候要连续用2个,幸好这里两个就够了,如果超过16个字符,还得3个或以上制表符。于是明明很简单的print输出里面除了套个必须有的while以外还得来一对if-else分开整除了和有尾数的情况。为什么出题的人就这么喜欢超纲呢?????

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import math
def mysqrt(a):
    x  = 10
    while True:
        y = (x + a/x) / 2
        if abs(y - x) < 1e-11:
            break
        x = y
    return y
def test_squre_root():
    print('a\tmysqrt(a)\tmath.sqrt(a)\tdiff')
    print('-\t---------\t------------\t----')
    a = 1
    while a < 10:
        if mysqrt(a)%1 == 0:
            print(str(float(a))+'\t'+str(float('%.11f'% mysqrt(a)))+'\t\t'+str(float('%.11f'% math.sqrt(a)))+'\t\t'+str(float('%.11e'% abs(mysqrt(a)-math.sqrt(a)))))
        else:
            print(str(float(a))+'\t'+str(float('%.11f'% mysqrt(a)))+'\t'+str(float('%.11f'% math.sqrt(a)))+'\t'+str(float('%.11e'% abs(mysqrt(a)-math.sqrt(a)))))
        a = a + 1
test_squre_root()
© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress