图书 •
828 引用 •
203 回帖 •
3 关注
博客
关注
-
[链接]7.3 日期与时间 与时间相关的处理和计算也很常见,SPL 有三种数据类型:日期、时间、日期时间。 日期数据就只有日期信息,没有时间信息;时间数据只有时间信息,没有对应的日期信息;而日 ..
-
7.2 拆分合并 我们已经会用循环函数和 mid 把字符串拆成单个的字符序列,因为这种情况很常用,SPL 提供了 split 函数。s.split()就相当于 len(s).(mid(s,~, ..
-
[链接]7.1 字符串 到现在这止,我们在程序中处理过的数据,除了 output 时有个少量文字外,都是数值或数值构成的序列。其实,计算机还能方便地处理文字,在程序语言中,我们把这些文字称为字 ..
-
6.3 可复用脚本 学到现在,我们都在一个网格里写代码。 这个网格可以被保存成一个扩展名为.splx 的文件,我们称它为一个脚本。 现在我们学会了写自定义函数被重复调用,但是这个函数只能在一个 ..
-
[链接]6.2 递归 * 有了自定义函数就可以写出递归程序了,我们再来看阶乘运算,这是个好例子。 我们知道,n!=(n-1)!*n,也就是说,如果我们知道 (n-1)! 后,就可以再用乘法来计 ..
-
6.1 自定义函数 还是假定没有阶乘函数,现在想计算组合数[图片]。 A B C 1 10 4 2 =1 for A1 >A2=A2*B2 3 =1 for B1 >A3=A3*B ..
-
[链接]5.7 Lambda 语法 * 回顾一下 A.pos(x) 和 A.select(x) 这两个函数,我们说前者不是循环函数,参数 x 中不能用 ~、#这些符号,而后者是循环函数,参数中 ..
-
[链接]5.6 排序相关 为了解决数字黑洞问题,我们已经写了好几种排序代码了。排序确实是很常见的动作,所以 SPL 直接提供了排序函数。 A.sort() 将返回将 A 的成员从小到大排列的序 ..
-
5.5 定位选出 从序列中取出子序列(也就是集合取子集)是常见运算,我们已经学过用 to 函数和数列根据成员的位置取出子序列。 有时候我们希望从序列尾部按倒数次序取成员,当然可以用序列长度计算 ..
-
[链接]5.4 迭代函数 * 我们还可以用更基础的迭代函数来实现不用临时变量完成e的计算。 序列 A 的迭代函数 A.iterate@a(x,a) 有两个参数 x 和 a,先不管这里的 @a, ..
-
[链接]5.3 循环函数进阶 SPL 在循环函数中提供了充当循环变量的 ~ 符号,可以简化许多原本要用循环语句来写的代码。但我们知道,针对序列的循环语句还提供了获取循环序号的语法(在循环变量前 ..
-
5.2 循环函数 前面我们用循环语句完成针对序列成员的求和、最大 / 最小值运算,但循环语句很麻烦,要先设置初始值再一步步计算。SPL 考虑到这一点,提供了一些针对序列的常用函数。 A B 1 ..
-
[链接]5.1 集合运算 现在,我们学会了使用序列,但这个序列看起来就像之前所说的,是一批变量用了同一个名字,我们在操作这些序列成员时仍然是一个个去引用和赋值的。这一章里,我们来学习如何将序列 ..
-
[链接]4.4 理解对象 我们先看一段例子代码: A B 1 =4 =A1 2 =[3,4,12,4,6,9,3,5] =A2 3 >B1=3 =A1 4 >B2(2)=0 =A2 ..
-
4.3 多层序列 序列的成员还可以是序列,这样可以构成多层的序列。比如 [[1,2,3],[2,3,1],[3,1,2]] 就是个合法的序列,其每个成员又是一个序列。 我们来看多层序列的成员如 ..
-
[链接]4.2 序列循环 使用循环,我们可以实现一些针对序列的聚合运算,比如之前的 max/min。 A B C 1 =[3,4,12,4,6,9,3,5] =-999999 =999999 ..
-
4.1 序列 前面我们写过的程序中,输入的原始数据只有不多的几个。循环代码处理的多个数据,也是有某种规律被代码算出来的,不算是代码的原始数据了。实际工作中我们要处理的原始数据常常也是一大批,这 ..
-
[链接]3.4 死循环 如果在 for 后面什么也不写,即不写循环次数也不写循环条件,那会出现什么情况? 这种循环称为无条件循环,俗称死循环。这个循环体理论上就会没完没了地反复执行,永远不会停 ..
-
[链接]3.3 条件循环 for n 和 for a,b 都是确定次数的循环,但有时候我们不知道要循环多少次。要当某个条件成立(或者不成立)时才结束循环,之前一直重复执行循环体。这种循环称为条 ..
-
[链接]3.2 多层循环 就像 if 和 else 的代码块中还可能再有 if…else 一样,for 的循环体中也还可以再有 for,这种情况我们称为多层循环。 水仙花数是指这样的一个三位数 ..
-
3.1 单层循环 目前为止,我们写的代码都是从前向后执行一遍就结束了。if 语句可能导致某些代码被跳过而不执行,程序的总体流向仍然是向前向后的,没有一句代码会被执行多次。 事实上,计算机最擅长 ..
-
[链接]2.3 注释和跳转 程序代码不一定总是能写对,在没有出现预期结果时常常搞不清原因,这时候就需要对程序进行调试以定位错误。 早期原始的调试方式就是把程序运行的中间结果输出,看看是哪一步不 ..
-
2.2 分支结构 用 if() 函数可以完成一些判断,但有些情况,我们还需要 if 语句。 回顾一下中学学过的二次方程[图片],可以用公式[图片]解出方程,但是要考察其中那个[图片],如果它大 ..
-
[链接]2.1 逻辑运算 假如我们想计算一个数的绝对值(其实 SPL 有 abs 函数,但这里用别的方法来尝试),这需要判断这个数是大于 0 还是小于 0 的,我们引入 if 函数来实现: = ..
-
1.3 函数 前面说了数据有类型,并且除法会计算出浮点数来,如果我们希望得到一个整数,比如四舍五入成整数,那该怎么办? 学到现在,似乎还不会做这件事?我们不知道怎么把一个浮点数变成整数,即使计 ..