关键词:
Alex博客:http://www.cnblogs.com/alex3714/articles/5465198.html
一、本节主要内容
- Python介绍
- 发展史
- Python 2 or 3?
- 安装
- Hello World程序
- 变量
- 用户输入
- 模块初识
- .pyc文件
- 数据类型初识
- 数据运算
- 表达式if ...else语句
- 表达式for 循环
- break and continue
- 表达式while 循环
- 作业需求
二、具体内容
1.python介绍
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长。
由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程。例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库 ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别 为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数 据、制作图表,甚至开发科学计算应用程序。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业 都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、 Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
Python在一些公司的应用:
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- CIA: 美国中情局网站就是用Python开发的
- NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Facebook:大量的基础库均通过Python实现的
- Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- 豆瓣: 公司几乎所有的业务均是通过Python开发的
- 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生:国内知名的在线医疗网站是用Python开发的
- 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
Python的优缺点
先看优点
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在 大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比 Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实 在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的 工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于 GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
-
其他缺点:
单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
独特的语法
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。
无类型
作为一种动态语言,随时随地创建和使用变量是Python给我们带来的巨大的便利。但是它也会使得程序不严谨,某些错误只有在运行中才可能出现。所以,使用Python编程的时候,要对类型做到心里有数。这也使得Python的IDE工具无法提供便利的自动完成等功能。
关于“无类型”的说法,是完全错误的。一看就是不了解python的人写的。python是一种“强类型”“动态绑定”。
python编码问题:
python2.X解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
python3.X 默认编码是UTF-8
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
关于中文
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平 台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一 地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
day1-python基础1
本次学习内容Python介绍发展史版本选择install第一个程序helloworld字符编码变量用户输入表达式if...else一、Python介绍 查看详情
python基础库及机器学习笔记(代码片段)
1.介绍本节将主要介绍Python中的常用第三方库。这些库都是实现了各种计算功能的开源库,它们极大地丰富了Python的应用场景和计算能力,这里主要介绍NumPy、pandas和Matplotlib三个库的基础使用。其中NumPy是Python用来进行矩... 查看详情
python系列学习笔记——基础语法规则
前言本教程会依赖Python3作为依赖讲解,这节我们介绍基础的语法应用。标识符的定义第一个字符必须是字母表中字母或下划线’_’。标识符的其他的部分有字母、数字和下划线组成。标识符对大小写敏感,也就是区分大小写... 查看详情
学习笔记1python的基本介绍
一、Python基础【Python诞生】1989年由龟叔创建(GuidovanRossum),脚本语言,简单易学。开发者对Python的目标:一门简单直观的语言并与主要竞争者一样强大;开源,以便于任何人都可以为它做贡献;... 查看详情
python100天学习笔记day1初识python(代码片段)
初识PythonPython简介Python的历史1989年圣诞节:GuidovonRossum开始写Python语言的编译器。1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在... 查看详情
day1,笔记内容(代码片段)
...作系统:windows,linux等等应用程序:QQ,微信,word,等等2,python历史。 宏观上:python2与python3区别: 1,pytho 查看详情
day1学习心得
...都不要说,学会做到。 becomeabetterversion.一、python介绍编译器的作用:将编程语言转换成机器能懂的二进制(可跨平台)。编译型语言:CC++解释型语言:python、java优点:可扩展性:如果需要一段关键代码运行得更快... 查看详情
css学习笔记day1
1.css的简介 css:层叠样式表(层叠:一层一层的;样式表:很多的属性和属性值)使页面显示效果更好将页面内容和显示样式进行分离,提高了显示功能。2.css和html的结合方式(4种) 在每一个html语言上都有一个属... 查看详情
day1课上笔记(代码片段)
1、python的相关信息:创始人为吉多·范罗苏姆(GuidovanRossum)别名(龟叔),1989年被开发出来一种新型脚本解释语言。2、python的应用领域:如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目... 查看详情
java学习笔记---day1
💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长💕目录💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家... 查看详情
day1-基础班介绍
一、基础班的介绍 1.1脚踏实地行,海阔天空飞课时安排: HTML 2天   查看详情
day1学习笔记
1.接口测试理论2.接口文档至少包含:接口说明,调用url,请求方法(get/post),请求参数,参数类型,请求参数说明,返回参数说明;3.接口测试就是功能测试;get请求:直接在浏览器里面就可调用,不用借助其他的工具;向服... 查看详情
java基础(day1)
一,搭建开发环境之前使用sublime学习python感觉不错,所以就还是使用sublime来学习java。使用以下搜索到的附录1方法,大家Java的开发环境。二,确定使用书籍Java核心编程附录1第一步,下载安装JDK并配置系统环境变量:(1)添加J... 查看详情
学习笔记2python-jupyternotebook界面基础
JupyterNotebook界面基础 一、模式JupyterNotebook有两种模式:编辑模式:有光标在闪烁的时候,就叫做编辑模式;命令模式:点击侧边栏,光标消失,就进入命令模式;ESC退出编辑模式,即进入命令... 查看详情
javascript基础-day1
JavaScript介绍你不知道它是什么就学?这就是一个网页嵌入式脚本语言...仅此而已JavaScript组成一个完整的JavaScript实现是由以下3个不同部分组成的:核心(ECMAScript) 文档对象模型(DOM)Documentobjectmodel(整合js,css,html)浏览器... 查看详情
mui框架学习笔记整理day1
MUI框架之【原生UI】(1)accordion(折叠面板)由二级列表演化而来1<ulclass="mui-table-view">2 <liclass="mui-table-view-cellmui-collapse">3 <aclass="mui-navigate-right"href="#"></a>4 <divclas 查看详情
学习笔记tableau基础介绍
Tableau基础介绍【简介】Tableau是一家提供商业智能的软件公司,正式成立于2004年,总部位于美国华盛顿西雅图。源自美国国防部的一个项目需求,在斯坦福博士克里斯·斯图尔特和Pixar创始人之一帕特·汉拉恩共同努力... 查看详情
php学习笔记day1--基本概念,及原理
... 作为一个php新手,我一直在寻找着一种快速而有效的学习方法,最后发现,快速掌握知识最快的方法就是输出,把自己学过的知识从新整理,拿出来给大家看,同时也要学会总结归纳,同一些高手交流,才能最快把知识融入... 查看详情