1. 程式人生 > >Python開發基礎-Day1-python入門

Python開發基礎-Day1-python入門

概念 mar 隱藏密碼 log abcdefg 括號 字符 三引號 abc

編程語言分類

機器語言

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

匯編語言

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

高級語言

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

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

    例如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>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.
>>> "hello world"     #由於解釋器自帶輸出功能,所以輸入一個字符串會自動給出輸出
hello world
>>> print("hello world")  #print為輸出,輸出的內容是括號中的內容
hello world
>>>

py文件執行:

創建一個hello.py文件,內容寫入print("hello world")

C:\Users\Mr.chai>python C:\hello.py
hello 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入門