這是歷史版本頁面 — 看 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.5.2.amd64.exe · 28.8 MB · 連結指向軟體原廠
版本紀錄
- 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:
Core and Builtins:
- Update Windows builds to use OpenSSL 1.0.2h.
Tests:
- Ubuntu’s openssl OP_NO_SSLv3 is forced on by default; fix test.
IDLE:
- Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2.
Core and Builtins:
- Fixed SystemError if a custom opener (for open()) returns a negative number without setting an exception.
- Fixed TypeError when frame.f_trace is set to None. Patch by Xavier de Gaye.
- Fixed possible refleaks in failing Py_BuildValue() with the “N” format unit.
- Fix possible refleak when creating a function with annotations.
- Fixed bytearray.remove() for values greater than 127. Patch by Joe Jevnik.
- int.from_bytes() no longer bypasses constructors for subclasses.
- gc.get_objects() no longer contains a broken tuple with NULL pointer.
- Use RawConfigParser for .pypirc parsing, removing support for interpolation unintentionally added with move to Python 3. Behavior no longer does any interpolation in .pypirc files, matching behavior in Python 2.7 and Setuptools 19.0.
- Make the builtin slice type support cycle collection.
- super.__init__ no longer leaks memory if called multiple times. NOTE: A direct call of super.__init__ is not endorsed!
- PYTHONIOENCODING now has priority over locale in setting the error handler for stdin and stdout.
- Fixed crash on iterating exhausting iterators. Affected classes are generic sequence iterators, iterators of str, bytes, bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding views and os.scandir() iterator.
- If coding cookie is specified multiple times on a line in Python source code file, only the first one is taken to account.
- Fix str.translate() when string is ASCII and first replacements removes character, but next replacement uses a non-ASCII character or a string longer than 1 character. Regression introduced in Python 3.5.0.
- Ensure exception reports from PyErr_Display() and PyErr_WriteUnraisable() are sensible even when formatting them produces secondary errors. This affects the reports produced by sys.__excepthook__() and when __del__() raises an exception.
- Correct behavior to reject comma as a legal character for cookie names.
- Avoid masking the original TypeError exception when using star (*) unpacking in function calls. Based on patch by Hagen Fürstenau and Daniel Urban.
- Fix the doc comment for FileFinder.find_spec().
- Add a new private _PyThreadState_UncheckedGet() function to get the current Python thread state, but don’t issue a fatal error if it is NULL. This new function must be used instead of accessing directly the _PyThreadState_Current variable. The variable is no more exposed since Python 3.5.1 to hide the exact implementation of atomic C types, to avoid compiler issues.
- Deque.insert() gave odd results for bounded deques that had reached their maximum size. Now an IndexError will be raised when attempting to insert into a full deque.
- When compiling code, don’t merge constants if they are equal but have a different types. For example, f1, f2 = lambda: 1, lambda: 1.0 is now correctly compiled to two different functions: f1() returns 1 (int) and f2() returns 1.0 (int), even if 1 and 1.0 are equal.
- [UPDATE] Comment out the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects.
- Disallowed null characters in the type name.
- Fix segfault when an invalid nonlocal statement binds a name starting with two underscores.
- Instances of extension types with a state that aren’t subclasses of list or dict and haven’t implemented any pickle-related methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__, or __getstate__), can no longer be pickled. Including memoryview.
- Massive replacing unsafe attribute setting code with special macro Py_SETREF.
- Special method __bytes__() now works in str subclasses.
- __sizeof__ methods of builtin types now use dynamic basic size. This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
- Fixed problem with in-place string concatenation and utf-8 cache.
- Mention PEP 420 in the importlib docs.
- Fixed crash in object.__reduce__() if slot name is freed inside __getattr__.
- Fixed crash on converting objects with special methods __bytes__, __trunc__, and __float__ returning instances of subclasses of bytes, int, and float to subclasses of bytes, int, and float correspondingly.
- Fix semantic bugs when using binary operators with dictionary views and tuples.
- Fix possible integer overflow and heap corruption in zipimporter.get_data().
- Fix TAB key behaviour in REPL with readline.
- Raise a RuntimeError when a coroutine object is awaited more than once.
- Update the __aiter__ protocol: instead of returning an awaitable that resolves to an asynchronous iterator, the asynchronous iterator should be returned directly. Doing the former will trigger a PendingDeprecationWarning.
Library:
- Update expat to 2.1.1, fixes CVE-2015-1283.
- Fix TLS stripping vulnerability in smptlib, CVE-2016-0772. Reported by Team
Oststrom:
- Implement missing IPv4Address.is_global property. It was documented since 07a5610bae9d. Initial patch by Roger Luethi.
- distutils register command now decodes HTTP responses correctly.
Initial patch by ingrid.
- A new version of typing.py provides several new classes and features: @overload outside stubs, Reversible, DefaultDict, Text, ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug fixes (note that some of the new features are not yet implemented in mypy or other static analyzers). Also classes for PEP 492 (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact they made it into 3.5.1 but were never mentioned).
- Stop http.server.BaseHTTPRequestHandler.send_error() from sending a message body for 205 Reset Content. Also, don’t send Content header fields in responses that don’t have a body. Patch by Susumu Koshiba.
- Fix the “platform” module to tolerate when sys.version contains truncated build information.
- On Linux, os.urandom() now calls getrandom() with GRND_NONBLOCK to fall back on reading /dev/urandom if the urandom entropy pool is not initialized yet. Patch written by Colm Buckley.
- In the zlib module, allow decompressing raw Deflate streams with a predefined zdict. Based on patch by Xiang Zhang.
- Fix wsgiref.simple_server.WSGIRequestHandler to completely write data to the client. Previously it could do partial writes and truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout doing partial writes, but this is deprecated.
- Add __all__ to string. Patch by Emanuel Barry.
- subprocess.Popen.communicate now correctly ignores BrokenPipeError when the child process dies before .communicate() is called in more/all circumstances.
- distutils.upload now correctly handles HTTPError. Initial patch by Claudiu Popa.
- Fix SSLContext._load_windows_store_certs fails with PermissionError
- Avoid creating duplicate filters when using filterwarnings and simplefilter. Based on patch by Alex Shkop.
- Fix os.set_inheritable() on Android, ioctl() is blocked by SELinux and fails with EACCESS. The function now falls back to fcntl(). Patch written by Michal Bednarski.
- Fix infinite recursion using typing.py. Thanks to Kalle Tuure!
- Fix urllib.request redirect handling when the target only has a query string. Original fix by Ján Janech.
- The “urllib.request” module now percent-encodes non-ASCII bytes found in redirect target URLs. Some servers send Location header fields with non-ASCII bytes, but “http.client” requires the request target to be ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on patch by Christian Heimes.
- Honor debuglevel flag in urllib.request.HTTPHandler. Patch contributed by Chi Hsuan Yen.
- In the subprocess module, allow stderr to be redirected to stdout even when stdout is not redirected. Patch by Akira Li.
- mock_open ‘files’ no longer error on readline at end of file. Patch from Yolanda Robla.
- Fixed leaking a userptr in curses panel destructor.
- Removed unnecessary, and ignored, call to sum of squares helper in statistics.pvariance.
- The modulefinder module now supports extended opcode arguments.
- Fixed crashes related to directly created instances of types in _tkinter and curses.panel modules.
- weakref.ref() no longer silently ignores keyword arguments. Patch by Georg Brandl.
- xmlrpc now raises ResponseError on unsupported type tags instead of silently return incorrect result.
- Fixed the comparison of plistlib.Data with other types.
- Fix an uninitialized variable in ctypes.util.
- The bug only occurs on SunOS when the ctypes implementation searches for the crle program. Patch by Xiang Zhang. Tested on SunOS by Kees Bos.
- In urllib.request, change the proxy bypass host checking against no_proxy to be case-insensitive, and to not match unrelated host names that happen to have a bypassed hostname as a suffix. Patch by Xiang Zhang.
- recursive_repr() now sets __qualname__ of wrapper. Patch by Xiang Zhang.
- urllib.request will prefer lower_case proxy environment variables over UPPER_CASE or Mixed_Case ones. Patch contributed by Hans-Peter Jansen.
- assertSequenceEqual() now correctly outputs non-stringified differing items (like bytes in the -b mode). This affects assertListEqual() and assertTupleEqual().
- Remove “will be removed in Python 3.7” from deprecation messages of platform.dist() and platform.linux_distribution(). Patch by Kumaripaba Miyurusara Athukorala.
- itemgetter, attrgetter and methodcaller objects no longer silently ignore keyword arguments.
- Disassembling a class now disassembles class and static methods. Patch by Xiang Zhang.
- Fix error handling in shutil.get_terminal_size(), catch AttributeError instead of NameError. Patch written by Emanuel Barry.
- tarfile’s ustar and gnu formats now correctly calculate name and link field limits for multibyte character encodings like utf-8.
- Fix directory traversal vulnerability with http.server on Windows. This fixes a regression that was introduced in 3.3.4rc1 and 3.4.0rc1. Based on patch by Philipp Hagemeister.
- Stop encoding Latin-1-ized WSGI paths with UTF-8. Patch by Anthony Sottile.
- Fix os.urandom() on Solaris 11.3 and newer when reading more than 1,024 bytes: call getrandom() multiple times with a limit of 1024 bytes per call.
- Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola’.
- Add .csv to mimetypes.types_map. Patch by Geoff Wilson.
- Fixed Y2038 problem in loading binary PLists.
- Handle terminal resizing with Readline 6.3+ by installing our own SIGWINCH handler. Patch by Eric Price.
- In http.server, respond with “413 Request header fields too large” if there are too many header fields to parse, rather than killing the connection and raising an unhandled exception. Patch by Xiang Zhang.
- Change BufferedReader.writable() and BufferedWriter.readable() to always return False.
- Fix a regression in mock.MagicMock. _Call is a subclass of tuple (changeset 3603bae63c13 only works for classes) so we need to implement __ne__ ourselves. Patch by Andrew Plummer.
- Raise ValueError rather than SystemError when a negative length is passed to SSLSocket.recv() or read().
- Fix SSL recv(0) and read(0) methods to return zero bytes instead of up to 1024.
- Fixed a bug in datetime.astimezone() method.
- warnings.formatwarning() now catches exceptions on linecache.getline(...) to be able to log ResourceWarning emitted late during the Python shutdown process.
- Ctrl+C during Readline history search now cancels the search mode when compiled with Readline 7.
- Avoid potential ValueError in BaseHandler.start_response. Initial patch by Peter Inglesby.
- ssl.py _load_windows_store_certs fails if windows cert store is empty. Patch by Baji.
- Fix pyclbr.readmodule() and pyclbr.readmodule_ex() to support importing packages.
- Account for remaining Content-Length in HTTPResponse.readline() and read1(). Based on patch by Silent Ghost. Also document that HTTPResponse now supports these methods.
- Handle sockets in directories unittest discovery is scanning. Patch from Victor van den Elzen.
- cookiejar.http2time() now returns None if year is higher than datetime.MAXYEAR.
- Fixes platform module detection of Windows Server
- Fixed parsing time in week 0 before Jan 1. Original patch by Tamás Bence Gedai.
- Invoking Path.owner() and Path.group() on Windows now raise NotImplementedError instead of ImportError.
- Fixed the keys() method for Canvas and Scrollbar widgets.
- Got rid of excessive buffering in the fileinput module. The bufsize parameter is no longer used.
- Fix UnboundLocalError in AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu Dupuy.
- Fixed pickling and copying the accumulate() iterator with total is None.
- Fixed debugging output for regular expressions with the (?x) flag.
- Fixed the subnets() methods in IP network classes for the case when resulting prefix length is equal to maximal prefix length. Based on patch by Xiang Zhang.
- Remove the file if the internal open() call in NamedTemporaryFile() fails. Patch by Silent Ghost.
- Fix XML-RPC client to retry when the server shuts down a persistent connection. This was a regression related to the new http.client.RemoteDisconnected exception in 3.5.0a4.
- Leading