中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python基礎概述

發布時間:2020-06-26 16:35:12 來源:網絡 閱讀:689 作者:LJ_baby 欄目:編程語言

1、python簡介

python誕生于1989年,創始人 吉多·范羅蘇姆(Guido van Rossum)。python是一種 C和shell 之間,功能全面,易學易用,可拓展的語言。
?
如下是最新的TIOBE排行榜(https://www.tiobe.com/tiobe-index )
python基礎概述
?
現在,python主要應用于web開發(Django框架, Tornado框架,flask,bottle),網絡編程(支持高并發的Twisted網絡框架),爬蟲,云計算,人工智能,游戲開發,金融分析,還有就是運維開發,現在python是每個運維工程師必須掌握的開發語言 之一 ~~

2、編譯型語言和解釋型語言

編譯型語言

編譯型語言需要有專門的編譯器,能夠將代碼 針對特定的平臺(操作系統)編譯成機器碼,然后是鏈接過程,把各個模塊的機器碼和依賴庫連起來生成可執行文件。
?
優點:編譯器在預編譯過程能夠對代碼進行優化。編譯只需要進行一次,生成的可執行文件就可以在特定的平臺脫離語言環境獨立運行,運行效率高。
缺點:不同的平臺之間移植存在問題,需要根據不同的平臺編譯多個可執行文件。編譯完成后,若需要修改,就要重新編譯整個模塊。
?
代表語言有 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字節碼文件,并在運行時,替代原文件直接運行~

3、Python解釋器

Python的解釋器有好多種,具體的分類如下:

  • Cpython
    Python的官方版本,也是最常用的版本,使用C語言實現,CPython實現將源文件(py文件)轉換成字節碼文件(pyc文件),然后執行字節碼文件。
  • Jyhton
    Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,然后在JVM上運行。
  • IronPython
    Python的C#實現,IronPython將Python代碼編譯成C#字節碼,然后在CLR上運行。(與Jython類似)
  • PyPy(特殊)
    Python實現的Python,將Python的字節碼字節碼再編譯成機器碼。
  • RubyPython、Brython ...
    ?

    4、python2和python3

    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

5、python的安裝

windows上的安裝

官網地址:https://www.python.org/downloads/windows/
python基礎概述

安裝過程按照提示即可~~

測試安裝是否成功
win + R(運行) --> 輸入cmd,在命令行輸入python,回車,進入交互式環境表示安裝成功(這里安裝的不是最新版本)
python基礎概述

Linux上的安裝(CentOS7為例)

在CentOS7上默認安裝有python2.7.5,若要使用python3.x,另外再安裝一個Python(不刪除原來的Python,yum依賴默認安裝的Python)

下載Python3
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         # 編譯需要的環境
編譯安裝Python3
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
為Python3添加環境變量
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

6、python文件頭

在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:通常使用第二種方式~~

7、python中的注釋

為了增加代碼的可讀性,一般會在代碼中添加注釋,單行注釋用#,多行注釋可以用三對雙引號""" """,示例如下:

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---

8、python中的單引號和雙引號

python中的單引號和雙引號都可以用來表示一個字符串~

str1 = 'python'
str2 = "python" 

簡單的說兩者沒什么區別
?
單引號和雙引號同時存在的意義在于:當字符串中存在單引號(或者雙引號)時,可以使用雙引號(單引號)表示一個字符串,避免使用轉義字符,例如字符串 if you're a python,若使用單引號需要使用轉義字符:

str = 'if you\'re a python'

而如果使用雙引號就可以避免使用 \:

str = "if you're a python"

?
反過來也一樣,當字符串中存在 雙引號" " ,就使用單引號表示字符串。這里就很好的體現了python的易用性~
.................^_^

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 兴国县| 高雄市| 鹤庆县| 抚州市| 涿州市| 西贡区| 绥阳县| 河东区| 林州市| 商南县| 北辰区| 吴江市| 泰宁县| 瑞丽市| 赣榆县| 汉川市| 山阳县| 苍南县| 舒城县| 蕲春县| 长兴县| 麦盖提县| 阜平县| 辽阳县| 富宁县| 平安县| 新津县| 呼玛县| 旬邑县| 漳平市| 彭山县| 淮南市| 英超| 鹤峰县| 乌拉特后旗| 靖边县| 灵石县| 渑池县| 正安县| 博野县|