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)
<ipython-input-5-5d8f9b79ea70> in <module>()
----> 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 "<stdin>", 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)
<type 'bytes'>
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打开,
:
这种情况下的代码,并没有被保存。所以我们可以在左上角的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界面上,界面会显示文件的路径,回车,就可以执行了。
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(这个是什么库都有,但是程序太大)