這是歷史版本頁面 — 看 Python (64-bit) 最新版本

想學寫程式或自動化工作,Python 能幫你做什麼

Python (64-bit) 軟體圖示 Python (64-bit) 3.10.6 (64-bit) 資料更新 2022-08-02 閱讀約 6 分鐘

你手上有一堆重複的檔案要整理,或是一份好幾萬列的資料表,Excel 開起來就卡住,你想找個方法把這些事情交給電腦自己跑。又或者,你一直想學寫程式,但打開教學文章看到一堆看不懂的專有名詞,不確定自己到底該從哪裡開始,也不確定學了之後到底能拿來做什麼。

你大概聽過「寫程式可以解決很多問題」,但真的打開編輯器,卻不知道第一行要打什麼。上網找答案,有人說要先學 C、有人說要學 JavaScript,還有人說直接學 Python 最快。你需要的不是更多選擇,而是一個能讓你實際動手、做完一件小事的工具,然後從那裡慢慢長出能力。

01Python 到底能拿來做什麼?

官方說明指出,Python 是動態物件導向程式語言,可用於多種軟體開發,包括網頁開發、資料分析、科學計算、人工智慧、機器學習和自動化。標準函式庫支援 HTML、XML、JSON、Email 處理、FTP、IMAP 等網路協定,還有 pip 套件管理器可安裝第三方模組。具體能做什麼,取決於你安裝了哪些函式庫。

02它學起來會不會很難?

官方資料說它的語法簡潔直觀,縮排結構強制程式碼可讀性,初學者能在幾天內學會基本概念。動態型別讓變數不需要宣告型別,加快開發速度。但這不代表完全沒有學習曲線,物件導向、例外處理、套件管理這些概念還是需要時間熟悉。如果你完全沒寫過程式,建議先從官方教學文件開始。

03它能寫網頁或手機App嗎?

網頁可以。官方資料提到 Django 和 Flask 兩個網頁框架,能簡化網頁開發並建立可擴充的應用程式。手機 App 方面,官方資料沒有提到相關框架或工具,需要自行確認是否有對應的解決方案。如果你主要目標是手機 App,可能需要考慮其他語言或工具。

04它能處理大量資料或做數據分析嗎?

可以。官方資料列出 NumPy 做科學計算、Pandas 做資料操作、Matplotlib 做資料視覺化,這些是資料分析常用的函式庫。TensorFlow 和 PyTorch 則用於機器學習。這些函式庫能大幅加速開發,不用從零開始寫演算法。但要注意,這些都是第三方套件,需要另外安裝。

05它能自動化重複性的工作嗎?

可以。官方資料提到 Python 可用於自動化,且標準函式庫支援多種網路協定,例如用 FTP 或 IMAP 處理檔案傳輸和郵件。配合第三方套件如 Requests(HTTP 客戶端)、BeautifulSoup(HTML 解析),可以寫腳本自動抓取網頁資料或處理檔案。具體能自動化什麼,取決於你安裝的套件。

06完全沒寫過程式的人適合學嗎?

官方資料說 Python 常被用作高中和大學的入門程式語言,因為語法簡單、容易學習。它強調程式碼可讀性,縮排結構能減少語法錯誤。但「適合初學者」不代表不用花時間,還是需要投入時間練習。如果你完全沒接觸過程式,可以先從官方教學文件開始。

07我已經會寫C或Java,還需要學它嗎?

官方資料說 Python 可以與 C、C++、Java 整合,也能嵌入其他應用程式當作腳本介面。如果你已經有程式基礎,Python 的語法會更容易上手,而且可以用來快速開發原型。但如果你現有的語言已經能解決問題,就不一定要換。Python 的優勢在於開發速度和生態系,不是取代其他語言。

08我的電腦是Windows 7,可以用嗎?

要注意。官方資料明確說 Python 3.9 以上的版本不能在 Windows 7 或更早的系統上執行。如果你還在用 Windows 7,只能安裝 3.8 或更早的版本,但那些版本可能不再獲得更新。建議先確認你的系統版本,再決定要安裝哪個版本。Windows 8、10、11 則沒有這個限制。

09我不喜歡打指令,只想要圖形介面,適合嗎?

官方資料說 Python 本身是命令列語言,沒有專屬的圖形使用者介面。但可以搭配 PyCharm、Visual Studio Code、Atom、Jupyter Notebook 等 IDE 或編輯器,這些工具提供程式碼自動完成、語法標示、除錯功能。如果你完全不想碰指令列,還是需要透過這些工具來操作。

10我想寫一個執行速度很快的程式,適合嗎?

官方資料沒有提到 Python 的執行效能。它是直譯式語言,通常比編譯式語言慢,但資料沒有提供具體數據。如果你的程式需要極高效能,可能需要考慮其他語言,或把效能關鍵的部分用 C/C++ 撰寫再整合。這部分需要你自己測試評估。

11我想開發手機App,適合嗎?

官方資料沒有提到手機 App 開發的相關框架或工具。Python 主要用於網頁、資料分析、科學計算、自動化等領域。如果你要開發手機 App,可能需要找其他語言或工具,或確認是否有第三方套件能達成。資料沒有這方面的資訊,建議先確認你的需求再決定。

12它需要付費嗎?

官方資料說 Python 64-bit 採用 OSI 認可的開源授權,可以免費使用,包括商業產品。不需要付費購買授權。但如果你要使用某些第三方套件,那些套件可能有自己的授權條款,需要個別確認。官方網站提供各作業系統的安裝檔,下載和安裝都是免費的。

下載與官方連結

前往官方網站 下載 Python (64-bit)

python-3.10.6.amd64.exe · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

Security:
- http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. Vulnerability discovered, and initial fix proposed, by Hamza Avvan.
- Fix memoryview use after free when accessing the backing buffer in certain cases

Core and Builtins:
- _PyPegen_Parser_New now properly detects token memory allocation errors
- Fix error detection in some builtin functions when keyword argument name is an instance of a str subclass with overloaded __eq__ and __hash__. Previously it could cause SystemError or other undesired behavior.
- ast.parse() will no longer parse parenthesized context managers when passed feature_version less than (3, 9). Patch by Shantanu Jain.
- ast.parse() will no longer parse assignment expressions when passed feature_version less than (3, 8). Patch by Shantanu Jain.
- Fix the column offsets for some expressions in multi-line f-strings ast nodes
- Fix an issue where a bytearray item assignment could crash if it’s resized by the new value’s __index__() method.
- Compile and run code with unpacking of extremely large sequences (1000s of elements). Such code failed to compile. It now compiles and runs correctly.
- Fixed a tokenizer crash when reading encoded files with syntax errors from stdin with non utf-8 encoded text
- Fix error for dictionary literals with invalid expression as value.
- Strengthened compiler overflow checks to prevent crashes when compiling very large source files.
- Fix some exponential backtrace case happening with deeply nested sequence patterns in match statements
- Fix the __text_signature__ for __get__() methods implemented in C. Patch by Jelle Zijlstra.
- Fixed a crash in _pickle.c from mutating collections during __reduce__ or persistent_id.
- Always round the allocated size for lists up to the nearest even number.
- Improve error message for some suites with syntax error before ‘:’

Library:
- Update bundled pip to 22.2.1
- Fix GC crash when deallocating _lsprof.Profiler by untracking it before calling any callbacks
- Fix IndexError in parsing invalid date in the email module
- Upgrade bundled setuptools to 63.2.0
- Upgrade bundled pip to 22.2
- Fix check for existence of os.EFD_CLOEXEC, os.EFD_NONBLOCK and os.EFD_SEMAPHORE flags on older kernel versions where these flags are not present
- Fix concurrent.futures.Executor.map() to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt.
- Fix fileinput module didn’t support errors option when inplace is true.
- Fix binding of unix socket to empty address on Linux to use an available address from the abstract namespace, instead of “0”.
- Fix crash when deallocating an instance of a subclass of _multiprocessing.SemLock
- SSLContext.set_default_verify_paths() now releases the GIL around SSL_CTX_set_default_verify_paths call. The function call performs I/O and CPU intensive work.
- Re-entrant calls to sys.setprofile() and sys.settrace() now raise RuntimeError.
- Fix bug where linecache.getline() fails on bad files with UnicodeDecodeError or SyntaxError. It now returns an empty string as per the documentation.
- Fix memory leak in pickle.Pickler when looking up dispatch_table
- Fixed types of struct module to be immutable
- Fix pickling and copying of typing.Tuple[()].
- Made _struct.Struct GC-tracked in order to fix a reference leak in the _struct module.
- Manual instantiation of ssl.SSLSession objects is no longer allowed as it lead to misconfigured instances that crashed the interpreter when attributes where accessed on them.
- inspect.iscoroutinefunction(), inspect.isgeneratorfunction(), and inspect.isasyncgenfunction() now properly return True for duck-typed function-like objects like instances of unittest.mock.AsyncMock.
- This makes inspect.iscoroutinefunction() consistent with the behavior of asyncio.iscoroutinefunction(). Patch by Mehdi ABAAKOUK.
- Fix double closing of file description in tempfile.
- Fixed names and __module__ value of weakref classes ReferenceType, ProxyType, CallableProxyType. It makes them pickleable.
- copy.copy() and copy.deepcopy() now always raise a TypeError if __reduce__() returns a tuple with length 6 instead of silently ignore the 6th item or produce incorrect result.
- Fix a multiprocessing bug where a global named resource (such as a semaphore) could leak when a child process is spawned (as opposed to forked).
- sqlite3 now correctly detects DML queries with leading comments. Patch by Erlend E. Aasland.
- Update sqlite3.Cursor.rowcount when a DML statement has run to completion. This fixes the row count for SQL queries like UPDATE ... RETURNING. Patch by Erlend E. Aasland.
- Suppress writing an XML declaration in open files in ElementTree.write() with encoding='unicode' and xml_declaration=None.
- Fix the importlib.resources.as_file() context manager to remove the temporary file if destroyed late during Python finalization: keep a local reference to the os.remove() function. Patch by Victor Stinner.
- Make multiprocessing.Pool raise an exception if maxtasksperchild is not None or a positive int.
- shutil.make_archive() no longer temporarily changes the current working directory during creation of standard .zip or tar archives.
- Move imports in SharedMemory methods to module level so that they can be executed late in python finalization.
- Fixed an issue with inconsistent trailing slashes in tarfile longname directories
- In QueueHandler, clear stack_info from LogRecord to prevent stack trace from being written twice
- Fix OSS audio support on NetBSD
- Fix ensurepip environment isolation for subprocess running pip
- Fix asyncio incorrect traceback when future’s exception is raised multiple times- sqlite3.Connection.iterdump() now handles databases that use AUTOINCREMENT in one or more tables