python技术简介_L1 - Python技术选型以及介绍

一、技术选型

1、python版本

目前python的版本分为两大类:

python 2.7.X

python 3.X

这两个版本统称为python2 和 python3

2、python2优点

1)第三库支持多

2)目前使用python2的工具还很多

3)运行速度快(官方的说法,具体的我没什么感觉)

4)资料也覆盖广

3、python3的优点

1)更加规范化合理化

2)对中文的支持非常好(默认使用UTF-8)

二、使用Python的知名网站

国内的:

豆瓣

果壳

知乎

Sohu邮箱

国外的:

youtube

Gmail邮箱

Dropbox

python2 死亡倒计时:

Python 2.7将不会在2020年之前保持下去。没有任何正式的日期,所以这个时钟倒数到2020年4月12日,大致是2020年PyCon的时间。 我在此建议我们使PyCon 2020成为官方的生命结束日期,我们扔一个大型的聚会来庆祝Python 2为我们所做的一切。 (如果这听起来很有趣,请发送电子邮件至pythonclockorg@gmail.com)。

Python 2,谢谢你多年的忠实服务。

Python 3,你现在的时间了

我如何开始

如果您关心的代码仍然在Python 2上,那是完全可以理解的。 大多数PyPI的受欢迎的软件包现在可以在Python 2和3上工作,每天都添加更多的软件。 为了简化转换,官方移植指南有在Python 3中运行Python 2代码的建议。

https://pythonclock.org/

三、python3相对于python2的区别:

1. print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc'),但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能。

2. 在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object()

class choosefine():

def __init__(self):

print("is choosefine")

class quheng(object):

def __init__(self):

print("is quheng object")

d = choosefine()

e = quheng()

3. 原来1/2(两个整数相除)结果是0,现在是0.5了,python 2.2+ 以上都可以使用 from __future__ import division 实现改特性, 同时注意 // 取代了之前的。

4. 新的字符串格式化方法format取代%,错误, 从 python2.6+ 开始已经在str和unicode中有该方法, 同时 python3依然支持 % 算符。

(这个我还是比较喜欢用%)

5、!=取代 < > ,python2 也很少有人用 < > 所以不算什么修改(不等于的表示方法)。

6、long重命名为int,不完全对, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算。

7、python2默认是asscii作为默认编码,这也导致了在python2中经常遇到编码问题的原因之一,python3就比较友好了,默认使用UTF-8(这里介绍下UTF-8的由来,听古人说故事,当初计算机诞生的时候是在美国,但是美国人的文字只有26个英文字母,ascii码长度是255,用了26个位子后,在加上早期计算机比较简单,还没这么多表情包,用完后还有很多位,但是美国人是没有考虑到我们的汉字,估计下5000+应该有,但是ascii码总共才255,所以就有了后面的GBK编码,GBK的原理就是ASCII吗没有变,还是255位,我们从255中的1位或者几位中拿出来,然后继续开辟表格一张,就有了GBK编码了。再有GBK之前先有了Unicode编码,又称为万国牌编码,他有一个缺点就是中英文都占两个字节。老外不开心了,一两个字母无所谓,但是好多内容,要多好多硬盘空间呢。所以就有了后面的UTF-8(是unicode的变种),可变长编码)

8、exec变成函数

9、字符串是最大的变化之一,这个变化使得编码问题降到最低可能。

四、Python是一门什么样的语言

编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,我们一起来看一下。

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

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

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

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

编译型

解释型

混合型

C

JavaScript

JAVA

c++

Python

C#

Go

Ruby

Swift

PHP

Object-C

Perl

Pascal

shell

编译型

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

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

解释型

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

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

五、python解释器的种类

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython

当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行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的字节码。

6、Python的数据类型

1、数字

2 是一个整数的例子。

长整数 不过是大一些的整数。

3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。

(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

float(浮点型)

先扫盲 http://www.cnblogs.com/fonzie3714/articles/5895848.html  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

2、布尔值

真或假

1 或 0

3、字符串

"Welcome to the choosefine"

万恶的字符串拼接:

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

字符串格式化输出

PS: 字符串是 %s;整数 %d;浮点数%f

title = "choosefine"

reply = "Yes, it's me"

print("Hello {0} {1}".format(title,reply))

#执行结果

Hello choosefine Yes, it's me

import datetime

print(datetime.datetime.now())

print("current time {0:%Y-%m-%d}".format(datetime.datetime.now()))

字符串常用功能:

移除空白(常用replace)

分割(split)

长度(len)

索引(index)

切片(

a = "daf"

print(a[0])

)

4、列表

创建列表:

基本操作:

索引

切片

追加

删除

长度

切片

循环

包含

5、元组(不可变列表)

创建元组:

6、字典(无序)

创建字典:

常用操作:

索引

新增

删除

键、值、键值对

循环

长度

集合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值