2019-01-15 Python学习1 初识python

python3学习网站:https://www.runoob.com/python3/python3-tutorial.html

之前盛行python2,但为了升级,出现了python3,后面介绍python2和python3的区别。

1.程序

什么是程序?

程序就是计算机能够识别和运行的指令,运行在计算机上的。

2.程序的分类


而我们在开发中用的最多的是B/S架构,因为维护性低,不浪费时间和成本。

其实C/S架构就是APP,B/S架构就是网站。

3.正式介绍Python

把python当做一种工具。



Python 具有高可扩展性,存在许多使用C 语言或Fortran 编写扩展的方法 。

具体介绍python的可扩展性:

https://blog.csdn.net/sinat_38682860/article/details/90245615


 1.python是解释性语言,也就是脚本语言。

python可以做数据挖掘,即爬虫,人工智能的发展也推动了python语言的发展。

Python又叫做蟒蛇。

python中并没有分号作为结束符号,只是打代码。

2.查看python版本

我们可以在命令窗口(Windows 使用 win+R 调出 cmd 运行框)使用以下命令查看我们使用的Python版本:

python -V

以上结果就是:

Python 3.6.5

如图所示:

3.python 2和python 3的区别:

python 2版本中一般使用python 2.6或者python2.7,这版本稳定且拥有该有的语法和库。

python 3版本中并不是具备所有python 2中的库,目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。在这里面,python 3.6或者python 3.5版本比较稳定。

(1)print 函数

 在python 2中print是语句,使用方法是:

print "hello world"

但在python 3中print是函数-print()函数,必须带有括号:

print("hello world!")

这种用法python 2.6和python 2.7也兼容:

print "fish"

print ("fish") #注意print后面有个空格

print("fish") #print()不能带有任何其它参数

(2)Unicode

    在python 2中是使用AscII,如果要使用Unicode,必须前面加个u。

    而在python 3中默认是Unicode(utf-8).

Python 2.x

>>> str = "我爱北京天安门"

>>>str'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'

>>> str = u"我爱北京天安门"

>>> str

u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'

Python 3.x

>>> str = "我爱北京天安门"

>>> str'我爱北京天安门'

(3)除法运算

在Python中的除法有两个运算符,/和//。

//是整数除法。

/是除法(int和float)

在python 2中,/是不一样的,整数/整数=整数,小数/小数=小数

>>> 1 / 2

0

>>> 1.0 / 2.0

0.5

在python 3中,整数/整数也有可能是小数。

>>> 1/2

0.5

而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。

python 2.x:

>>> -1 // 2

-1

python 3.x:

>>> -1 // 2

-1

注意的是并不是舍弃小数部分,而是执行 floor 操作,如果要截取整数部分,那么需要使用 math 模块的 trunc 函数

python 3.x:

>>> import math

>>> math.trunc(1 / 2)

0

>>> math.trunc(-1 / 2)

0

(4)异常(错误提示)

在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。

捕获异常的语法由 except exc, var 改为 except exc as var

使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。

    1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。

    2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函 数抛出对象即可。

在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。

(5)xrange

在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。

这个表现十分像生成器(比如。"惰性求值")。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。

由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。

在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。

import timeit

n = 10000

def test_range(n):    

        return for i in range(n):        

             pass

def test_xrange(n):    

       for i in xrange(n):        

                    pass 

Python 2

print 'Python', python_version()

print '\ntiming range()' 

%timeit test_range(n)


print '\n\ntiming xrange()' 

%timeit test_xrange(n)

Python 2.7.6

timing range()

1000 loops, best of 3: 433 µs per loop

timing xrange()

1000 loops, best of 3: 350 µs per loop

Python 3

print('Python', python_version())

print('\ntiming range()')

%timeit test_range(n)

Python 3.4.1

timing range()

1000 loops, best of 3: 520 µs per loop

print(xrange(10))---------------------------------------------------------------------------

NameError                                Traceback (most recent call last)

in ()

----> 1 print(xrange(10))

NameError: name 'xrange' is not defined

(6)八进制字面量表示

八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。

新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。

在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。

python 2.x

>>> 0o1000

512

>>> 01000

512

python 3.x

>>> 01000 

 File "", line 1    01000        

^SyntaxError: invalid token

>>> 0o1000

512

(7)不等运算符

Python 2.x中不等于有两种写法 != 和 <>

Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯

(8)去掉了repr表达式``

Python 2.x 中反引号``相当于repr函数的作用

Python 3.x 中去掉了``这种写法,只允许使用repr函数,这样做的目的是为了使代码看上去更清晰么?不过我感觉用repr的机会很少,一般只在debug的时候才用,多数时候还是用str函数来用字符串描述对象。

def sendMail(from_: str, to: str, title: str, body: str) -> bool:   

       pass

(9)多个模块被改名(根据PEP8)

StringIO模块现在被合并到新的io模组内。 new, md5, gopherlib等模块被删除。 Python 2.6已经支援新的io模组。

httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib被合并到http包内。

取消了exec语句,只剩下exec()函数。 Python 2.6已经支援exec()函数。

(10)数据类型

(1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

(2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下:

>>> b = b'china' 

>>> type(b)

 

str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。

>>> s = b.decode()

 >>> s

'china' 

>>> b1 = s.encode() 

>>> b1

b'china'

3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它吧 。

4.Python的安装(环境搭建)

具体可以看这个网站:

https://www.runoob.com/python3/python3-install.html

  1.进入Python的官网


2.官网下载后直接双击


一定得勾选那个Add Python 3.7 to PATH ,这个相当于那个java中的配置环境。

3.点击Install now

一直等待,然后选择close

4.用cmd监测是否安装成功

开始-运行-cmd

在上面输入python ,出现如下图的表示安装成功


5.用什么工具写代码

 1.python 自带的IDLE(在工作中不常用)

双击IDLE打开,



案例1

这种情况下的代码,并没有被保存。所以我们可以在左上角的File-new file,然后可以写代码,然后保存。

例如:


然后选择File-save,命名为Xxx.py (py是python的后缀名),然后按键盘F5就会把结果显示在Shell上(即第一个页面)。

2.用sublime写python

1.sublime下载

官网搜索sublime


2.可以直接双击打开使用





为了方便,可以发送到桌面快捷方式,切不可复制到桌面。

打开方便,如果你想查看py文件,可以直接把py文件拖动到sublime的快捷方式上,就可以立马显示了。

单击软件的右下角python,会出现python所支持的语言和配置。



在编写之前,你需要选择好你需要的语言,即会在你选择的语言前出现对勾,代表选择成功,同时也会把你选择的语言显示在右下方,例如选择java:


然后可以写代码,记得保存后运行,然后运行的快捷键是ctrl+B。


像一个计时器一样。

这个py文件也可以在cmd下运行,即先打开cmd,然后再把py文件拖动到cmd界面上,界面会显示文件的路径,回车,就可以执行了。


StringIO模块现在被合并到新的io模组内。 new, md5, gopherlib等模块被删除。 Python 2.6已经支援新的io模组。httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib被合并到http包内。取消了exec语句,只剩下exec()函数。 Python 2.6已经支援exec()函数

3.pycharm+python书写python(推荐使用,加载快,就是安装库使用pip安装,在cmd里面进行使用pip install 库名)

安装pycharm和python,然后把pycharm上配置python。

安装python:

https://zhinan.sogou.com/guide/detail/?id=316513362508#step01

利用pip安装库:

https://blog.csdn.net/qq_42673507/article/details/87880572

4.pycharm+Anaconda书写python(这个安装库可以,但是不稳定,就是也是加载慢,是超级慢)

安装这两个软件,然后在pycharm配置Anaconda。

适合初学者,但是我只用了不到一天就不爱用了,实在太慢了。

5.Anaconda书写python(这个是什么库都有,但是程序太大)

你可能感兴趣的:(2019-01-15 Python学习1 初识python)