您好,登錄后才能下訂單哦!
python誕生于1989年,創始人 吉多·范羅蘇姆(Guido van Rossum)。python是一種 C和shell 之間,功能全面,易學易用,可拓展的語言。
?
如下是最新的TIOBE排行榜(https://www.tiobe.com/tiobe-index )
?
現在,python主要應用于web開發(Django框架, Tornado框架,flask,bottle),網絡編程(支持高并發的Twisted網絡框架),爬蟲,云計算,人工智能,游戲開發,金融分析,還有就是運維開發,現在python是每個運維工程師必須掌握的開發語言 之一 ~~
編譯型語言需要有專門的編譯器,能夠將代碼 針對特定的平臺(操作系統)編譯成機器碼,然后是鏈接過程,把各個模塊的機器碼和依賴庫連起來生成可執行文件。
?
優點:編譯器在預編譯過程能夠對代碼進行優化。編譯只需要進行一次,生成的可執行文件就可以在特定的平臺脫離語言環境獨立運行,運行效率高。
缺點:不同的平臺之間移植存在問題,需要根據不同的平臺編譯多個可執行文件。編譯完成后,若需要修改,就要重新編譯整個模塊。
?
代表語言有 C、C++、Object-C.....
解釋型語言不需要事先編譯,在運行過程中由解釋器逐行解釋,然后運行。
?
優點:良好的平臺兼容性,只要有解釋器,相同的代碼就可以在不同的平臺上運行
缺點:相比于編譯型語言,運行速度較慢。
?
代表語言有 python、ruby、php、JavaScript、Erlang
?
Tip:java屬于混合型語言,java需要編譯之后才能運行,但是其編譯后,并不是像C,C++語言那樣編譯成機器語言,而是編譯成與平臺無關的字節碼.class文件,字節碼文件不能直接運行于操作系統之上,需要被java虛擬機翻譯成本地的機器碼后才能執行,而這個過程是讀取一條指令,然后翻譯,最后執行,翻譯性的過程。
python屬于解釋型語言,當執行python程序時,python解釋器先將源代碼轉換為字節碼,然后再由python解釋器執行這些字節碼,每一次的運行都是這樣的一個過程。相比于編譯型語言,每一次的執行都多出了編譯、鏈接的過程,速度稍慢,但是這樣更易于代碼移植,且不用擔心程序的編譯,庫的鏈接加載等問題~
?
python提供了編譯的方法,可以先將python程序編譯成字節碼存儲下來,在運行時直接運行字節碼文件,這是出于對效率的考慮。python程序一般的運行,產生的字節碼不會保留下來,只有在import導入py文件時,才會產生pyc字節碼文件,并在運行時,替代原文件直接運行~
Python的解釋器有好多種,具體的分類如下:
Python的3版本,常被稱為Python 3000。相對于Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下兼容。早期Python版本的程式都無法在Python 3.0上正常執行。
Python 2.6作為一個過渡版本,基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函數。
總的來說 Python3 比 2.x 做了很多的改進,若是開發新的項目,優先開率使用Python3(Python2.x終究要被取代)
Python2.x與Python3.x 的具體區別,可以參閱:http://www.runoob.com/python/python-2x-3x.html
官網地址: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的易用性~
.................^_^
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。