python誕生於1989年,創始人 吉多·範羅蘇姆(Guido van Rossum)。python是一種 C和shell 之間,功能全面,易學易用,可拓展的語言。
以下是最新的TIOBE排行榜(https://www.tiobe.com/tiobe-index )
如今,python主要應用於web開發(Django框架, Tornado框架,flask,bottle),網絡編程(支持高併發的Twisted網絡框架),爬蟲,雲計算,人工智能,遊戲開發,金融分析,還有就是運維開發,如今python是每一個運維工程師必須掌握的開發語言 之一 ~~php
編譯型語言須要有專門的編譯器,可以將代碼 針對特定的平臺(操做系統)編譯成機器碼,而後是連接過程,把各個模塊的機器碼和依賴庫連起來生成可執行文件。
優勢:編譯器在預編譯過程可以對代碼進行優化。編譯只須要進行一次,生成的可執行文件就能夠在特定的平臺脫離語言環境獨立運行,運行效率高。
缺點:不一樣的平臺之間移植存在問題,須要根據不一樣的平臺編譯多個可執行文件。編譯完成後,若須要修改,就要從新編譯整個模塊。
表明語言有 C、C++、Object-C.....html
解釋型語言不須要事先編譯,在運行過程當中由解釋器逐行解釋,而後運行。
優勢:良好的平臺兼容性,只要有解釋器,相同的代碼就能夠在不一樣的平臺上運行
缺點:相比於編譯型語言,運行速度較慢。
表明語言有 python、ruby、php、JavaScript、Erlang
java
Tip:java屬於混合型語言,java須要編譯以後才能運行,可是其編譯後,並非像C,C++語言那樣編譯成機器語言,而是編譯成與平臺無關的字節碼.class文件,字節碼文件不能直接運行於操做系統之上,須要被java虛擬機翻譯成本地的機器碼後才能執行,而這個過程是讀取一條指令,而後翻譯,最後執行,翻譯性的過程。python
python屬於解釋型語言,當執行python程序時,python解釋器先將源代碼轉換爲字節碼,而後再由python解釋器執行這些字節碼,每一次的運行都是這樣的一個過程。相比於編譯型語言,每一次的執行都多出了編譯、連接的過程,速度稍慢,可是這樣更易於代碼移植,且不用擔憂程序的編譯,庫的連接加載等問題~
python提供了編譯的方法,能夠先將python程序編譯成字節碼存儲下來,在運行時直接運行字節碼文件,這是出於對效率的考慮。python程序通常的運行,產生的字節碼不會保留下來,只有在import導入py文件時,纔會產生pyc字節碼文件,並在運行時,替代原文件直接運行~linux
Python的解釋器有好多種,具體的分類以下:c++
Python的3版本,常被稱爲Python 3000。相對於Python的早期版本,這是一個較大的升級。爲了避免帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下兼容。早期Python版本的程式都沒法在Python 3.0上正常執行。
Python 2.6做爲一個過渡版本,基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,容許使用部分Python 3.0的語法與函數。web
總的來講 Python3 比 2.x 作了不少的改進,如果開發新的項目,優先開率使用Python3(Python2.x終究要被取代)sql
Python2.x與Python3.x 的具體區別,能夠參閱:http://www.runoob.com/python/python-2x-3x.htmlshell
官網地址:https://www.python.org/downloads/windows/編程
安裝過程按照提示便可~~
測試安裝是否成功
win + R(運行) --> 輸入cmd,在命令行輸入python,回車,進入交互式環境表示安裝成功(這裏安裝的不是最新版本)
在CentOS7上默認安裝有python2.7.5,若要使用python3.x,另外再安裝一個Python(不刪除原來的Python,yum依賴默認安裝的Python)
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum install gcc gcc-c++ -y # 編譯須要的環境
mkdir -p /usr/local/python3 tar xf Python-3.6.6.tar.xz cd Python-3.6.6 ./configure --prefix=/usr/local/python3 make && make install
若安裝成功會顯示以下信息:
....... ....... Looking in links: /tmp/tmp8k7hc304 Collecting setuptools Collecting pip Installing collected packages: setuptools, pip Successfully installed pip-10.0.1 setuptools-39.0.1
這表示編譯安裝 Python-3.6.6,會自動幫咱們安裝setuptools, pip(源碼包中已包含了這兩個模塊),能夠直接使用pip安裝python的第三方模塊,例如安裝ipython:
pip3 install ipython
如果要爲centos7上默認的python(python2.7)安裝pip,能夠直接使用yum安裝:
yum install -y python-pip
vim /etc/profile.d/python3.sh PYTHON3_HOME=/usr/local/python3 export PATH=$PATH:${PYTHON3_HOME}/bin 編輯完運行腳本,使環境變量生效 source /etc/profile.d/python3.sh
在命令行輸入python3,便可進入python交互式環境
[root@localhost ~]# python3 Python 3.6.6 (default, Jul 19 2018, 10:19:19) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux Type "help", "copyright", "credits" or "license" for more information.
在上述安裝ipython模塊時,能夠看到,下載速度很是的慢,這是由於下載的第三方庫來自Python的官方源:https://pypi.org/pyp, 先下載到本地,而後解包安裝。在國內,推薦使用豆瓣的源:http://pypi.douban.com/simple/
使用pip安裝模塊時,指定使用的鏡像源:
pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple ipython
每次都這樣寫比較麻煩,能夠寫在配置文件中:
mkdir ~/.pip # 家目錄下建立 .pip 目錄 或者 .config 目錄(不存在建立) vim ~/.pip/pip.conf 添加以下內容: [global] timeout = 60 index-url = https://pypi.doubanio.com/simple Tip:若是使用http連接,須要指定trusted-host參數 [global] timeout = 60 index-url = http://pypi.douban.com/simple trusted-host = pypi.douban.com # 使用aliyun上的源,添加內容以下: [global] timeout = 60 trusted-host = mirrors.aliyun.com index-url = https://mirrors.aliyun.com/pypi/simple
上述爲配置文件 pip.conf 在linux上的存放路徑
mac下存放路徑: $HOME/Library/Application Support/pip/pip.conf 或者 $HOME/.pip/pip.conf windows下存放路徑(配置文件名稱爲pip.ini): %APPDATA%\pip\pip.ini 或者 %HOME%\pip\pip.ini
在Linux環境下,執行python腳本通常有這兩種方式:
1)python filename.py
2)./filename.py
第一種方式已經指定了使用python解釋器去執行腳本;第二種方式沒有指定,則須要在腳本文件的頭部指定解釋器:
#!/usr/bin/env python # PATH環境變量 中的第一個 python 來執行腳本 或 #!/usr/bin/python # 使用絕對路徑指定python解釋器位置
通常在python腳本的頭部還有這麼一行,用來告訴python解釋器, 以utf-8編碼方式來解釋py文件。
# -*- coding: utf-8 -*-
在python2中, 若是程序中包含中文字符, 須要添加這一行。在python3中,默認編碼就是utf-8,這一行不須要添加。
聲明python文件編碼的語句必須放在py文件的第一行或者第二行,支持以下3種格式:
1)# coding=<encoding name> 2)# -*- coding: <encoding name> -*- 3)# vim: set fileencoding=<encoding name> :
Tip:一般使用第二種方式~~
爲了增長代碼的可讀性,通常會在代碼中添加註釋,單行註釋用#,多行註釋能夠用三對雙引號""" """,示例以下:
class Abc(): """ 多行註釋 多行註釋 多行註釋 """ def __init__(self): pass def say_hello(self): # 單行註釋 # 單行註釋 return 'hello'
事實上,3對雙引號""" """也可使用3對單引號''' '''替換,一樣表示多行註釋:
class Abc(): ''' 多行註釋 多行註釋 多行註釋 ''' def __init__(self): pass def say_hello(self): # 單行註釋 # 單行註釋 return 'hello'
3對單引號或者3對雙引號還有另一種用途,就是能夠表示多行輸出,例如要輸出以下語句:
line1--- line2--- line3---
方式一:
>>> str1 = "line1---\nline2---\nline3---" >>> str1 'line1---\nline2---\nline3---' >>> print(str1) line1--- line2--- line3---
方式二(3對單引號仍是3對雙引號,結果同樣)Pycharm環境:
str2 = '''line1--- line2--- line3---''' print(str2) 輸出結果: line1--- line2--- line3---
python中的單引號和雙引號均可以用來表示一個字符串~
str1 = 'python' str2 = "python"
簡單的說二者沒什麼區別
單引號和雙引號同時存在的意義在於:當字符串中存在單引號(或者雙引號)時,可使用雙引號(單引號)表示一個字符串,避免使用轉義字符,例如字符串 if you're a python,若使用單引號須要使用轉義字符:
str = 'if you\'re a python'
而若是使用雙引號就能夠避免使用 \:
str = "if you're a python"
反過來也同樣,當字符串中存在 雙引號" " ,就使用單引號表示字符串。這裏就很好的體現了python的易用性~.................^_^