[第一节]python基础知识

写在前面:

目前python的最新版本是3.6。本博客以3.6版为主,会附带提及2.7版本与此版本的不同之处!

****************************************************************************

目录:

1. python简介.

2. python的特点.

3. python的用途.

4. 选择python的目的.

5. 安装python.(linux环境)

6. python代码的执行过程.

7. python解释器.

8. python编程风格.

9. python数据类型.

10.  运行第一个程序.

正文:

1. python简介: (来自百度百科)

Python的创始人为Guido van
Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

2. python的特点:

(1)Python是一种面向对象、解释型计算机程序设计语言。语法简洁清晰,强制用空白符作为语句缩进。

(2)Python具有丰富和强大的库,又被称为胶水语言。能把其他语言(如C/C++)写的模块很轻松的结合在一起。

(3)python的优点:

1)简单,优雅,明确
    2)强大的模块三方库
    3)易移植
    4)面向对象
    5)可扩展(c\java\c#...)
  (4)python的缺点:

1)代码不能加密
    2)速度慢
    3)...
3. python的用途:

(1)Web网站:有很多优秀的开源Web框架,比如Django(最流行)、Tornado(轻量级、异步)、Flask(微型)、Web.py(简单)等。

(2)数据采集:有好用的http库,比如urllib2、requests等。还有高级的屏幕爬取及网页采集框架scrapy。并对网页解析也有很多库,比如lxml、xpath、BeautifulSoup等。

(3)大数据分析:常用模块有Numpy、Pandas。并支持写MapReduce、PySpark处理Spark RDD(弹性分布式数据集)。

(4)运维自动化:编写脚本、Web平台,自动化日常工作。

(5)科学计算:在科学计算也应用越来越广泛,常用的模块有Numpy、SciPy。

......

4. 选择python的目的:

首先,python语法简单明了,不像java、C等编程语言复杂的语法令人晕头转向;

其次,很多人都不是编程科班出身,没有任何编程功底,因而学习python能够很快的上手。

第三,python在自动化运维方面表现出众,用python能够快速开发出轻量级的自动化运维工具,能大大节约运维成本。

第四,python是跨平台的编程语言,在目前所有的操作系统上都能运行,即实现了"一次编译到处运行"的特点.

第五,python有许多别人开发好的标准库,即前人造好的轮子,我们可以直接拿来使用,大大缩短了程序开发周期.

.....

5. 安装python

系统环境:CentOS7.3

[[email protected] ~]# cat /etc/redhat-release   //查看当前系统环境.
CentOS Linux release 7.3.1611 (Core) 
[[email protected] ~]# python -V   //查看当前系统默认安装的python版本.
Python 2.7.5
[[email protected] ~]#

注: CentOS系统下的yum命令需要用到python 2.7.5版本,因此不能直接卸载该版本.

首先到官网下载Python3.6安装包:

可以下载到本地再上传到Linux系统,也可直接通过wget命令下载,此处选择第二种方法.

源码编译安装:

[[email protected] tool]# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
[[email protected] tool]# yum -y install readline-devel  
 //此软件包不装的话,安装完Python,在交互式解释器下操作方向键、退格键等会出现乱码.
[[email protected] tool]# tar zxf Python-3.6.0.tgz 
[[email protected] tool]# cd Python-3.6.0
[[email protected] Python-3.6.0]# ./configure --prefix=/usr/local/python3.6 
[[email protected] Python-3.6.0]# yum -y install zlib zlib-devel 
[[email protected] Python-3.6.0]# make && make install 
[[email protected] Python-3.6.0]# echo $?
0
[[email protected] Python-3.6.0]#

然后让系统自动使用python 3.6:

[[email protected] bin]# ll python*
lrwxrwxrwx. 1 root root    7 12月 15 04:32 python -> python2
lrwxrwxrwx. 1 root root    9 12月 15 04:32 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月  6 08:29 python2.7
[[email protected] bin]# mv  python{,.bak}  //将python文件改名
[[email protected] bin]# ll python*
lrwxrwxrwx. 1 root root    9 12月 15 04:32 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月  6 08:29 python2.7
lrwxrwxrwx. 1 root root    7 12月 15 04:32 python.bak -> python2
[[email protected] bin]# ln -sv /usr/local/python3.6/bin/python3.6 /usr/bin/python
"/usr/bin/python" -> "/usr/local/python3.6/bin/python3.6"   //用最新的python3.6替换系统默认python
[[email protected] bin]#

编译安装之后在/usr/local/python3.6/bin下会自动生成一个python3的连接,他指向bin目录中的python3.6.

因为yum使用python2,因此替换为python3后无法正常工作,先通过设置使其继续使用python2.7.5

修改yum的配置文件:

[[email protected] ~]# ll /usr/bin/python*
lrwxrwxrwx. 1 root root   21 1月   3 15:31 /usr/bin/python -> /usr/local/python3.6/bin/python3.6
lrwxrwxrwx. 1 root root    9 12月 15 04:32 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月  6 08:29 /usr/bin/python2.7
lrwxrwxrwx. 1 root root    7 12月 15 04:32 /usr/bin/python.bak -> python2
[[email protected] ~]# vim /usr/bin/yum 
 #!/usr/bin/python2.7    //把yum配置文件的头行的python改为python2.7.

此时查看系统默认的python版本:

[[email protected] ~]# python -V
Python 3.6.0
[[email protected] ~]# ll `which python`
lrwxrwxrwx. 1 root root 34 1月   3 15:42 /usr/bin/python -> /usr/local/python3.6/bin/python3.6
[[email protected] ~]#

已然生效!

6. python代码的执行过程.

说到python代码的执行过程,首先,说明下什么是解释型语言?其实python就是一种解释型编程语言当然还有一种语言估计听了也不会陌生---编译型语言!

关于对解释型语言和编译型语言的理解:计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事[把高级语言转变成计算机能读懂的机器语言的过程]。这个过程分成两类:第一种是编译,第二种是解释。编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,即把程序转变成机器语言,这样程序运行时就不需要翻译,直接执行就可以了。最典型的例子就是C语言。而解释型语言就没有这个编译的过程,它是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby语言。

通过以上描述,可以总结得出解释型语言和编译型语言的优缺点:因为编译型语言在程序运行之前就已经对程序做出了"翻译",所以在运行时就忽略掉了"翻译"的过程,所以效率比较高。但也有一些解释型语言可以通过解释器的优化,在对程序做出翻译时对整个程序做出优化,从而在效率上超过编译型语言。

此外,因为Java等基于虚拟机的语言的存在,又不能把语言纯粹地分成解释型和编译型这两种。用Java来举例,Java首先是通过编译器将程序编译成字节码文件,然后在运行时通过解释器再解释成机器文件。所以说Java是一种先编译后解释的语言。

说到这里,那python到底是什么?

其实Python和Java一样,也是一门基于虚拟机的语言,当我们在命令行中输入"python hello.py"时,其实是激活了Python的"解释器",告诉"解释器":你要开始工作了。可是在"解释"之前,python执行的第一项工作和Java一样,是编译。熟悉Java的同学可以想一下如何在命令行执行一个Java的程序:

javac hello.java

Java hello

只是我们在用Eclipse之类的IDE时,将这两部给融合成为了一部分而已。其实Python也一样,当我们执行"python hello.py"时,python也同样执行了这么一个过程,所以我们对python的描述应该是这样的:Python是一门先编译后解释的语言。

现在开始步入主题——python代码的执行过程:Python先把源代码(.py文件)编译成字节码(.pyc文件),然后交给字节码虚拟机,虚拟机一条一条执行字节码指令,将字节码翻译成对应的机器指令(机器码),从而完成程序的执行。

两个概念:Pycodeobject和pyc.我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果(code对象)。当python程序运行时,编译的结果则是保存在位于内存的PyCodeObject中,当Python程序运行结束时,Python解释器会将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到就直接载入,否则就重复上面的过程,这样的好处是,不重复编译,提高执行效率。所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。(大致理解python代码是怎么执行的即可).

7. python解释器

1) CPython

当我们装完Python后,其默认的解释器就是CPython,也是官方默认的解释器。CPython是C语言写的,当执行代码时会将代码转化成字节码(ByteCode)。

2) IPython

基于CPython之上的一个交互式解释器,相当于默认解释器的一个增强版,最显著的功能就是自动补全,挺好用的。

3) PyPy

PyPy本身是由Python编写的,使用了JIT编译器(即时编译器)技术,当执行代码时JIT编译器将代码翻译成机器码。性能相比CPython要好。JAVA也采用了JIT编译器。

4) Jython

Jython是由JAVA编写的一个解释器,可以把JAVA模块加载到Python的模块中使用,也可以把Python代码打包成JAR包,意味着允许用Python写JAVA程序了。当执行代码时会将代码转化成JAVA字节码,然后使用JRE(Java Runtime Environment)执行。

5) IronPython

在.NET平台上工作的Python语言。

8.  Python编程风格.

其实不光是Python,对于任何一种编程语言,形成良好的编程风格,能在后续代码的review和管理当中为自己及他人带来许多便利,节省宝贵的时间。

1) 缩进统一

Python以空白符作为语句缩进,意味着语句没有结尾符,给往往因为少写一个fi的人带来了福利,在Python中最好以4个空格作为缩进符,这也是大多数人的习惯!

2) 代码注释

这点尤为重要。据说优质的代码,注释说明要比代码量多,详细的代码注释不管对自己后期维护还是开源,都是有必要的。就像一个流行的软件,如果没有丰富的使用文档,你认为会有多少耐心的人去花大把的时间研究它呢!

3) 空格使用

在操作符两边,以及逗号后面,加1个空格。但是在括号左右不加空格。

在函数、类、以及某些功能代码块,空出一行,来分隔它们。

4) 命名

模块:自己写的模块,文件名全部小写,长名字单词以下划线分隔。

类:大/小驼峰命名。我一般采用大驼峰命名,也就是每个单词首字母大写。类中私有属性、私有方法,以双下划线作为前缀。

函数:首单词小写,其余首字母大写。

变量:都小写,单词以下划线分隔。

提醒:所有的命名必须能简要说明此代码意义。

5) 代码换行

按照语法规则去换行,比如一个很长的表达式,可以在其中某个小表达式两边进行换行,而不是将小表达式拆分,这样更容易阅读。

6)符号的含义

"-"表示减号而不是横线

9. python数据类型.

1) 字符串

a.使用单引号(‘ ‘),即用单引号括起来表示字符串;

  >>> str = ‘this is string‘
  >>> print(str)

b.使用双引号(" "),即用双引号括起来表示字符串;

  >>> str = "this is string"
  >>> print(str)

c.三引号(""" """)

  >>> str = """this is 
  ... string,
  ... xxx
  ... xxxx"""
  >>> print(str)
  this is 
  string,
  xxx
  xxxx
  >>>

注:单引号中的字符串与双引号中的字符串用法完全相同.

2) 整数

  >>> int = 20 
  >>> print(int)

3) 浮点数

  >>> float = 2.3 
  >>> print(float)

4) 布尔类型

  >>> bool = False 
  >>> print(bool) 
  >>> bool = True 
  >>> print(bool)

  5) 数字

包括整数和浮点数.

10.  运行第一个程序.

a.在交互式解释器下运行:

[[email protected] ~]# python
Python 3.6.0 (default, Jan  3 2017, 15:07:51) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World")   
Hello World
>>>

b.写成脚本运行:

[[email protected] python]# vim hello.py
 #!/usr/bin/python 
 print("Hello World")
[[email protected] python]# python hello.py 
Hello World
[[email protected] python]#

第一天完成!

时间: 2024-08-04 20:51:32

[第一节]python基础知识的相关文章

Python 第一节 入门基础知识

Python的优势: Linux自带Python Python在数据处理及自动化方面有优势. Python运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 成员运算符 原文地址:https://www.cnblogs.com/meganchen/p/10148156.html

第一节 python基础

心灵鸡汤:1,今天的苦逼是为了不这样一直苦逼下去!2,今天之所以苦逼,是因为之前不够努力!3,今天的你,是由几年前的你决定的!4,Be a loser for now,or forever!(一时的屌丝or永远的屌丝)5,不要和傻逼去讲道理,傻逼会把你拉到和他一个水平上,然后用他的经验把你来打败,来说服.####################################### python特性 #################python优点:简单.优雅.明确强大的模块(第三方库)---

第一章 Python基础知识

1.1 介绍  1.1.1 特点 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他语言(主要C/C++)写的模块很轻松的结合在一起. 1.1.2 应用领域 Web网站:有很多优秀的开源Web框架,比如Django(最流行).Tornado(轻量级.异步).Flask(微型).Web.py(简单)等. 数据采集:有好用的http库,比如urllib2.requests等.还有高级的屏幕爬取及网

第一节,基础知识之第一步:代数

先声明:theano模块的内容大都是参考来源于网上,并亲手实践复现一遍,也有部分内容是自己补充 本文会列出所参考文章,如有版权问题,请联系我,我会及时删除 # -*- coding: utf-8 -*- """ Created on Fri Mar 23 13:33:20 2018 @author: zy """ '''x= T.dscalar('x')y= T.dscalar('y')z = x + yf = theano.function([

Python自动化复习第一章 Python基础知识

安装了Python2和Python3后在C:\Python\Python36下的python.exe重命名为python3.exe setuptools:基础包管理工具 pip:安装包管理工具 创建project的时候选择Existing interpreter 下的Python版本 pycharm设置字体大小 设置主题 设置四个空格的显示(需要在设置其他的地方 当前没有记录) 设置创建py文件时候的默认加载 设置编码 取消代码之间的依赖 设置不同的版本 输出中文的时候: # -*- codin

第一部分 Python基础知识

Python测试开发核心编程主要分两部分,python3基础和Python进阶,每部分的重点内容如下 一. Python测试开发核心编程 数据类型 控制结构 异常处理 文件操作 线程与进程(了解) 常用库函数 二.Python进阶 迭代器 修饰器 lamda函数 面向对象 运算符重载 外部插件 反射与内省 红色部分是一定要掌握的 原文地址:https://www.cnblogs.com/victorm/p/11159358.html

【Python基础教程第2版】——第一讲:基础知识

1.长字符串:(用三引号如'''或者"""来引起来) >>> print """This is a very log string.It continues here.And it's not over yet."Hello world!"""" This is a very log string.It continues here.And it's not over yet.&

萌新向Python数据分析及数据挖掘 第一章 Python基础 第一节 python安装以及环境搭建 第二节 变量和简单的数据类型

本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 第一节 Python安装以及环境搭建 Python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不错的选择. Anaconda详细安装使用教程 https://blog.csdn.

萌新向Python数据分析及数据挖掘 第一章 Python基础 第九节 类

第一章 Python基础 第九节 类 面向对象编程时,都会遇到一个概念,类,python也有这个概念,下面我们通过代码来深入了解下. 其实类 和函数都是为了节省代码,有了类的的概念,就可以把相同的代码写在父类,子类继承后就可以直接使用,而且通过选择对应的父类就可以直接使用对应父类的内容. 创建和使用类 1 class Dog(): #认识狗这类东西 2 def __init__(self, name, age): #狗是肯定有名字和年龄的,是个狗就有,要用户填写 3 self.name = na