python基础

一.python介绍

  python的创始人为吉多.范罗苏姆(Gui van Rossum),1989年的圣诞节期间,吉多.范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本程序,作为ABC语言的一种继承。

  最新的TIOBE排行榜,python已经占据世界第四名的位置,python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

由上图可见,python整体呈上升趋势,反映出python应用越来越广泛并且也逐渐得到行业的认可!!!!

python可以应⽤用于众多领域,如:数据分析、组件集成、网络服务、图像处理理、数值计算 和科学计算等众多领域。目前业内几乎所有大中型互联⽹网企业都在使⽤用Python,如: Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、 Facebook、NASA、百度、腾讯、汽⻋车之家、美团等。

目前Python主要应用领域:
云计算、WEB开发、 科学运算、人工智能、系统运维、金融、图形GUI、

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完成各种各样的任务。

1.1python是一门怎么样的语言

  编译语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,我们先看编译型语言和解释型语言。

编译和解释的区别是什么?

编译器是把源程序的每一天语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

 

编译型vs解释型

编译型

优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序的程序执行效率高。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据队形的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型

优点:有良好的平台兼容性,在任何环境中都可以运行前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

1.2python的优缺点

 

先看优点
1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不不但入⻔门容易,而且将来深⼊入下去,可以编写那些非常 复杂的程序。

2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基 础上再进行开发,⼤大降低开发周期,避免重复造轮子。

3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理理你的程序使用的内存一类的底层细节

4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动 使它能够⼯工 作在不不同平台上)。如果你小心地避免使⽤用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行

5. 可扩展性————如果你需要你的⼀段关键代码运行得更快或者希望某些算法不公 开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

6. 可嵌⼊入性————你可以把Python嵌⼊入你的C/C++程序,从⽽向你的程序用户提供 脚本功能。

 再看缺点: 

1. 速度慢

2. 代码不不能加密

  当然,Python还有⼀一些其它的小缺点,在这就不⼀一列举了了,我想说的是,任何一⻔语 言都不是完美的,都有擅长和不擅长做的事情,建议各位不要拿⼀个语言的劣势去跟另⼀个 语⾔的优势来去比较,语⾔只是⼀个⼯具,是实现程序设计师思想的工具,就像我们之前中 学⼏何时,有的时候需要圆规,有的时候需要⽤用三⻆角尺一样,拿相应的⼯具去做它最擅 长的事才是正确的选择。之前很多人问我Shell和Python到底哪个好?我回答说Shell是个 脚本语言,但Python不只是个脚本语⾔,能做的事情更多,然后⼜有钻⽜⻆角尖的人说完全 没必要学Python, Python能做的事情Shell都可以做,只要你⾜足够⽜牛B,然后⼜又举了了⽤用Shell 可以写俄罗斯⽅方块这样的游戏,对此我能说表达只能是,不不要跟SX理理论,SX会把你拉到跟 他⼀样的⾼高度,然后⽤用充分的经验把你打倒。 

1.3python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本 文件。要运行代码,就需要Python解释器器去执行.py⽂文件。
由于整个Python语⾔言从规范到解释器都是开源的,所以理理论上,只要水平够高,任何人都 可以编写Python解释器器来执行Python代码(当然难度很大)。事实上,确实存在多种 Python解释器

CPython
CPython是使⽤用最广的Python解释器。教程的所有代码也都在CPython下执⾏行。
IPython
IPython是基于CPython之上的⼀一个交互式解释器器,也就是说,IPython只是在交互⽅方 式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好⽐比很多国产浏览 器虽然外观不同,但内核其实都是调⽤用了了IE。
CPython⽤用>>>作为提示符,⽽而IPython⽤用In [序号]:作为提示符。
PyPy
PyPy是另⼀一个Python解释器,它的目标是执⾏速度。PyPy采⽤用JIT技术,对Python代 码进⾏行行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就 导致相同的Python代码在两种解释器器下执行可能会有不同的结果。如果你的代码要放到 PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节 码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解 释器,可以直接把Python代码编译成.Net的字节码。

二.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

三.python的安装

一路路确定即可. 记得path下打钩. 

 

四. 第一个python程序

python程序有两种编写方式:

第一个python程序
1,python的程序可以写在命令行中进行编写和执行。
命令行进入方式:win+r=>cmd=>回车==> python
注意:中英文标点符号
2,把程序写在py文件中. 可以反复的使用程序. 需要注意: 文件的编码格式:UTF-8

# -*- encoding:utf-8 -*

五. 变量

变量:变量是程序运行过程中产生的中间值. 供给后面程序使用

变量的命名规则
1. 字母, 数字, 下划线组成
2. 不能是数字开头, 更不能是纯数字
3. 不能用关键字
4. 不能太长
5. 不要用中文
6. 要有意义
7. 区分大小写
8. 推荐用驼峰或下划线

六.常量

全部大写就是常量

例如:PI = 3.141592653

七.注释

    有时候我们写的东西不一定都是给用户看的. 或者不希望解释器执行. 那我们可以使用#来 注释掉代码. 被注释的内容是不会执行的.可以⽅便后面的程序员来拜读你的代码   

单行注释:

# 被注释的内容   

多行注释:

'''

被注释的内容

''', 

"""

这个也是多⾏行行注释

"""

八.python的基本数据类型

什么是数据类型?

我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在 每个编程语言里都会有一个叫数据类型的东,其实就是对常用的各种数据类型进行了了明确的划分,你想 让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数 据类型有多种,今天我们暂只讲3种, 数字、字符串串、布尔类型(命题).

1. int(整数), +-*/

在32位机器上int的范围是: 

-2**31~2**31-1,即-2147483648~2147483647

在64位机器上int的范围是:

-2**63~2**63-1,即-9223372036854775808~9223372036854775807

够你用了吧. 注意这些是整数. 
2. str(字符串), +*

在python中,凡是用引号引起来的去哪都是字符串。

字符串可以用单引号,双引号,或者三引号引起来,没有什么区别,只是一些特殊的格式需要不用的引号

比如: msg = "My name is Alex , I'm 22 years old!" 这个就需要单双引号配合。

msg = """

今天我想写首小诗,

歌颂我的同桌,

你看他那乌黑的短发,

好像⼀一只炸毛鸡。

"""

想多行赋值一个字符串,就需要三引号。

数字类型有 +-*/ 字符串有么?

符串只有 + *。

#字符串的拼接

s1 = 'a '

s2 = 'bc'

#print(s1 + s2)

#相乘 str*int

name = '坚强'

#print(name*8)


3. bool(布尔) True, False

九.用户交互

使用input()函数可以让我们和计算机互动起来

语法:

内容 = input(提示信息)

这里可以直接获取到用户输入的内容

十.流程控制if语句

在生活中总是能遇到选择,

第一种语法:

if条件:

  结果

第二种语法:

if条件:

  结果1

else:

  结果2

第三种:

if条件1:

  结果1

elif:

  结果2

.....

else:

  结果n

第四种语法:

if条件:

  结果1

  if条件2:

    结果2

  else:

    结果3

else:

  结果4

 可以无限的嵌套. 但是在实际开发中. 尽量不要超过三层嵌套

while循环

while 条件:

  代码块

流程:判断条件是否为真。如果真,执行代码快。然后再次判断条件是否为真。如果真继续执行代码块。。。。

  直到条件变成了假。循环退出。

posted on 2018-09-03 19:26  JintaoMA  阅读(210)  评论(0编辑  收藏  举报

导航