CC 专用🐍Python入门到入院旅行指南

Science is a differential equation.
Religion is a boundary condition.

 

本教程仅可爱的CC可解锁,入门级别,重在实践实践!

如果有疑问,可随时联系Dingding

基本概念介绍

什么是计算机?

计算机,其实也就是通过若干逻辑门所拼凑出来的一个实体机器(这个定义在真正的人工智能到来之前,没有伦理问题)。人类可以通过电流脉冲来让机器按照预想的方式运作,为人类更好地服务,从而解放人类社会的生产力。

计算机里,比较重要的几个组件是,CPU(中央处理器),硬盘(ROM), 内存(RAM)。大多数情况下,一个程序运行的逻辑是这样的:程序代码存储在硬盘里,系统将需要执行的代码以及数据导入至内存中,然后再由CPU执行运算,等待返回结果即可。😊

什么是Python,优点是什么捏?

Python是一门高级脚本语言。什么是“高级”呢?直观理解便是,Python的语法更偏向人类的沟通方式(这也是它之所以成为最受欢迎的编程语言的一个主要原因之一),而像其他的语言,比如C, C++, Fortran等,更偏向机器,对人类而言可读性上就比较差了。

除上述可读性这个优点,由于使用的人数众多,社区发达,所以Python可以干几乎你现在能想到的任何事。处理Excel表格,自动收发邮件,编写网页,从海量网页里自动收集数据,机器学习,人工智能,甚至还可以帮你自动回复微信来应付老板🤣等等等。

什么是编译器,编辑器?

就像上面所说,Python的代码虽然是编程代码,但是其实还是给“人”看的,不是给机器看的😥,机器只能读懂二进制代码(1001010010101这样一个1一个圈圈这种),所以我们还需要一个“翻译”,将Python这种给CC看的代码,翻译给你苦命的电脑💻哈哈,而这个“翻译”,就是编译器(Compiler)了。

咱们有了这名靠谱的“翻译官”之后,另外一个问题就来了,我们应该怎么去编写代码呢?我们此时便需要有一个记录代码的“工具仔”来编写代码,就是所谓的编辑器(Editor)。其实你甚至可以使用windows自带的txt文本文档去写代码,但是这样的话就会很不方便,因为其:①没有语法高亮,如下图,同样一段代码,一个是txt文本文档的效果:

Notepad_oQv84xQje3

一个是拥有高亮功能的高亮编辑器的效果:

Code_qCie3z0O4G

这就是所谓的语法高亮啦,简单来说,就是可以帮助你在茫茫码海中快速甄别你中意的对象~

那么除了语法高亮,一个优秀的编辑器还应当具备②代码自动补全,这个功能。比方说上面的代码里,print是Python里面的指令,如果你在txt文本文档里,你需要用手辛苦地把这五个字母全部键入才可;但是在拥有代码自动补全的编辑器里,你甚至只需要键入pr,它就会很聪明地提示你剩下的东东,这样就可以让你可爱的手好好休息休息,解放生产力✌️

 

环境搭建

解释过上面的诸多概念之后,我们需要搭建你电脑上的环境啦,我们需要下载安装“翻译”编译器,以及记录代码的“工具仔”编辑器。

编译器下载与安装(Anaconda)

Python的编译器其实非常小,我记得大概只有不到10MB,但是其只包含了一些最基本的函数和功能包。往往在我们现实工程里,这些基础的包不太够用,需要我们去手动下载所需要的包(比方说,你想画图就需要下载一个画图的包叫matplotlib;CC若想处理Excel表格那么就需要用到pandas这个包,也需要自己手动下载)。手动下载是不是觉得很烦哈哈😄,好消息是这里有一劳永逸的解决办法:那就是下载Anaconda这个集成了几乎所有我们会用到的包的一个Python集合版本(实际上,Python英文意为蟒蛇,Anaconda是大蟒蛇哈哈,这你就懂了吧✌)。

下载

Anaconda的官方网站:点我点我🙋‍

进去后点右手边的“Download”,喝杯茶等待等待即可~安装包的大小大概是600MB左右。

安装

安装就很简单啦,Next-->Install for: Just me is ok-->选择一个你心仪的位置安装此Anaconda,然后!重点来了:如下图我选的两项,一定要勾选"Add Anaconda3 to my PATH environment variable":

Anaconda3-2022.05-Windows-x86_64_Gw4Sc4or3S

然后点击“Install”就可以啦,耐心等待一阵~若出现如下图:

chrome_Sz1jALermO

恭喜CC,翻译官已经到位啦✌

编辑器安装与配置

下载与安装

编辑器这里我推荐使用Microsoft的VScode studio,配置简单,功能强大,基本可以满足一个程序员的所有需求!

下载地址:点我点我🙋‍

在该网页里点左边的Windows下载按钮即可,其会过几秒种,然后浏览器便会自己开始下载啦~

下载完之后安装即可,下面这一页可以跟我选择一样:

VSCodeUserSetup-x64-1.69.1.tmp_maQsLCcpy1

然后耐心等待下,就大功告成了✌

配置

下面教CC如何让“翻译官”和打代码的“工具仔”联动在一起!

当你打开VScode后,会发现界面全都是英文的😔,如果你英文还不错,那么可以跳过下面的这一汉化教程~

编辑器的汉化
  1. 使用快捷键组合【Ctrl+Shift+p】,在搜索框中输入“configure display language”,然后选择中文;

  2. VScode会开始下载中文语言包,下载完成或按照其提示的(如下图),点击Restart重启

    Code_o4V3fGtg5H

Congradulations! 再次打开,如下图,你就会发现是中文界面啦😄

Code_FipBH0FTc7

CC记得选择自己喜欢的主题噢,好看的主题会让人写代码的时候心情愉悦~我这里就先选深色了。

下面就要开始配置啦!

① 点击左上角“文件”,然后新建一个文本文件;

② 在弹出来的新界面里,如下图,点击“选择语言”,然后选择“python”

Code_uNszZBZSGg

③ 此时注意看右下角,如下图,是否出现了“base: conda”的字样(该提示便是告知你,此时VScode已经连接到了CC前面安装的Anaconda啦,3.8.8是版本号,那个没关系,我这个安装的比较早了所以可能和你的不一样,不影响😄)

KGqaPgg4kw

如果目前为止你一切按照我前面所说来操作,那么配置已经完成啦。如果没出现这个😔,那么需要手动选择了,到时候直接问我就可以~

另外,为了让你增加成功率,我录制了一个视频,是该环境搭建过程的,CC可以参考参考噢。视频连接:点我点我🙋‍

 

咳咳咳,到目前为止,环境基本上就已经搭建完成了!!下面我们写一段代码来测试测试~

几乎所有的编程语言在执行上,都是自上而下的顺序。执行该代码前记得先保存一下噢,python的代码后缀名是.py结尾~ 下面我来解释一下上面的代码:

  1. 前面两行import,指的是将包"numpy"导入到此程序,并且缩写为"np"(省事儿嘛😄);第二行显而易见,就是导入包"pandas"并且缩写为"pd"。这两行只是测试CC是否成功联动了VScode和Anaconda,因为这两个包如果没有成功联动Anaconda的话,是没有的,程序就会报错🤯;除此之外,这两行在程序里一点用都没了😔。
  2. 剩下的几行,用到了Python里一个最基本的函数print,意为将某某信息打印输出至屏幕上。这里很显然啦,我打印了五句话:"What a nice day. My name is Dingding. Its my pleasure to meet CC. CC is so wonderful~ CC is so cute~"。print函数需要配合后续的括号来进行使用(语法)!!至于括号里需要打印的东东为什么带双引号,这也是语法,因为我们打印的东西类型是字符串,是需要套双引号的噢。如果CC想一次在一个print里输出多个信息,那么它们需要被英文逗号隔开噢;如果是Python里面所赋予的变量,就不需要双引号啦。详情请看下方的另外一个小测试的例子😊

好啦,解释完了,现在按快捷键【Ctrl+F5】,即可执行该代码。如果一些正常,那么你会得到和我下图一样的结果✌✌:

Code_4LxzNLJTiY

再来一个小测试,CC请仔细阅读下面的代码,并回答,执行程序之后,屏幕上会出现什么信息呢🤔?

看见了嘛~上面代码最后一行,那个英文的逗号,便是在一个print里面输出了两个信息,一个是“The god said, she is”,还有一个就是变量cutest_girl所代表的那个人了😄

至此,测试结束,让我们开始实践吧!

实践1:利用Python计算1累加至100的值

任务说明:我们想要计算,0+1+2+3+4+....+100的值,用公式表示为下式:

(1)i=0100i

思路上来说呢,其实很简单啦,我们需要首先设置一个用来存储这个最终累加结果的变量,命名为"summ",让其在一开始的时候值为0(即没有累加),然后写一个循环,循环100次,每次让这个summ+该次数所对应的值就好啦✌。

比方说,

第1次循环: summ=0+1
第2次循环: summ=(上一个summ)+2
....
第100次循环: summ=(第99次循环时候的summ)+100

所以呀,我们的核心便是:

(2)summnow=summpre+count

上式中summnow是现在此刻我们要叠加的summ,而summpre则是上一次循环的叠加结果,count则为此次循环我们需要叠加的数字大小。

这里我们使用python里的for循环来实现,注意观察CC,for循环结尾处需要有冒号噢,这是python的语法之一。详情请看代码:

上述代码解释

第1行:即是初始化summ,使其为0,即没有叠加的状态~

第2行:开始循环啦,该意思为“当 i 小于101时,执行循环”。

这个过程,其实很好理解啦:

1次循环,

summ=0, i=0
然后执行第3行的叠加: summ = 0 + 0
然后第4行: i=0+1=1

这样的话,第2次循环时候,

summ=0, i=1
然后执行第3行的叠加: summ=0+1
然后第四行: i=1+1=2

那么不难想象,第3次循环将会是:

summ=1, i=2
然后执行第3行的叠加: summ=1+2
然后第四行: i=2+1=3

..... and so on~ 😄就可以实现summ=1+2+3+4+5+6+....+100啦

代码逐行分析完了,你有没有发现一个很有意思的现象,就是为什么上面的代码没有全部向左对其呢😢实际上这也是python的语法要求,即有个概念叫“缩进”。这便是让python明白你代码的逻辑,这里你会发现第一行,第二行以及最后一行都是左对齐写的,而唯独第3、第4行是空了4个空格写的,这是因为第二行for开启了循环语法,而第2、3行均属于循环体内,程序要快速识别逻辑关系,所以会检索代码对其的情况,所以要进行“缩进”,不知道我有没有讲明白😊

一个优秀的代码看起来会是赏心悦目的,逻辑清晰一目了然~

实际上,正如前面所讲,python是一个高级编程语言,像用于判断循环次数的因子"i",我们不需要手动写进循环(意思就是没必要加i=i+1这一项啦),这样会给我们节省不少时间,当然写了也不会影响结果啦,系统也还是会认的。

只要你把这个逻辑在脑袋瓜中捋清楚,不要混乱,编程将会变得很简单✌

实践2:Python 使用pandas包处理Excel数据实践

现在要来一点硬核的啦😊

比方说,我们有一个Excel表格,里面有一个班26个同学,姓名分别是AA, BB, CC, DD ...... ZZ,该表格包含了六列,分别是:

姓名,可爱程度,幸运程度1,幸运程度2,幸运程度3,幸运程度4

我们现在有三个任务来帮助你快速上手:

  1. 找到26位同学里可爱程度最高的那位;
  2. 计算全班同学可爱程度的平均值;
  3. 根据四个幸运程度求出平均值,并找到该平均值最低的那位老倒霉蛋

表格内容如下图所示:

rBYisKfqzh

接下来我将在代码里给你做详细的注释,所谓注释就是解释每一行是干嘛的,在python里,注释便是前面带一个#号的~

本次实践,我将展示两种方式,一种是比较困难的,需要运用到严谨地逻辑分析,去编写循环来实现;还有一种是直接使用python里著名的数值计算包numpy实现。

建议CC先看简单版本的,其名称为ez.py,当看明白之后呢,可以尝试理解一下困难版本的,其名称为hard.py。

一字一句都是亲手打的,还望CC耐心慢慢理解~

实践2所有数据下载地址:点我点我🙋‍

 

实践3:利用Python计算生日碰撞问题

我的C宝,很久未见啦哈哈,丁丁这里为你更新我们新的一个实践作业。

在本次作业开始前,你丁将会给你先介绍Python里的条件判断语法if语句。if语句的格式是这样的:

if <条件1>:
(tab)内容1
elif <条件2>:
(tab)内容2
else:
(tab)内容3...

是不是觉得有点抽象哈哈哈😄,我CC看下面的代码例子就会一下就明白啦:

显而易见,上面的程序如果执行的话,会输出"a is less than b",因为浮点数1.0(a)肯定比浮点数2.0(b)小啦。上面的代码,其实丁丁写的比较啰嗦,主要是为了跟上方if语句的格式保持一致啦~

其实上方代码例子里,逻辑判断只有这三种情况:①a比b小 ②a比b大 ③a等于b

所以呀,如果我们只需要判断a是否比b小(情况①),而其他情况不用细分(情况②③),那么代码就可以简化为:

除此之外呢,为了我C能够顺利完成本次实践作业,丁丁这里再给CC带来一个小例子:

for循环打印0,1,2,3,4....,100, 但当打印的数字比5大的时候,终止循环

其实很简单啦,我CC应该大概知道怎么写了吧哈哈😄且看下方代码:

执行结果如图所示:

这里的break语句,便是用来跳出(终止)循环的啦,这也很浅显易懂啦,这个词本身就是有点类似stop的意思啦~

好啦到目前为止,完成本次作业的所需知识储备已经足够,现在开始布置本次作业🤭

本次作业需要先援引之前的一封邮件内容:

还记得这个嘛哈哈~不记得的话请我的CC先提前看一看

细心的CC肯定能发现,上方图片里的公式

(3)p(n)=365365364365  ...365n+1365

是不是很像一个循环呀哈哈。像这种笨笨的循环,就很适合用我们兢兢业业的计算机去实现啦~

邮件里的内容,丁丁其实告知了CC"班级里两个人生日相同的概率超过50%的最少人数",答案是23人哦。那么本次的作业:

请CC利用这次实践所学(if判断),以及之前所学(for循环),计算出一个班级里最少需要几人,班级里两个人生日相同的概率才会大于97%?

CCC加油冲冲冲鸭哈哈哈 ᶘ ᵒᴥᵒᶅ ❤️

 

 

 

任何事都需要一个过程
Practice makes perfect
加油可爱的CC 💪

 

Dingding

2022.9.17


CopyRight@Dingdluan