python3學(xué)習(xí)網(wǎng)站:https://www.runoob.com/python3/python3-tutorial.html
之前盛行python2,但為了升級(jí),出現(xiàn)了python3,后面介紹python2和python3的區(qū)別。
1.程序
什么是程序?
程序就是計(jì)算機(jī)能夠識(shí)別和運(yùn)行的指令,運(yùn)行在計(jì)算機(jī)上的。
2.程序的分類

而我們?cè)陂_發(fā)中用的最多的是B/S架構(gòu),因?yàn)榫S護(hù)性低,不浪費(fèi)時(shí)間和成本。
其實(shí)C/S架構(gòu)就是APP,B/S架構(gòu)就是網(wǎng)站。
3.正式介紹Python
把python當(dāng)做一種工具。


Python?具有高可擴(kuò)展性,存在許多使用C 語言或Fortran 編寫擴(kuò)展的方法 。
具體介紹python的可擴(kuò)展性:
https://blog.csdn.net/sinat_38682860/article/details/90245615
?1.python是解釋性語言,也就是腳本語言。

python可以做數(shù)據(jù)挖掘,即爬蟲,人工智能的發(fā)展也推動(dòng)了python語言的發(fā)展。
Python又叫做蟒蛇。
python中并沒有分號(hào)作為結(jié)束符號(hào),只是打代碼。
2.查看python版本
我們可以在命令窗口(Windows 使用 win+R 調(diào)出 cmd 運(yùn)行框)使用以下命令查看我們使用的Python版本:
python -V
以上結(jié)果就是:
Python 3.6.5
如圖所示:

3.python 2和python 3的區(qū)別:
python 2版本中一般使用python 2.6或者python2.7,這版本穩(wěn)定且擁有該有的語法和庫。
python 3版本中并不是具備所有python 2中的庫,目前不支援Python 3.0的第三方庫有Twisted, py2exe, PIL等。在這里面,python 3.6或者python 3.5版本比較穩(wěn)定。
(1)print 函數(shù)
?在python 2中print是語句,使用方法是:
print "hello world"
但在python 3中print是函數(shù)-print()函數(shù),必須帶有括號(hào):
print("hello world!")
這種用法python 2.6和python 2.7也兼容:
print "fish"
print ("fish") #注意print后面有個(gè)空格
print("fish") #print()不能帶有任何其它參數(shù)
(2)Unicode
? ? 在python 2中是使用AscII,如果要使用Unicode,必須前面加個(gè)u。
? ? 而在python 3中默認(rèn)是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)除法運(yùn)算
在Python中的除法有兩個(gè)運(yùn)算符,/和//。
//是整數(shù)除法。
/是除法(int和float)
在python 2中,/是不一樣的,整數(shù)/整數(shù)=整數(shù),小數(shù)/小數(shù)=小數(shù)
>>> 1 / 2
0
>>> 1.0 / 2.0
0.5
在python 3中,整數(shù)/整數(shù)也有可能是小數(shù)。
>>> 1/2
0.5
而對(duì)于//除法,這種除法叫做floor除法,會(huì)對(duì)除法的結(jié)果自動(dòng)進(jìn)行一個(gè)floor操作,在python 2.x和python 3.x中是一致的。
python 2.x:
>>> -1 // 2
-1
python 3.x:
>>> -1 // 2
-1
注意的是并不是舍棄小數(shù)部分,而是執(zhí)行 floor 操作,如果要截取整數(shù)部分,那么需要使用 math 模塊的 trunc 函數(shù)
python 3.x:
>>> import math
>>> math.trunc(1 / 2)
0
>>> math.trunc(-1 / 2)
0
(4)異常(錯(cuò)誤提示)
在 Python 3 中處理異常也輕微的改變了,在 Python 3 中我們現(xiàn)在使用 as 作為關(guān)鍵詞。
捕獲異常的語法由?except exc, var?改為?except exc as var。
使用語法except (exc1, exc2) as var可以同時(shí)捕獲多種類別的異常。 Python 2.6已經(jīng)支持這兩種語法。
? ? 1. 在2.x時(shí)代,所有類型的對(duì)象都是可以被直接拋出的,在3.x時(shí)代,只有繼承自BaseException的對(duì)象才可以被拋出。
? ? 2. 2.x raise語句使用逗號(hào)將拋出對(duì)象類型和參數(shù)分開,3.x取消了這種奇葩的寫法,直接調(diào)用構(gòu)造函 數(shù)拋出對(duì)象即可。
在2.x時(shí)代,異常在代碼中除了表示程序錯(cuò)誤,還經(jīng)常做一些普通控制結(jié)構(gòu)應(yīng)該做的事情,在3.x中可以看出,設(shè)計(jì)者讓異常變的更加專一,只有在錯(cuò)誤發(fā)生的情況才能去用異常捕獲語句來處理。
(5)xrange
在 Python 2 中 xrange() 創(chuàng)建迭代對(duì)象的用法是非常流行的。比如: for 循環(huán)或者是列表/集合/字典推導(dǎo)式。
這個(gè)表現(xiàn)十分像生成器(比如。"惰性求值")。但是這個(gè) xrange-iterable 是無窮的,意味著你可以無限遍歷。
由于它的惰性求值,如果你不得僅僅不遍歷它一次,xrange() 函數(shù) 比 range() 更快(比如 for 循環(huán))。盡管如此,對(duì)比迭代一次,不建議你重復(fù)迭代多次,因?yàn)樯善髅看味紡念^開始。
在 Python 3 中,range() 是像 xrange() 那樣實(shí)現(xiàn)以至于一個(gè)專門的 xrange() 函數(shù)都不再存在(在 Python 3 中 xrange() 會(huì)拋出命名異常)。
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)八進(jìn)制字面量表示
八進(jìn)制數(shù)必須寫成0o777,原來的形式0777不能用了;二進(jìn)制必須寫成0b111。
新增了一個(gè)bin()函數(shù)用于將一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制字串。 Python 2.6已經(jīng)支持這兩種語法。
在Python 3.x中,表示八進(jìn)制字面量的方式只有一種,就是0o1000。
python 2.x
>>> 0o1000
512
>>> 01000
512
python 3.x
>>> 01000?
?File "<stdin>", line 1? ? 01000? ? ? ??
^SyntaxError: invalid token
>>> 0o1000
512
(7)不等運(yùn)算符
Python 2.x中不等于有兩種寫法 != 和 <>
Python 3.x中去掉了<>, 只有!=一種寫法,還好,我從來沒有使用<>的習(xí)慣
(8)去掉了repr表達(dá)式``
Python 2.x 中反引號(hào)``相當(dāng)于repr函數(shù)的作用
Python 3.x 中去掉了``這種寫法,只允許使用repr函數(shù),這樣做的目的是為了使代碼看上去更清晰么?不過我感覺用repr的機(jī)會(huì)很少,一般只在debug的時(shí)候才用,多數(shù)時(shí)候還是用str函數(shù)來用字符串描述對(duì)象。
def sendMail(from_: str, to: str, title: str, body: str) -> bool:? ?
? ? ? ?pass
(9)多個(gè)模塊被改名(根據(jù)PEP8)

StringIO模塊現(xiàn)在被合并到新的io模組內(nèi)。 new, md5, gopherlib等模塊被刪除。 Python 2.6已經(jīng)支援新的io模組。
httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib被合并到http包內(nèi)。
取消了exec語句,只剩下exec()函數(shù)。 Python 2.6已經(jīng)支援exec()函數(shù)。
(10)數(shù)據(jù)類型
(1)Py3.X去除了long類型,現(xiàn)在只有一種整型——int,但它的行為就像2.X版本的long
(2)新增了bytes類型,對(duì)應(yīng)于2.X版本的八位串,定義一個(gè)bytes字面量的方法如下:
>>> b = b'china'?
>>> type(b)
?<type 'bytes'>
str對(duì)象和bytes對(duì)象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互轉(zhuǎn)化。
>>> s = b.decode()
?>>> s
'china'?
>>> b1 = s.encode()?
>>> b1
b'china'
3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函數(shù)都被廢棄。同時(shí)去掉的還有 dict.has_key(),用 in替代它吧 。
4.Python的安裝(環(huán)境搭建)
具體可以看這個(gè)網(wǎng)站:
https://www.runoob.com/python3/python3-install.html
? 1.進(jìn)入Python的官網(wǎng)

2.官網(wǎng)下載后直接雙擊


一定得勾選那個(gè)Add Python 3.7 to PATH ,這個(gè)相當(dāng)于那個(gè)java中的配置環(huán)境。

3.點(diǎn)擊Install now
一直等待,然后選擇close
4.用cmd監(jiān)測(cè)是否安裝成功
開始-運(yùn)行-cmd
在上面輸入python ,出現(xiàn)如下圖的表示安裝成功

5.用什么工具寫代碼
?1.python 自帶的IDLE(在工作中不常用)

雙擊IDLE打開,

:

這種情況下的代碼,并沒有被保存。所以我們可以在左上角的File-new file,然后可以寫代碼,然后保存。
例如:

然后選擇File-save,命名為Xxx.py (py是python的后綴名),然后按鍵盤F5就會(huì)把結(jié)果顯示在Shell上(即第一個(gè)頁面)。
2.用sublime寫python
1.sublime下載
官網(wǎng)搜索sublime

2.可以直接雙擊打開使用


為了方便,可以發(fā)送到桌面快捷方式,切不可復(fù)制到桌面。
打開方便,如果你想查看py文件,可以直接把py文件拖動(dòng)到sublime的快捷方式上,就可以立馬顯示了。
單擊軟件的右下角python,會(huì)出現(xiàn)python所支持的語言和配置。


在編寫之前,你需要選擇好你需要的語言,即會(huì)在你選擇的語言前出現(xiàn)對(duì)勾,代表選擇成功,同時(shí)也會(huì)把你選擇的語言顯示在右下方,例如選擇java:

然后可以寫代碼,記得保存后運(yùn)行,然后運(yùn)行的快捷鍵是ctrl+B。

像一個(gè)計(jì)時(shí)器一樣。
這個(gè)py文件也可以在cmd下運(yùn)行,即先打開cmd,然后再把py文件拖動(dòng)到cmd界面上,界面會(huì)顯示文件的路徑,回車,就可以執(zhí)行了。

3.pycharm+python書寫python(推薦使用,加載快,就是安裝庫使用pip安裝,在cmd里面進(jìn)行使用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(這個(gè)安裝庫可以,但是不穩(wěn)定,就是也是加載慢,是超級(jí)慢)
安裝這兩個(gè)軟件,然后在pycharm配置Anaconda。
適合初學(xué)者,但是我只用了不到一天就不愛用了,實(shí)在太慢了。
5.Anaconda書寫python(這個(gè)是什么庫都有,但是程序太大)