這是歷史版本頁面 — 看 Python (64-bit) 最新版本
想學寫程式或自動化工作,Python 能幫你做什麼
你手上有一堆重複的檔案要整理,或是一份好幾萬列的資料表,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-3.9.7.amd64.exe · 連結指向軟體原廠
版本紀錄
- 2026-10-26 Python 3.15.2 (64-bit) 35.9 MB
- 2026-10-21 Python 3.15.1 (64-bit) 43.4 MB
- 2026-10-10 Python 3.15.0 (64-bit) 43.3 MB
再看 5 筆
- 2026-10-01 Python 3.14.8 (64-bit) 31.8 MB
- 2026-08-06 Python 3.13.15 (64-bit) 28.1 MB
- 2026-08-06 Python 3.14.7 (64-bit) 31.7 MB
- 2026-06-12 Python 3.13.14 (64-bit) 27.9 MB
- 2026-06-11 Python 3.14.6 (64-bit) 29.3 MB
這一版改了什麼
What's new in this version:
Security:
- bpo-42278: Replaced usage of tempfile.mktemp() with TemporaryDirectory to avoid a potential race condition.
- bpo-41180: Add auditing events to the marshal module, and stop raising code.__init__ events for every unmarshalled code object. Directly instantiated code objects will continue to raise an event, and audit event handlers should inspect or collect the raw marshal data. This reduces a significant performance overhead when loading from .pyc files.
- bpo-44394: Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix for the CVE-2013-0340 “Billion Laughs” vulnerability. This copy is most used on Windows and macOS.
- bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of
and
characters to avoid (unlikely) command injection
Core and Builtins:
- bpo-45018: Fixed pickling of range iterators that iterated for over 2**32 times
- bpo-44962: Fix a race in WeakKeyDictionary, WeakValueDictionary and WeakSet when two threads attempt to commit the last pending removal. This fixes asyncio.create_task and fixes a data loss in asyncio.run where shutdown_asyncgens is not run
- bpo-44954: Fixed a corner case bug where the result of float.fromhex('0x.8p-1074') was rounded the wrong way.
- bpo-44947: Refine the syntax error for trailing commas in import statements. Patch by Pablo Galindo.
- bpo-44698: Restore behaviour of complex exponentiation with integer-valued exponent of type float or complex.
- bpo-44885: Correct the ast locations of f-strings with format specs and repeated expressions. Patch by Pablo Galindo
- bpo-44872: Use new trashcan macros (Py_TRASHCAN_BEGIN/END) in frameobject.c instead of the old ones (Py_TRASHCAN_SAFE_BEGIN/END).
- bpo-33930: Fix segmentation fault with deep recursion when cleaning method objects. Patch by Augusto Goulart and Pablo Galindo.
- bpo-25782: Fix bug where PyErr_SetObject hangs when the current exception has a cycle in its context chain.
- bpo-44856: Fix reference leaks in the error paths of update_bases() and __build_class__. Patch by Pablo Galindo.
- bpo-44698: Fix undefined behaviour in complex object exponentiation.
- bpo-44562: Remove uses of PyObject_GC_Del() in error path when initializing types.GenericAlias.
- bpo-44523: Remove the pass-through for hash() of weakref.proxy objects to prevent unintended consequences when the original referred object dies while the proxy is part of a hashable object. Patch by Pablo Galindo.
- bpo-44472: Fix ltrace functionality when exceptions are raised. Patch by Pablo Galindo
- bpo-44184: Fix a crash at Python exit when a deallocator function removes the last strong reference to a heap type. Patch by Victor Stinner.
- bpo-39091: Fix crash when using passing a non-exception to a generator’s throw() method. Patch by Noah Oxer
Library:
- bpo-41620: run() now always return a TestResult instance. Previously it returned None if the test class or method was decorated with a skipping decorator.
- bpo-43913: Fix bugs in cleaning up classes and modules in unittest:
- Functions registered with addModuleCleanup() were not called unless the user defines tearDownModule() in their test module.
- Functions registered with addClassCleanup() were not called if tearDownClass is set to None.
- Buffering in TestResult did not work with functions registered with addClassCleanup() and addModuleCleanup().
- Errors in functions registered with addClassCleanup() and addModuleCleanup() were not handled correctly in buffered and debug modes.
- Errors in setUpModule() and functions registered with addModuleCleanup() were reported in wrong order.
- And several lesser bugs.
- bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee.
- bpo-44449: Fix a crash in the signal handler of the faulthandler module: no longer modify the reference count of frame objects. Patch by Victor Stinner.
- bpo-44955: Method stopTestRun() is now always called in pair with method startTestRun() for TestResult objects implicitly created in run(). Previously it was not called for test methods and classes decorated with a skipping decorator.
- bpo-38956: argparse.BooleanOptionalAction’s default value is no longer printed twice when used with argparse.ArgumentDefaultsHelpFormatter.
- bpo-44581: Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0
- bpo-44849: Fix the os.set_inheritable() function on FreeBSD 14 for file descriptor opened with the O_PATH flag: ignore the EBADF error on ioctl(), fallback on the fcntl() implementation. Patch by Victor Stinner.
- bpo-44605: The @functools.total_ordering() decorator now works with metaclasses.
- bpo-44822: sqlite3 user-defined functions and aggregators returning strings with embedded NUL characters are no longer truncated. Patch by Erlend E. Aasland.
- bpo-44815: Always show loop= arg deprecations in asyncio.gather() and asyncio.sleep()
- bpo-44806: Non-protocol subclasses of typing.Protocol ignore now the __init__ method inherited from protocol base classes.
- bpo-44667: The tokenize.tokenize() doesn’t incorrectly generate a NEWLINE token if the source doesn’t end with a new line character but the last line is a comment, as the function is already generating a NL token. Patch by Pablo Galindo
- bpo-42853: Fix http.client.HTTPSConnection fails to download >2GiB data.
- bpo-44752: rcompleter does not call getattr() on property objects to avoid the side-effect of evaluating the corresponding method.
- bpo-44720: weakref.proxy objects referencing non-iterators now raise TypeError rather than dereferencing the null tp_iternext slot and crashing.
- bpo-44704: The implementation of collections.abc.Set._hash() now matches that of frozenset.__hash__().
- bpo-44666: Fixed issue in compileall.compile_file() when sys.stdout is redirected. Patch by Stefan Hölzl.
- bpo-40897: Give priority to using the current class constructor in inspect.signature(). Patch by Weipeng Hong.
- bpo-44608: Fix memory leak in _tkinter._flatten() if it is called with a sequence or set, but not list or tuple.
- bpo-41928: Update shutil.copyfile() to raise FileNotFoundError instead of confusing IsADirectoryError when a path ending with a os.path.sep does not exist; shutil.copy() and shutil.copy2() are also affected.
- bpo-44566: handle StopIteration subclass raised from @contextlib.contextmanager generator
- bpo-44558: Make the implementation consistency of indexOf() between C and Python versions. Patch by Dong-hee Na.
- bpo-41249: Fixes TypedDict to work with typing.get_type_hints() and postponed evaluation of annotations across modules.
- bpo-44461: Fix bug with pdb’s handling of import error due to a package which does not have a __main__ module
- bpo-42892: Fixed an exception thrown while parsing a malformed multipart email by email.message.EmailMessage.
- bpo-27827: pathlib.PureWindowsPath.is_reserved() now identifies a greater range of reserved filenames, including those with trailing spaces or colons.
- bpo-34266: Handle exceptions from parsing the arg of pdb’s run/restart command.
- bpo-27334: The sqlite3 context manager now performs a rollback (thus releasing the database lock) if commit failed. Patch by Luca Citi and Erlend E. Aasland.
- bpo-43853: Improved string handling for sqlite3 user-defined functions and aggregates:
- It is now possible to pass strings with embedded null characters to UDFs
- Conversion failures now correctly raise MemoryError
- Patch by Erlend E. Aasland.
- bpo-43048: Handle RecursionError in TracebackException’s constructor, so that long exceptions chains are truncated instead of causing traceback formatting to fail.
- bpo-41402: Fix email.message.EmailMessage.set_content() when called with binary data and 7bit content transfer encoding.
- bpo-32695: The compresslevel and preset keyword arguments of tarfile.open() are now both documented and tested.
- bpo-34990: Fixed a Y2k38 bug in the compileall module where it would fail to compile files with a modification time after the year 2038.
- bpo-38840: Fix test___all__ on platforms lacking a shared memory implementation.
- bpo-30256: Pass multiprocessing BaseProxy argument manager_owned through AutoProxy.
- bpo-27513: email.utils.getaddresses() now accepts email.header.Header objects along with string values. Patch by Zackery Spytz.
- bpo-33349: lib2to3 now recognizes async generators everywhere.
- bpo-29298: Fix TypeError when required subparsers without dest do not receive arguments. Patch by Anthony Sottile.
Documentation:
- bpo-44903: Removed the othergui.rst file, any references to it, and the list of GUI frameworks in the FAQ. In their place I’ve added links to the Python Wiki page on GUI frameworks.
- bpo-44693: Update the definition of __future__ in the glossary by replacing the confusing word “pseudo-module” with a more accurate description
- bpo-35183: Add typical examples to os.path.splitext docs
- bpo-30511: Clarify that shutil.make_archive() is not thread-safe due to reliance on changing the current working directory
- bpo-44561: Update of three expired hyperlinks in Doc/distributing/index.rst: “Project structure”, “Building and packaging the project”, and “Uploading the project to the Python Packaging Index”.
- bpo-42958: Updated the docstring and docs of filecmp.cmp() to be more accurate and less confusing especially in respect to shallow arg.
- bpo-44558: Match the docstring and python implementation of countOf() to the behavior of its c implementation
- bpo-44544: List all kwargs for textwrap.wrap(), textwrap.fill(), and textwrap.shorten(). Now, there are nav links to attributes of TextWrap, which makes navigation much easier while minimizing duplication in the documentation.
- bpo-38062: Clarify that atexit uses equality comparisons internally
- bpo-43066: Added a warning to zipfile docs: filename arg with a leading slash may cause archive to be un-openable on Windows systems
- bpo-27752: Documentation of csv.Dialect is more descriptive
- bpo-44453: Fix documentation for the return type of sysconfig.get_path()
- bpo-39498: Add a “Security Considerations” index which links to standard library modules that have explicitly documented security considerations
- bpo-33479: Remove the unqualified claim that tkinter is threadsafe. It has not been true for several years and likely never was. An explanation of what is true may be added later, after more discussion, and possibly after patching _tkinter.c,
Tests:
- bpo-25130: Add calls of gc.collect() in tests to support PyPy
- bpo-45011: Made tests relying on the _asyncio C extension module optional to allow running on alternative Python implementations. Patch by Serhiy Storchaka
- bpo-44949: Fix auto history tests of test_readline: sometimes, the newline character is not written at the end, so don’t expect it in the output
- bpo-44852: Add ability to wholesale silence DeprecationWarnings while running the regression test suite
- bpo-40928: Notify users running test_decimal regression tests on macOS of potential harmless “malloc can’t allocate region” messages spewed by test_decimal
- bpo-44734: Fixed floating point precision issue in turtle tests
- bpo-44708: Regression tests, when run with -w, are now re-running only the affected test methods instead of re-running the entire test file
- bpo-30256: Add test for nested queues when using multiprocessing shared objects AutoProxy[Queue] inside ListProxy and DictProxy
Build:
- bpo-44535: Enable building using a Visual Studio 2022 install on Windows
- bpo-43298: Improved error message when building without a Windows SDK installed
Windows:
- bpo-45007: Update to OpenSSL 1.1.1l in Windows build
- bpo-44572: Avoid consuming standard input in the platform module