Python開發基礎-Day1-python入門

來源:互聯網
上載者:User

標籤:amd   python   動態編譯   targe   路徑   ice   src   windows   lan   

程式設計語言分類

機器語言

  使用二進位代碼直接編程,直接與硬體互動,執行速度非常快,靈活,但是開發難度高,開發效率低下,缺乏移植性。 

組合語言

  對機器語言指令進行了英文封裝,較機器語言容易記憶,直接與硬體互動,執行速度快,執行檔案小,但是開發難度相對也很高,開發效率低

進階語言

  文法簡單,容易理解,開發難度低效率高,開發後測試方便,但是開發的程式需要經過轉換才能執行,所以執行效率相對慢,可移植性高。

  解釋執行:代碼執行時候,解譯器按照原始碼檔案中的內容,一條條解釋並運行,相對編譯執行速度慢,但出錯方便調試,開發效率高。

    例如Python、PHP、Ruby、JavaScript等

  編譯執行:程式執行前,編譯器會將原始碼一次性編譯成機器能夠識別的指令檔案,然後運行編譯後的檔案,速度相對錶解釋執行要高,但是出錯後修改原始碼需要重新編譯執行,開發效率相對低

    例如C語言、C++、GO、Swift、Object-C等

  解釋執行和編譯執行在執行效率上雖然有差別,但是對於當前電腦的硬體計算速度的提升,加上網路環境的限制,執行速度相對來說並不是關鍵,開發效率才是關鍵。

  像Java和C#屬於混合語言,即既有編譯執行也有解釋執行。

 

Python簡介

Python介紹

  Python是一門解釋型程式設計語言,平台相容性高,省略一堆屁話,這是筆記!!!!

  解釋型語言依賴於解譯器,python解譯器執行代碼檔案的過程如下:

    開啟python解譯器

    python解譯器從硬碟調用py檔案到記憶體

    python解譯器執行讀入記憶體的檔案代碼,該過程詳細為:py檔案-位元組碼檔案-解譯器-機器碼-執行

  python檔案在執行過程中,不會儲存位元組碼檔案,每次執行py檔案時候,都會先轉化成位元組碼檔案。

  python在import(匯入)py檔案的時候,會產生pyc的位元組碼檔案儲存下來。

Python分類

  Cpython(最常用):使用C語言實現的python,官方版本,Cpython會將原始碼檔案轉換成pyc位元組碼檔案使用到python虛擬機器上執行

  Jpython:使用Java實現的python,將Python代碼動態編譯成Java位元組碼,然後在JVM上運行

  IronPython:Python的C#實現,IronPython將Python代碼編譯成C#位元組碼,然後在CLR上運行

  PyPy(特殊):Python實現的Python,將Python的位元組碼位元組碼再編譯成機器碼

  RubyPython、Brython.....

  除了PyPy外,執行流程如:

    代碼檔案首先轉換層位元組碼檔案,位元組碼檔案流入解譯器,解譯器轉化成機器碼後執行輸出。

Python解譯器版本

  版本3,最新的版本為3.6.1

  版本2,最新的版本為2.7.13,2020年停止更新

 

Python入門

安裝

Python Linux版本安裝

  安裝過程轉 http://www.cnblogs.com/zero527/p/6920965.html

Python Windows版本安裝

  雙擊安裝,一路下一步,記得勾選自動添加環境變數

第一行代碼"hello world"

解譯器只用來測試代碼,並不能儲存代碼,想要永久儲存,需要將代碼寫入到檔案中。

解譯器執行:

C:\Users\Mr.chai>pythonPython 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> "hello world"     #由於解譯器內建輸出功能,所以輸入一個字串會自動給出輸出‘hello world‘>>> print("hello world")  #print為輸出,輸出的內容是括弧中的內容hello world>>>

py檔案執行:

建立一個hello.py檔案,內容寫入print("hello world")

C:\Users\Mr.chai>python C:\hello.pyhello world

python檔案頭(linux)

在linux執行hello.py檔案,也是用python 路徑/hello.py,但是在linux可以用./方法執行檔案,直接執行./hello.py,會報錯,原因是找不到解譯器,所以要在hello.py檔案中加一個頭部資訊,標識解譯器位置

#!/usr/bin/env python #該行只對linux有效,表示/usr/bin/所有的python解譯器,可以指定一個如:/usr/bin/python# -*- coding: utf-8 -*- #指定字元編碼
print(‘hello world‘)

內容注釋

注釋為說明性文字

#  單行注釋

‘‘‘ str...str ‘‘‘    三引號為多行注釋

模組功能匯入

import sys    匯入系統模組,允許該檔案運行擴充的系統功能

變數

變數是用來表示程式運行時候改變的狀態的,是一個抽象的概念。

變數組成:

  [變數名]=[變數實際的值]

  變數名:變數命名一般字母或底線開頭,剩下的可以是字母和數字,變數名不能和關鍵字衝突,如print、and等系統關鍵字

  變數值:可以改變的值,一個變數名可以重複賦值,但是變數實際的值為最後賦值後的值,變數的值存放在記憶體空間

變數類型:

  局部變數:只在某一段代碼中生效的變數

  全域變數:在整個程式的運行中生效的變數

變數賦值與調用:

#!/usr/bin/env python# -*- coding: utf-8 -*-name="bob"  #賦值字串age=20    #賦值整數print(name,age)  #輸出變數
print("my name is %s,i am %s years old." % (name,age))  # %s表示佔位,第一個%s調用後面括弧裡面的第一個變數,第二個%s調用第二個變數

重複賦值指的是改變變數名的引用,引用的值改變了。

id後面跟變數,查看記憶體id號

>>> a=1>>> id(a)1379185728>>> b=1>>> id(b)1379185728

變數佔用的記憶體空間比較小的,不再開闢記憶體空間,將直接引用,如果佔用的記憶體空間大,那引用的過程中將開闢新的記憶體空間,這是python的一種最佳化機制

>>> a="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz">>> id(a)2884867588944>>> b="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz">>> id(b)2884867588624

輸入輸出

python2中的raw_input()個python3中的input()功能一樣,會把所有使用者的輸入轉成str類型

>>> name=input("name:")name:bob>>> age=input("age:")age:20>>> type(name)<class ‘str‘>>>> type(age)<class ‘str‘>

getpass模組,可以隱藏輸入

>>> password=getpass.getpass("pass:")pass:>>> print(password)123456

 



getpass模組,隱藏密碼輸入
import getpass
name=input("使用者名稱:")
password=getpass.getpass(‘密碼:‘)

print("使用者名稱:%s 密碼:%s" % (name,password)

Python開發基礎-Day1-python入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.