路漫漫其修远兮,吾将上下而求索...

编程语言众多,徘徊在C、C#、Java、PHP等十字路口,看到哪个领域大牛的成功,便想打开那扇窗,反反复复,犹豫不决,终无所获。

个人认为选择一门语言,要根据自身的编程基础,计算机基础,以及所选语言能实现哪些目标来选择当前想学习的语言

生活的节奏让我必须做出选择,我要打开这扇魔幻的世界之窗----Python编程之路;希望和志同道合码农一起修炼,升级。


Python是什么

编译型与解释型

编译型语言:对于程序在一个文件中,编译后直接生成一个可执行文件,可以直接运行;对于较为复杂的项目,代码分为各个模块并且保存在各个源文件中,所以需要对各个文件编译生成相对应的目标文件而不是可执行代码,此时需要将这些目标文件“链接”起来才能运行。

解释型语言:只在程序运行时,才一条一条的解释成机器语言给计算机来执行,所以运行速度比较慢。

动态语言与静态语言

动态语言:指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

静态语言:数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表。

强类型定义语言与弱类型定义语言

强类型定义语言:一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型

弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值,例如即可以当作字符串处理也可以当作数字处理,如shell

总而言之,Python是一门动态强类型定义的解释型语言。

可以参考Alex老师的总结:<strongwww.cnblogs.com/alex3714/articles/5465189.html


Python能做什么

我认为学习一门语言首先需要了解我们用这门语言能实现什么,而不是单纯的抱着一本编程书从print hello world 一直往下啃,也许学完基础后就会发现这本书很难实现自己的目标,然而学习愿望慢慢减小,直至胎死腹中;也许年轻觉得这点时间还可以挥霍,但是一切回到原点徘徊在十字路,徒留迷茫。

Python给人的第一印象也许是,“Python是什么鬼”,“什么编程语言”,“能做什么”;不着急,下图给了我们回答。也许会发现Python居然能实现这么多功能,我也不知道,我也是小白,也许他们是我的目标。


Python怎么开始

选择合适的Python版本是学习python的关键,由于python2.x和python3.x可以说有很大差别,命令名称与命令格式都有所改变。下图将展示python一些主要历程。

  • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
  • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999。
  • Python 1.0 - January 1994 增加了 lambda, map, filter and  reduce。
  • Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础。
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015

In summary : Python 2.x is legacy, Python 3.x is the present and future of the language

Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012.

3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.

Guido van Rossum (the original creator of the Python language) decided to clean up Python 2.x properly, with less regard for backwards compatibility than is the case for new releases in the 2.x range. The most drastic improvement is the better Unicode support (with all text strings being Unicode by default) as well as saner bytes/Unicode separation.

Besides, several aspects of the core language (such as print and exec being statements, integers using floor division) have been adjusted to be easier for newcomers to learn and to be more consistent with the rest of the language, and old cruft has been removed (for example, all classes are now new-style, "range()" returns a memory efficient iterable, not a list as in 2.x).


Python编程之编码

Python使用utf-8编码规范,支持中文,所以在文件可申明编码规范,如下:

# -*- coding: utf-8 -*-

Python3默认使用utf-8编码规范,支持中文;Python2默认使用ASCII编码,不支持中文,必须在代码开始处加上# -*- coding: utf-8 -*-,声明使用utf-8编码,支持中文

编码参考:https://www.cnblogs.com/yuanchenqi/articles/5956943.html


Pythoy修炼之路的更多相关文章

  1. 我JAVA修炼之路

    今天起,我会不定期更新我的java修炼之路, 2017.7.10,星期一 我参见了河南青云的培训班,这一天是我们的开班典礼. 我会不定期的总结我的学习笔记,大家喜欢的可以看看,不喜勿喷. 写代码: 1 ...

  2. Java工程师修炼之路(校招总结)

    Java工程师修炼之路(校招总结) 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾讯,今日头条,网易, ...

  3. iOS攻城狮修炼之路

    自己总结的学习iOS的笔记,打造一个全面的知识体系,iOS攻城狮修炼之路[持续更新中] iOS学习笔记01-APP相关 iOS学习笔记02-UIScrollView iOS学习笔记03-UITable ...

  4. 《带你装B,带你飞》pytest修炼之路1- 简介和环境准备

    1. pytest简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高.根据pytest的官方网站介 ...

  5. Java工程师修炼之路(从小白到BAT的两年学习历程)

    ​ 作者:陆小凤 文章首发于:微信公众号[程序员江湖] 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾 ...

  6. 我的web前端修炼之路从此开始

    看过一篇文章,上面说过要想学习一门新技术,从什么时候开始都是不晚的.但对于一名大四的学生,只会一点简单的网页架构,只懂得HTML,CSS,JavaScript简单的一点皮毛,却怎么也说不过去.但也是这 ...

  7. leetcode修炼之路——387. First Unique Character in a String

    最近公司搬家了,有两天没写了,今天闲下来了,继续开始算法之路. leetcode的题目如下: Given a string, find the first non-repeating characte ...

  8. Java程序员修炼之路

    作者简介:王成委,CSDN知识库特邀编辑,Java高级工程师,熟悉Java编程语言和Oracle数据库.专注于高并发架构设计和大数据存储方向的研究. 我们为什么选择Java 大多数人选择Java可能只 ...

  9. IPM的修炼之路

    总结了一下最近一年半来看到的产品经理方面的素养资料. 产品经理: 必备素质:市场洞察,抽象概括,创新想象,心思细腻,热爱产品,具备一定的企业家精神等. 是通才:市场,项目,设计,管理,用户,统计,心理 ...

随机推荐

  1. nodejs之静态文件托管、 路 由、EJS 模板引擎、GET、POST

    1.静态文件托管 静态文件托管:是指对于一个js方法进行封装,提高代码可读性 //fs模块 var fs=require('fs'); //path模块 var path=require('path' ...

  2. 阶段3 2.Spring_01.Spring框架简介_04.spring发展历程

  3. 如何实现在Eclipse导入MySQL驱动包

    1 右键项目->Properties->Java Build Path->Libraries->Add External JARs...->mysql-connector ...

  4. 第七周&实验报告五

    实验四 类的继承 •实验目的 •理解抽象类与接口的使用: •了解包的作用,掌握包的设计方法. •实验要求 •掌握使用抽象类的方法. •掌握使用系统接口的技术和创建自定义接口的方法. •了解 Java ...

  5. 【基本优化实践】【1.4】tempdb优化

    [1]tempdb介绍 tempdb全局存储内部对象,用户对象,临时表,临时对象,以及SQL Server操作创建的存储过程.每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈. 各 ...

  6. springMVC原理简单介绍

    说明: 用户发送请求到DispatcherServlet,即前端控制器 DipatcherServlet调用处理器映射器HandlerMapping解析 处理器映射器HandlerMapping根据请 ...

  7. CF1142B Lynyrd Skynyrd

    题目 有两种做法: 第一种是\(O(nlog\ n)\)的. 我们预处理两个数组: \(pre_i\)表示\(p\)中\(i\)前面的那个数是\(pre_i\). \(lst_i\)表示\(a\)中\ ...

  8. 2017.9.23 C组比赛总结

    今天又回到了C组,感觉爽歪歪~分数终于是个三位数了,yes! 第一题,赛车.水!只用一个贪心就可以AC了. first,以速度为关键字小到大qsort一下... scond,枚举每一个赛车,看看它可以 ...

  9. Two Merged Sequences CodeForces - 1144G (暴力)

    大意: 给定序列, 求划分为一个严格递增子序列和一个严格递减子序列, 可以为空. 跟 125D 类似的一个题, 直接暴力dfs, 用当前序列长度来剪枝, 状态不会太多, 但是会被一些数据卡掉, 特判一 ...

  10. 09、RNA降解图的计算过程

    RNA降解是影响芯片质量的一个很重要的因素,因为RNA是从5’开始降解的,所以理论5’的荧光强度要低于3’.RNA降解曲线可以表现这种趋势. 以样品GSM286756.CEL和GSM286757.CE ...