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)

<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打开,



案例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(这个是什么库都有,但是程序太大)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容