几句话编程入门(已完结)

0024 否则

如果明天是晴天,我们就一起吃饭。否则我们就在网上打游戏吧!

依然是一个条件,如果条件成立,那么就一起吃饭,如果条件不成立,那么就一起打游戏。这就形成了两个分支。

这也没啥不好理解的吧?

if(明天是晴天){
  一起去吃饭呀
}else{
  那就在网上打游戏吧
}

代码里也就是换一个结构来表达相同的意思,再按照最开始那样读出来就很容易理解了。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0025 结构

前面所学的两种算是逻辑语句。但其中包含了代码块或者说代码段。那么语句里面包含段落,总觉得有点儿奇怪,我就喜欢把它们当做一种固定的结构。

或者也可以把它们当成一种书写的格式,为了能够更直观的表达这种逻辑关系。

那么其中的代码块是可以包含任意内容的,也就是说,我们可以在里面再放入这样的结构,这就形成了嵌套。

如果明天是晴天,我们就……看具体情况吧,图书馆开门就去图书馆,否则就去咖啡厅发呆。当然,如果不是晴天就出不了门,于是只好在家里打游戏。

显然情况变得复杂了一些,虽然用语言描述我们也能够理解,但是写到代码里,你会发现它变得更容易懂。

if(明天是晴天){
  if(图书馆开门){
    去图书馆看书
  }else{
    去咖啡厅发呆
  }
}else{
  那就在网上打游戏吧
}

这时候你也应该能够感受到代码的缩进,对于快速对应层级关系的帮助。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0026 关系

当我们进行多个判断的时候,会有许多种表达方式,这里不一一举例。这些方式会各有优劣,不过作为初学者,第一个目的是先能够将自己的想法表达出来,所以按照你能够理解的方式去书写就好。

我们可以判断一个事件发生需要的所有条件,比如上一章中我们可以判断明天是晴天,并且图书馆开门的时候。那么这其实是两个条件,两个条件同时达成我们就去图书馆。其他的事件也把所有的条件都进行一遍判断,但是这样效率肯定会低一些, 而且也存在重复的判断。

嵌套的方法减少了重复判断,相对逻辑上也更加清晰,但如果嵌套的层级比较多的时候,也会显得复杂。所以有时候我们会使用一种类似串联的方式。

if(明天不是晴天){
  在家里玩游戏
}else if(图书馆开门){
  去图书馆读书
}else{
  一起吃个饭
}

如果条件达成,那么执行对应的任务。条件没有达成,则进行后续的判断。其实就是不断的对当前的情况进行分支,直到最后覆盖所有的情况为止。那么你可以尝试用这样的表达方式,去判断不同的成绩对应的优良可劣的表达。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0027 思考

根据是否达成相应的条件,判断需要执行的内容,这差不多是程序所要做的大部分事情了。

换句话说,如果不考虑性能和表达的清晰度,那么程序里的逻辑控制几乎可以全部用这样的判断去表达出来。

事实上在我们生活中也是一样的,只是我们习以为常,没有认真思考过细致的去说明其中的每一个步骤。

早晨醒来,如果不困那就睁开眼睛,如果困那么就要考虑一下今天是不是有什么日程安排。没有日程安排,当然是安心的继续睡觉。有日程安排的话就要睁开眼睛看一下时间,如果时间还早,那么可以继续睡觉;如果没时间睡觉了,当然就要起床;如果都已经超时了,那就飞快的起床……

你看是不是和我们前面举的例子,在逻辑形式上是非常类似的。

那么我们也要不断的去做这样的练习,其实就是锻炼我们把一件事情的操作逻辑给表达清楚的能力。毕竟电脑很笨的,只会按照我们设定的方法去执行,所以如果我们不能够清楚的表达我们的意思,那它就没有办法好好的完成工作了。

那么这也是学习编程所能够带给我们的收获,就是逻辑思维能力,会更加有条理的去分析一些事情。所以无论是抱着怎样的目的去做这样的练习,都是很有益处的。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0028 多重分支

如果一件事情有许多的可能性,就比如我们前面所讲到的,判断分数和优良可劣的对应,这就涉及到了多个可能。

我们当然可以像前面学习的那样进行表达,其实那也是一个挺不错的方法,如果你有实际操作并认真思考,会发现它可以减少一些重复的判断,所以在许多时候,这都是一个推荐的方法。

但是还有另外一种方法,就是选择语句,switch,注意我们讲的不是游戏机。这个语句比较复杂,这里我们只讲简单的道理。

首先会给出一个条件,但这个条件一般不是简单的判断一个对与错,或者说成立与否。而是会有多个可能的结果。对于每一种可能性(case),我们提供了相应的解决方案(要执行的代码)。如果不属于其中的任何一种可能性,那么就执行默认的代码(default)。

一般的,理解到这个程度,然后对照标准的格式去书写就够用了。我先来举一个简单的例子(语法上并不严谨):

switch 今天是星期几 {
  case 1:
    今天是星期一
    break
  case 2:
    今天是星期二
    break
  default:
    今天不是星期一也不是星期二
}

根据上面的描述,你大概能够理解这段代码应该如何去执行。那么就多讲两句它的实际运行原理。

它是将上面的条件计算出一个结果,然后和每一个 case 后面的值进行比较,如果它们相同,那就从这里开始执行代码(前面没有匹配到的代码就被跳过去了),这时候如果没有后面的 break,就会一直执行下去,也就是把后面所有的代码都给执行到,显然这不是我们所期望的。所以我们使用 break 进行打断。对于 break 你可以理解为:从当前这个代码段中跳出,后面没有执行到的部分就不管了。当然这句话不够严谨,不过先有一个这样的印象,在后面实际应用中去理解就 OK。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0029 转换思路

条件和情况之间的比较是是否相等,但如果你深入思考一下就会发现问题。还是用分数的例子,比如 90 分以上就算作优。我们输入的条件和具体的情况应该怎么写呢?输入分数,那条件写什么……解决了这一个情况,那么多种情况的判断,又该如何去写呢?

所以这时候我们就应该反其道而行之:

switch true {
  case score>90:
    成绩优异
    break
  ……
}

其实就是别老想着把计算式放在条件里面,我们也可以把结果放在条件里面,而把计算式放在每种情况之中。这就是一个简单的思路转换,但有时候这并不那么容易想到。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0030 简写

在编程中我们经常会用到这样的操作:对于一个变量进行计算,把结果还保存回这个变量之中,就比如:

a = a+1

这当然很简单,但是如果这种操作用的非常多,那么这个写法就显得有那么一点点麻烦。而且如果我们想要修改其中的变量时,等号前后都要进行修改,就也不太方便。所以我们会简写成下面这个样子:

a += 1

这个写法和上面是等价的,就是完全一样,但这样稍微简短一点,并且修改起来也比较容易。那么扩展一下,四则混合运算都可以这样简写(在不同语言下可能有不同)。

这很好理解,我就不一一举例了。

然后还有一种更加频繁的操作,就是真的像上面一样,对于一个变量增加 1 或者减少 1。就比如我们在跳绳计数的时候就是不断给总数加一;火箭发射倒计时就是不断给计数减一。所以这种操作就有了另一种简写:

a++
a--

这被称作为自增或者自减,就是在自身的基础上增加 1 或者减少 1。就类似于:

a = a+1
a = a-1

注意刚才我说的是类似而不像前面那样说的是等价。如果你希望让问题简单一些,那么自增和自减就让它是一条单独的语句,不要混入其他语句中,这样你也就不需要关注下面所讲的这些区别了。

自增和自减的符号还可以写在变量的前面:

++a
--a

写在前面和写在后面是有区别的,这个区别只出现在这个语句同时还使用这个变量值的时候。为了让你能够理解,那么现在先记住一个原则:在上面这两种情况先出现谁,就先计算谁。

a = 6
b = a++

在第 2 行中,我们要使用 a 的值,那么就先拿出 a 的值(6)进行使用,然后再计算后面的自增。所以执行完这两条语句之后 b 被赋值为 6,而 a 自增之后变成了 7。

a = 6
b = ++a

这次自增符号在前面了,所以先计算自增,于是 a 的值变成了 7,然后取用 a 的值,所以 b 为赋值为了 7。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

有点没搞懂。这里的b = a++是不是等价于b=a, a=a+1?否则感觉得不到a=7、b=6的结果。不知为何我总觉得赋值的优先级应该低于其他所有的运算符,所以多少感觉有点违和。

这个理解是正确的。

这个感觉也是正确的。

a++ 作为一个整体去看,那么这个整体的值,是没有 +1 的值。但是在这之后,a 自增了 1。

可能这样反复解释还是不能够深刻的理解,那我就打个比方:

这就像我们一边拿取东西,一边计数。于是就会有两种习惯:

  • 拿到手里一个,数一个数;
  • 数一个数,拿到手里一个

这两种方法都可行,但是一定要确定当前使用的是哪一种方法,要不然就不知道当前属的这个数字对应的是前面所拿的那个东西,还是后面所拿的那个东西。

  • a++ 是先使用一下这个变量,然后给他记一个数。
  • ++a 是先记一个数,然后再使用这个变量。
1 Like

OK,大致理解了,非常感谢。

0031 一点日常

我们来想象一个场景,新学期开学了,老师叫几个同学帮忙搬课本,你是其中之一。来到了办公室,你站在课本堆前面,等待着老师的指示。其实你当然知道要搬这些课本,但是你不知道要拿多少本。所以要等到老师告诉你班里一共有多少人,或者我们一共需要多少本。然后你数出对应的数量搬走。

那么再聚焦其中的细节,老师说咱班上一共 36 人,所以你数出 36 本来搬走就好。你就开始数,拿起一本放在怀里,并且记下这是一本;再拿起一本放在怀里,并且记下这是第二本……直到第 36 本结束搬走。

这里拿起书放到怀里,以及计数增加一,是重复的操作。可以认为每次所做的都是同样的内容。我们重复不断的去进行这样的操作,直到拿到了足够数量的课本。

但怎么判断我们拿到的课本数量足够呢?其实我们在每次计数结束之后,在潜意识中都会做一个判断,就是当前拿到的数量和我预期的数量之间是否相等,如果相等,那么结束。或者也可以换一个说法,如果当前的计数小于我预期的数量,那就是没有拿够,我还要继续拿下一本。

这是一个很普通的事情,显然大家都能够听懂。只是每次计数的同时会做一个判断,这个细节很容易被我们忽略掉。但电脑很笨,如果我们向电脑去描述这件事情,就要把这些细节都讲清楚。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0032 懒惰如我

那么如何用代码去表达前面的事情,当然我们可以用判断,我也很建议大家自己尝试去书写一下,虽然我们没有学习代码,但是简单的去书写一下这个流程是没有问题的。大概就是不断的 if …… else if ……

如果只是简单的判断 1、2、3,那么这样写问题也不太大。可如果像前面所说的那样数出 36 本来,你会发现你一直在写非常类似的代码。

当然你也可以干脆就不做判断了,直接把拿书这个操作写 36 遍,这会非常符合我们的直觉,但我想你也认为这一定不是一个好方法。因为如果这个数字非常大呢,那么变的就不可操作了。

所以,作为一个程序员,是不可能让一件事情枯燥的重复做上三次以上的。如果确实有这样的需求,那么我们总要想一些偷懒的办法。

其实说来说去,我们要做的事情就是:如果我们怀里的书少于预定的数值,就再拿一本,并且对于怀里拥有书的数量 +1。然后不断的去重复上面的操作。那么我们用不规范的代码去表达一下:

books_in_hand = 0
while (books_in_hand<36){
    拿一本书放到怀里
    books_in_hand++
}

这个结构和我们前面学的 if 语句非常像,基本上也就是那样执行的,如果小括号里的条件成立,那么就执行后面的代码段。唯一的区别是:执行完这个代码段以后,要回来重新进行判断,如果条件成立,再次执行代码段……如此往复,这就叫做循环。

直到小括号中的条件不成立,才跳过这部分,开始往下执行。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0033 换一种方式表达

在循环中要注意的问题是,条件不能够一直处于成立。因为条件一直成立,这个循环就无法结束,也就成了死循环。所以前面的代码中,在每一次循环里都会对于计数进行增加,这样他总有不小于预定数值的时刻,循环就被结束了。

但在有的时候,可能这个条件不是那么好书写,或者一些其他的原因,我们会直接书写一个死循环。但是在循环之中会设定打破这个循环的条件。那么我们依然以前面的例子作为演示:

books_in_hand = 0
while (true){
    拿一本书放到怀里
    books_in_hand++
    if(books_in_hand>=36){
        break
    }
}

我直接告诉程序这个条件为真,在这个地方可能有些人会习惯去写 while (1),也完全没有问题,这样会简短一些。数字类型的 1 转换为布尔型就变成了 true,所以两种写法是等效的。

总之条件为真,这个循环会一直进行。但每一次循环到最后都进行了一个判断,如果现在手里的书大于等于 36 本,就打破这个循环(break)不再进行了。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0034 换一种思路

前面我们来到办公室,面对着课本,老老实实的等待老师下达下一步的指示,然后才进行操作。

但是总有那些比较活跃,跳脱,积极……的学生,还没等老师说话,就拿起了一本。

但仔细思考这个思路也完全没有毛病。如果我们单纯的说理论中的所有可能性,那么老师要求拿的数量可以为 0,就是一本儿都不需要拿。如果真的发生这种情况,老老实实的孩子没有做任何的无用功。当然莫名其妙的到办公室溜达一趟,这件事情我们就忽略不计了。至少那些活跃的孩子拿起来一本还要再放回去。

但事实上显然我们知道,到办公室搬书这件事情,老师要求我们拿的数量是不可能为 0 的,也就是说要拿的数量肯定要大于等于 1。那反正肯定要拿一本,我先拿在手里再等下一步的指示,也是非常合理的,而且效率也更高。

对这个思路的描述就是:我拿一本书放在怀里,对我拥有书的数量 +1。然后判断一下这个数量和老师的要求是否相等,还不够那就继续重复上面的操作。

前面讲的方法是先判断,再执行;这次的思路是先执行,再判断。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0035 再写一下

books_in_hand = 0
do {
    拿一本书放到怀里
    books_in_hand++
} while (books_in_hand<36)

不管三七二十一,我先做一下大括号里的操作,然后再做后面的判断,如果后面那个条件达成了,那么回来继续进行循环。

然后我们来理解一下差异。前面的写法,无论老师给出的数量是怎样的,我们拿到的都是准确数量的书籍。而这次的写法是先拿了一本,然后再去判断数量,如果不符合条件就不继续拿了。

那如果老师要求拿的数量真的是 0,会发生什么情况呢?拿了一本,然后发现手头的数量 1 不小于 0,所以不继续拿了,但手头还是有了一本啊,所以这个数量和老师的要求就不相符了。

所以一般来说第一种写法就可以解决我们遇到的各种问题,而且也比较容易符合我们的预期。但既然存在后面这种写法,我们也就顺便介绍一下。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0036 循环的特征

要进行一个循环,首先我们要有需要循环去做的事情,对照前面的例子,就是不断的拿一本书。

需要有一个控制循环的条件,达成条件继续循环,无法达成条件就跳出循环。就是书有没有拿够。

控制循环的条件是否达成会随着循环的不断执行而发生变化,这样才能使得循环执行一段时间之后,自己终止。为什么会发生这样的变化呢?

我们有一个确定的目标,需要拿多少本书。

有一个随着循环不断进行而发生变化的变量,当前手里面有多少本书。

那么整理一下刚才所说的内容:设定一个变量,它会随着循环不断变化;不断判断这个变量和目标之间的关系,如果没有达到目标就继续循环;在每一次循环中,完成我们计划进行的工作,并且对前面设定的变量进行修改。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0037 另一种格式

还是同样的例子,我们换一种写法:

for(books_in_hand = 0; books_in_hand < 36; books_in_hand++){
    拿一本书放到怀里
}

对应前面的理解,大概就能够猜出这段代码是如何执行的.

这里小括号中有三个语句,我用分号进行了分隔。

第 1 句是对变量的初始化,它只在循环开始时执行一次;

第 2 句是控制循环的条件,如果这个条件成立,那么就执行后面的代码段。

第 3 句是每一次循环之后对于变量的修改。

这样我们就把对于这个循环的控制部分都放进了这个小括号之中,而代码段里就单纯的是我们要循环的内容。显然这个格式更加清晰,所以这种写法也更加的常用。

使用 while 的写法最容易丢失的一个地方,就是对于变量的修改。丢失对于变量的修改在语法上并不会出现错误,但却会直接产生一个严重的后果,就是死循环。

而上面这种写法,显然你要把格式填写完整,否则在语法上就会报错,不太容易出现因为缺少对变量的修改而导致的死循环。

对于循环,选择一种自己认为最能够理解的,并且能够很好掌握的方法作为常用方法就可以。因为只要掌握一个方法,基本上可以应对大部分问题了。其他的方法作为了解,在遇到特殊情况的时候,能够想到相关的方法,然后去查阅具体的使用就 OK。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0038 类型的转换

前面我们说过数据是具有类型的,这就好像人是具有不同的职业的。我们在使用一个数据的时候,应该在内心明确的了解这个数据的类型是什么。

有些一些编程的语言需要非常明确的确定数据的类型,就比如 C 语言。那么其中的数据如果需要进行类型的转换,也要有明确的操作,才能够改变这个数据的类型。

也有一些编程的语言,它的数据类型是模糊的,就比如 JavaScript。对于一个变量没有明确的去说明类型,你赋予它字符串的值,那它就是个字符串,赋予它数字的值,它就是一个数字。在进行计算时,如果参与计算的数据类型不同,它会尝试自动的进行类型的转换,使的类型一致,然后进行计算。对于这样的语言,一般编程新人是会觉得非常开心的,因为少了分辨类型这个巨大的麻烦。但事实上无论使用的是怎样的语言,在内心都必须明确当前数据的类型,这是非常重要的。

数据的转换需要注意到一些方面,比如能不能转换。"123",我们知道这是一个字符串,因为它使用引号进行标记了,但如果说把它转换成为数字类型,显然我们知道这是可行的。但如果是这样的字符串呢:"嘿,我是一个字符串",显然它是不能够被转换为数字的。

自动转换的结果是不是和我们预期的相同。"123"+456,这样的计算应该得出怎样的结果?这要看程序如何进行类型的转换,如果它把两者都转换为数字,那么结果应该是 579,就是把两者相加。但如果程序把它们都转换为了字符串,字符串的相加可能是(这个在不同的语言下是有区别的)将字符串连接在一起,那么得到的结果就是:"123456"。如何知道程序对于类型自动转换的规则?这个有人列出了许多具体的都有关系,但是我记不住,所以我倾向于在使用的时候实际去运行尝试一下,反正随手写一个类型转换的小案例,也就一句代码,运行一下就可以得到明确的结果。

然后有许多类型可以转换为布尔型,大概的规则是存在即为真,不存在即为假。所以 0 为假,1 为真。当然 2 也为真……可以以此类推,但我举例不过来。不过一般情况下,如果我们想设置一个为真的条件,简单书写的话都会使用数字 1,而不是其他数字。就像我们前面所演示到的那样。因为如果把布尔型转换为数字,那么得到的结果就是 0 和 1。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0039 数组

如果老师让我们统计全班学生的名字,这是一个很简单的问题,但是如果我们放到编程中去思考,每一个姓名就是一个数据,对,它的类型是字符串。那么我们把这些数据储存起来就需要……总之很多的变量。这问题就变得很麻烦了,我们要建立变量并给它赋值,而在需要使用的时候还要找出对应的变量,然后提取它的值。这是全班学生的名字,那如果是全校学生的名字呢……

我们在实际生活中是怎么去进行统计的?有一个表格,前面是编号,比如一般会用学号,后面是对应的姓名。在使用的时候就根据学号去查找姓名。

我们在程序中也有一个类似的概念,就是数组,简单解释就是一组数据。那么根据我们前面的经验,一组数据可以不止一个,但也可以是一个,或者甚至没有,是 0 个。总之就是把一组数据打包成一个整体。

那么直观一点,我们先在代码中去举一个例子:

names = ["张小虎", "王小红", "李小二", "猫小兔"]

这样用方括号来包含一系列的数据,数据之间用逗号进行分隔(具体的书写格式参照你所使用的编程语言)。上面列出的是 4 个学生的姓名,但是我把他们作为一个合集放在了一个变量之内。这是一个简单普通的数组。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

0040 一些特征和用法

先把上一次的例子放在前面:

names = ["张小虎", "王小红", "李小二", "猫小兔"]

数组具有一个属性就是它的长度,用来说明它里面包含几个数据,所以 names 的 length 为 4。那么获取属性的值的方法为:names.length ,我把其中的点(.)读作“的”,就很容易理解了。

数组是具有顺序的,所以每一个数据都具有一个序号,你可以认为是他们的学号,总之就是按顺序排列的编号。这里需要注意的是:序号从 0 开始计算。就像笑话中说的那样,程序员数数是从零开始的。

所以“张小虎”这个数据的序号是 0。而数组中最后一个数据的序号为数组的长度减一:names.length - 1

当我们需要取用某个数据的时候就这样写:names[2],就是说这个数组里序号为 2 的那个数据,也就是其中的第 3 项,在这里得到的就是“李小二”。

这里的序号可以使用变量代替:

a = 2
names[a]

数组中可以储存各种类型的数据,所以其中的某一项也可以是一个数组,这就形成了嵌套。如果数组中的每一项都是数组,这就形成了一个多维数组,常用的有二维数组和三维数组,这些使用起来就比较考验空间想象能力了。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like