瞭解python

Python簡介

python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。 html

目前Python主要應用領域:java

  • 雲計算: 雲計算最火的語言, 典型應用OpenStack
  • WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系統運維: 運維人員必備語言
  • 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,並且重要性逐年提升。緣由:做爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤爲擅長策略回測
  • 圖形GUI: PyQT, WxPython,TkInter

編程語言

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快; python

解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的. c++

這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)算法

編譯型vs解釋型編程

編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。多線程

解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。框架

缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。運維

文件解釋器解釋文件的原理 僅供參考編程語言

Python的優勢

先看優勢

  1. Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。
  2. 開發效率很是高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。
  3. 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
  4. 可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行
  5. 可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
  6. 可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

再看缺點:

  1. 速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是很是誇張了,可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。
  2. 代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來去實現。
  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。關於這個問題的折衷解決方法,咱們在之後線程和進程章節裏再進行詳細探討。

python的種類

Cpython:

         基礎C語言開發的python

運行流程:代碼——C字節碼——機器碼(逐行解釋)

Pypy: Cpython的加速版

    運行流程:代碼——C字節碼——機器碼(所有提早解釋完成)

其餘python

運行流程:代碼——其餘字節碼——機器碼

潛規則:

以py  pyc結尾

安裝python解釋器

下載地址:

https://www.python.org/downloads/

Windows:

一、下載安裝包

    https://www.python.org/downloads/

二、安裝

默認安裝路徑:C:\python27

雙擊安裝,會有一項詢問是否要配置環境變量,勾上,完成安裝後就不用配置了。若是沒有,按照以下方法配置:

三、配置環境變量

    【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】

如:原來的值;C:\python27,切記前面有分號

4.驗證是否安裝成功

C:\Users\yangqq>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Linux:

    系統通常會自帶。

解釋器解釋的流程:

 a. 打開文件,讀取文件內容

 b. 詞法分析,語法分析

 c. 字節

工具pycharm

安裝

http://pan.baidu.com/s/1eRHhplS 安裝破解方法

激活方法:
點擊Register-license server 輸入 http://idea.liyang.io

基本使用:

調整背景顏色

 setting-Aooearance&Behavior-Appearnce-Theme:

設置按住ctrl鍵移動鼠標調整字體的大小

setting-搜索框中輸入 mouse-general-勾選 Change font size with  Ctrl+Mouse Wheel

修改編碼

Default settings-搜索 encoding 

自定義python script

default settings-搜索 temp -editor-file and code templates-python script 輸入 
#!/usr/bin/env python # -*- coding: utf-8 -*-

修改字體

settings-editor-colors&fonts-font

修改字體顏色

settings-editor-colors&fonts-font-python

變量/字符編碼

  • 字符編碼

8位爲一組 8位=1字節

ASCII  256

最開始的編碼,共256位,只有英文,數字,特殊符號。英文是佔用一個字節       

萬國碼

至少16位 爲了迎合各國的語言,中文三個字節,英文兩個字節      

Utf-8

萬國碼的壓縮,老外不幹呀,原本一個字節就夠了,還得用兩個,就誕生了這個,能少用就少用

英文一個字節,中文三個字節

GBK,GB2312

中國人本身的編碼,中文兩個字節,big5是繁體

應該告訴python解釋器,用什麼編碼來執行源代碼

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print "你好,世界"
  •  變量

聲明變量

#_*_coding:utf-8_*_
name = "Alex Li"

上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"Alex Li"

變量定義的規則:

      • 變量名只能是 字母、數字或下劃線的任意組合
      • 變量名的第一個字符不能是數字
      • 如下關鍵字不能聲明爲變量名
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

變量的賦值

name = "Alex Li"
name2 = name
print(name,name2)
name = "Jack"
print("What is the value of name2 now?")

好好理解變量和值之間的關係

#!/usr/bin/python
#-*-coding:utf-8 -*-
name = "yangqiqi"
name2 = name
print(name)
print(name2)
print("————————————————")
name = "landandan"
print(name)
print(name2)
執行結果:
C:\Users\yangqq\AppData\Local\Programs\Python\Python36\python.exe E:/python/studynote/s17/day01/s2.py
yangqiqi
yangqiqi
———————————————
landandan
yangqiqi
Process finished with exit code 0

解釋:
Name = 「yangqiqi」  這個是內存中yangqiqi的代稱
當name 2 = name的時候,意義是name2是name在內存中「yangqiqi」的這個值的代稱,指向的是這個值不是name
因此當name = 「landandan」修改了值後,實際上是跟name2沒有關係的

 

註釋

當行注視:# 被註釋內容  多行註釋:""" 被註釋內容 """
相關文章
相關標籤/搜索