一、Python语言的入门
最后更新于:2022-04-01 21:47:16
## Python语言的入门
----From a high school student's view tolearn Python
关键字:高中生学编程 Python语言 计算机语言
一、**学习之前的心理准备**
学习Python或者说其它任何的计算机语言之前应该了解以及具备的能力:
1. 数学基础,其实我发现很多的程序就像是一个个小的算法组合起来的,而且在编程序时对于逻辑思维的能力要求比较高,因为程序是按照人设计的流程来运行的,而且只会遵守代码的真实意图,所以大家在编程时千万不能自己先晕了…..
2. 逻辑思维能力
编写程序的目的,一是解决数学计算,比如象我们使用的计算器就是最简单的例子;二是完成一些事务性的操作,比如我们日常见到的售票系统,银行使用的存取款系统;无论是计算还是事务性流程,都会有因果关系以及各种条件的判断,这些说的高深一点就是逻辑。
3、总结归纳的能力
计算机虽然具有很强的计算能力,可是他并不能够自动的解决我们的问题,比如我们奥数中的“鸡兔同笼”问题,你告诉计算机头多少、腿多少,让它告诉你鸡兔各有多少?除非你百度,计算机自己是不会算的;这就需要我们,通过分析问题,建立相应的数学模型:
1、设头的总数为n1,腿的总数为n2
2、如果按照头的数量,用n2减去n1*2,剩下的都是两条腿的兔子的腿了
3、 所以兔子的数量n3=(n2-2*n1)/2
4、如果n3为整数,那么鸡的数量n4=n1-n3
5、否则无解
我们按照就能够编写出解决问题的程序,然后你只要输入头的数量和腿的数量,现在计算机就可以很智能的替你解决鸡兔同笼的问题了。
二、**为什么选择Python呢**
对于我们初学者来说,最重要的还是简单,当然有技术含量也是必须的(可以显摆J)。简单体现在哪呢?
1、 Python语言有一个交互式的开发环境,因为Python是解释运行,这大大节省了每次编译的时间,满足我们开始编程时的急迫心态,稍微写点东西就期望马上看到结果。
2、 Python语法简单,且内置有几种高级数据结构,如字典、列表等,使得使用起来特别简单。
3、 Python也被称为是一门清晰的语言。【以下内容体会还不是很深刻J】因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由TimPeters写的python格言里面表述为:Thereshould be one-- and preferably only one --obvious way to doit.虽然我不知道其他的语言是什么样子,但是Python确实是一门十分简单的语言,每行代码就几乎和平时说的话没什么区别。
4、 Python语言目前也算比较流行的语言,适用面非常广泛,并非“小语种”,完全可以满足显摆的要求
****
**三、Python语言的局限**
虽然Python语言是一个非常成功的语言,但是也有必要明白它的局限性。
1. 运行效率低下
目前为止,Python语言可以说是所有主流脚本语言中速度最慢的。(是这样么?待考.)这与其脚本引擎的设计思路有关。如果你的应用对于速度有着较高的要求,就要考虑Python是否能满足需要。不过这一点可以通过使用C编写关键模块,然后由Python调用的方式加以部分解决。(……我也不太懂)
2. 独特的语法
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。在我最开始学习Python的时候,经常是写一大堆的if语句, 而且因为每个语句都需要缩进,导致我经常就把缩进的层级搞混导致程序无法运行。
不过如果在写程序的时候把每个分支和循环的层级都弄懂的话,还是很大程度上可以避免的。
3. 无类型
作为一种动态语言,随时随地创建和使用变量是Python给我们带来的巨大的便利。但是它也会使得程序不严谨,某些错误只有在运行中才可能出现。所以我每次在写完一个小的project的时候都需要运行好几次来进行测试, 从而找出里面的错误
四、**python语言的神奇之处**
python语言之所以被大家公认为很cool的一门语言,在于它提供的一些神奇的基础资源库,在后面的介绍中会具体的进行介绍,这里简单的给大家一个简单的例子。
随机产生福利彩票双色球的号码
双色球由红球和蓝球两部份组成,从33个红球号码(01~33)中选择6个,再从16个蓝球号码(01~16)中选择1个。
以下语句就可简洁的实现双色球的选号:
import random
random.sample(range(1,34),6)+random.sample(range(1,17),1)
[16, 22,28, 3, 19, 15, 2]
要是用C语言来实现,你知道会有多复杂吗?
以下是从百度知道中搜到的一个33选6的实现代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <stdlib.h> #include <stdio.h> ##include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX 6 int main( void) { int number[MAX] = {0}; int i,j; srand()((unsigned)time(NULL)); for(i = 0; i < MAX;i++) { number[i] = rand()()% 33; while(number[i]==0) number[i] = rand()() % 33; //printf("%d ", number[i]); } while(1) { for(i=0;i<6;i++) for(j=i+1;j<6;j++) { if(number[i]==number[j]) { number[j]=rand() % 33; i=-1; } } if(i==6) break; } for(i= 0; i < MAX;i++) printf("%d ", number[i]); printf("\n"); return 0; } |
虽然我们不能够以此而得出结论,但python的便利性确实是公认的。
五、**本篇小结**
总体来说,python是一门全能的语言,如果对于程序的性能没有苛刻的要求,对于除系统底层的操作之外的所有事情都可以处理;
当然,现在还不能够心急,还需要带大家了解一些基本的计算机方面的知识,这样便于后面可以更好地深入学习。
为了便于大家比较系统的学习,我还会推荐一些美国大学的公开课资源,同时,我也会截取其中的一些视频,作为补充。
之后我会详细的介绍如何搭建学习环境,真正的开启我们学习的大门。
有兴趣的话,大家查一查python的英文到底是什么意思,相信大家一定很好奇![一、Python语言的入门](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "一、Python语言的入门")我的更多文章:
- [Python程序调试的一些体会](http://blog.sina.com.cn/s/blog_d6cca93e0101ewc9.html)(2013-10-06 22:57:35)
- [十四、Python编程计算24点(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101euxx.html)(2013-10-03 22:18:28)
- [十三、Python编程计算24点(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101eukc.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含图片")
(2013-10-02 22:15:46)
- [十二、Python简单数据结构应用(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101euk8.html)(2013-10-02 22:10:41)
- [十一、Python简单数据结构应用(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ep9z.html)(2013-09-23 23:31:49)
- [十、Python编程解决组合问题(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101entc.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含图片")
(2013-09-21 23:37:27)
- [九、Python编程解决组合问题(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ent7.html)(2013-09-21 23:32:54)
- [八、Python的函数编程(之二)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwj.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含视频")
(2013-09-20 23:09:39)
- [七、Python的函数编程(之一)](http://blog.sina.com.cn/s/blog_d6cca93e0101ekwg.html)![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-30_5632e1cc04fc3.gif "此博文包含视频")
(2013-09-20 23:09:10)
- [高中生如何学编程](http://blog.sina.com.cn/s/blog_d6cca93e0101e8fn.html)(2013-09-02 19:26:01)
';