首頁 > 軟體

詳解python學習筆記之直譯器

2022-03-28 19:00:52

1、python教學

基於 python3.10 的持續解讀,旨在快速回憶加深理解,節約自己的時間成本

1.1 概述

python 是一門易於學習的程式語言,提供了高效的高階資料結構,簡單有效的物件導向程式設計,
因為優雅的語法、動態型別、直譯語言的本質,讓它成為多數平臺上寫指令碼和快速開發應用的理想語言。以下總結都是基於python10展開。

1.2 python標準庫

大量以 Python 編寫的模組,提供了日常程式設計中許多問題的標準解決方案,

https://docs.python.org/zh-cn/3/library/index.html

目錄如下:

概述、內建函數、內建常數、內建型別、內建異常、
文書處理服務、二進位制資料服務、資料型別、數位和數學模組、函數式變成模組、檔案和目錄存取、資料持久化、資料壓縮和存檔
檔案格式、加密服務、通用作業系統服務、並行執行、網路和程序間通訊、網際網路資料處理、結構化標記處理工具、網際網路協定和支援、多媒體服務
國際化、程式框架、TK圖形化使用者介面(GUI)、開發工具、偵錯與分析、軟體打包與分發、python執行時服務、自定義python解析器、python語言服務
匯入模組、windows系統相關模組、Unix 專有服務、被取代的模組、

1.3 python語言參考手冊

https://docs.python.org/zh-cn/3/reference/index.html

介紹了 Python 句法與“核心語意”。在力求簡明扼要的同時,我們也儘量做到準確、完整,概述、詞法分析、資料模型、執行模型、匯入系統、表示式、簡單語句、符合語句、頂級元件、完整的語法規範

1.4 python包索引

https://pypi.org/

python教學

https://docs.python.org/zh-cn/3/tutorial/index.html

本教學對每一個功能的介紹並不完整,甚至沒有涉及全部常用功能,只是介紹了 Python 中最值得學習的功能,旨在讓讀者快速感受一下 Python 的特色。
學完本教學的讀者可以閱讀和編寫 Python 模組和程式,也可以繼續學習 Python 標準庫。

1.5 術語對照表

https://docs.python.org/zh-cn/3.10/glossary.html

2、課前甜點

Python 雖然簡單易用,但它可是真正的程式語言,提供了大量的資料結構,也支援開發大型程式,遠超 shell 指令碼或批次檔。

Python 程式簡潔、易讀,通常比實現同種功能的 C、C++、Java 程式碼短很多,原因如下:

  • 高階資料型別允許在單一語句中表述複雜操作;
  • 使用縮排,而不是括號實現程式碼塊分組;
  • 無需預宣告變數或引數。

Python “可以擴充套件”:會開發 C 語言程式,就能快速上手為直譯器增加新的內建函數或模組,不論是讓核心程式以最高速度執行,還是把 Python 程式連結到只提供預編譯程式的庫(比如,硬體圖形庫)。只要下點功夫,就能把 Python 直譯器和用 C 開發的應用連結在一起,用它來擴充套件和控制該應用。

3、python解析器

3.1 傳入引數

tiaoce.py

import sys

a = sys.argv[0]
b = sys.argv[1]
c = sys.argv[2]


# 在命令列指定language的值,檔案離輸出language
if b.split("=")[0] == "language":
    c = b.split("=")[1]
    print("指令碼後第一個字串的值:"+c)
else:
    print("你的第一個引數名不對,應該是language")

# 以上三個變數可以作為函數的引數,傳遞到後續程式中
def tiaoce(a, b, c):
    print("指令碼名稱:" + a)
    print("指令碼後的第一個字串:" + b)
    print("指令碼後的第二個字串:" + c)

tiaoce(a,b,c)

預期:

C:UsersmcDesktoppython基礎>python tiaoce.py language=jiao aa bb
指令碼後第一個引數的值:jiao
指令碼名稱:tiaoce.py
指令碼後的第一個字串:language=jiao
指令碼後的第二哥字串:jiao

3.2 互動式執行

C:Usersmc>python
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> aa = True
>>> if aa:
...     print("jiaotengfei")
...
jiaotengfei
>>>

3.2.1 可執行的Python指令碼

linux上執行:Python指令碼可以直接執行,就像shell指令碼一樣,第一行新增:

#!/usr/bin/env python3.5
$ chmod +x myscript.py

windows10上執行:右鍵py檔案,開啟方式選擇python,雙擊後就會自動執行 tiaoce.py

print("jiao")
a = input("請輸入資訊:")
print(a)

3.2.2 互動式啟動檔案

當您以互動方式使用Python時,每次啟動直譯器時都會執行一些標準命令,這通常很方便。您可以通過將名為 PYTHONSTARTUP 的環境變數設定為包含啟動命令的檔名來實現。這類似於Unix shell的 .profile 功能。

import os

filename = os.environ.get('ANDROID_HOME')
# 列印你的環境變數的值,
print(filename)
# 預期
"""D:Program Filesandroid-sdk-windows"""

filename = os.environ.get('PYTHONSTARTUP')
print(filename)
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
        startup_file = fobj.read()
        print(startup_file)
    exec(startup_file)

3.3 直譯器的執行環境( 原始檔的字元編碼)

預設情況下,Python 原始碼檔案的編碼是 UTF-8,如果不使用預設編碼,則要宣告檔案的編碼,檔案的 第一 行要寫成特殊註釋。句法如下:

# encoding 可以是 Python 支援的任意一種 codecs。
# (這個模組定義了標準 Python 編解碼器(編碼器和解碼器)的基礎類別)
# -*- coding: encoding -*-
# 宣告使用 Windows-1252 編碼
# -*- coding: cp1252 -*-

可執行python 檔案的第一行定義:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

總結

本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容! 


IT145.com E-mail:sddin#qq.com