Pulpcode

捕获,搅碎,拼接,吞咽

0%

之前编程写到跨行字符串的时候,在c#中,总是使用+字符拼接。

1
2
3
4
5
string s = "The path of the righteous man is beset on all sides by the inequities of the tyranny of evil man."
+ "blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness,"
+ "for he is truly his brother's keeper and the finder of lost children."
+ "And i will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers."
+ "And you will know my name is the lord when i lay my vengeance upon thee.";

后来我使用@符号编写跨行字符串,这样就可以直接编写字符串了。

需要注意的是,在这段由@””包围的字符串中,你的所有格式,都被保留下来了。比如换行符,换行符后面的空格,还是文字前面用于缩进的空白符,都保存在这个字符串中。

阅读全文 »

最近使用vs2012开发程序,在vs中有”清理”,”生成”和”重新生成”这几个选项。

生成和重新生成

我回想到当年学的make,这些用来构建代码的工具,大多都是类似的操作,vs的清理就和make中的clean一样。类似的,重新生成就像是先清理再生成。
而生成的规则也是类似的:看源文件是否修改,如果修改那么就需要生成目标文件。

问题就是,有多少错误的原因来源于没有生成?很多人不管何时,清理生成的挨个点过来。不爽的还会清理+重新生成。要知道,大多数情况,我们是没有必要重新生成的,因为系统会给据源文件是否修改,自行判断。
而且,重新生成就是清理+生成。

阅读全文 »

最近写程序读取Excel中的数据,在读取时间的时候没有获得时间,而是一个很大的float数据

比如1986-10-25这个日期,获取之后是31710这个数字,一开始我以为是从1970年1月1日开始的(计算机的日期就是从这一天开始算的),但是从1970年到即使到今天也不可能加出这么大的数字的。

这个日期不是从1970年开始的,而是从1900年1月1日开始的,也就是20世纪的第一天。

很多万年历,就是从1900年开始算起的。

问题: 1.描述下列表达式求值之后的结果:

1
2
3
4
5
6
7
8
;; (a)
(+ (- 5 1) (+ 3 7))
;; (b)
(list 1 (+ 2 3))
;; (c)
(if (listp 1) (+ 1 2) (+ 3 4))
;; (d)
(list (and (listp 3) t) (+ 1 2))
阅读全文 »

今天在整理书柜的时候,发现了自己初中收集的好几本《可怕的科学》系列丛书。

我记忆犹新的是其中一本关于几何的书上,介绍了一种求证毕达哥拉斯定理(勾股定理)的方法,仅仅使用初中的数学知识。
这么多年一直没忘,今天就为大家show一下。

勾股定理:a^2 + b^2 = c^2

证明其实不长,而且也简单,如果你能耐心看下去,会发现很有意思。

pythagoras

首先我们先对一个直角三角形的每一个边都做一个正方形。
你应该已经发现,我们只要证明两个直角边的正方形面积之和等于斜边正方形面积就行了。

阅读全文 »

今天有一个朋友问我,是否在更新一个py文件的时候,pyc文件也会跟着更新。

这其实是一个很有趣的问题。

我们来做个实验就知道了,首先我来写这样两段代码:

foo.py 文件
1
2
3
# -*- coding: utf-8 -*-
def echo():
return "hehe"
阅读全文 »