# Python versions: Python 2 और 3, 3.10–3.15 में क्या नया है और कौन सा version install करें

URL: https://skillaria.top/hi/guides/python/python-versions

चालू शाखा Python 3 है, और ताज़ा stable version Python 3.15 है (9 अक्टूबर 2026 को release हुआ); Python 2 को 2020 से support नहीं मिलता। नया version हर अक्टूबर में आता है और लगभग पाँच साल तक fixes पाता है, इसलिए नए projects के लिए ताज़ा 3.x install करें, और अपना version python3 --version से देखें।

आज भाषा की सक्रिय शाखा एक ही है — Python 3। ताज़ा stable version Python 3.15 है, जो 9 अक्टूबर 2026 को आया, और Python 2 आधिकारिक रूप से 2020 में ही support से बाहर हो गया। नीचे देखेंगे कि Python versions में क्या अंतर है, 3.10–3.15 में हर version में क्या आया, कौन सा install करें, और आपके computer पर कौन सा लगा है यह कैसे पता करें।

## Python versions कैसे बने हैं

Version नंबर तीन संख्याओं से बनता है: `3.15.0`। पहली संख्या major version (भाषा की शाखा) है, दूसरी minor version है, जिसमें नई सुविधाएँ आती हैं, और तीसरी patch संख्या है, जिसमें सिर्फ़ bug fixes होते हैं। जब लोग “Python versions” कहते हैं, तो आम तौर पर minor versions का मतलब होता है: 3.10, 3.11, 3.12 और इसी तरह।

2019 से एक साल का चक्र चलता है (PEP 602): नया minor version हर अक्टूबर में आता है। Release से लगभग छह महीने पहले alpha, फिर beta और release candidates आते हैं, और release के बाद 3.15.1, 3.15.2 जैसे fixes। इनके बीच अपडेट करना सुरक्षित है: patch versions में भाषा का व्यवहार नहीं बदलता।

खोज में अक्सर यह उलझन होती है: “python 311” और “python 3.11” एक ही चीज़ है, यानी version 3.11। यह दशमलव संख्या नहीं है, इसलिए 3.10, 3.9 से नया है, और 3.15, 3.2 से नया है।

## Python 2 और Python 3: क्या अंतर है

Python 3 2008 में आया, और पुरानी गलतियाँ सुधारने के लिए उसने जान-बूझकर backward compatibility तोड़ी। इसलिए Python 2 का कोड Python 3 में बिना बदलाव के अक्सर नहीं चलता। दूसरी शाखा का आख़िरी version 2.7 था, जिसका support 1 जनवरी 2020 को खत्म हुआ; अंतिम release 2.7.18 अप्रैल 2020 में आया।

| क्या | Python 2 | Python 3 |
| --- | --- | --- |

| Print | `print "hi"` — statement | `print("hi")` — function |

| Strings | डिफ़ॉल्ट रूप से bytes, Unicode — `u"..."` | `str` — हमेशा Unicode, bytes — `bytes` |

| Division | `7 / 2` देता है 3 | `7 / 2` देता है 3.5, integer भाग — `7 // 2` |

| Input | `raw_input()` | `input()` |

| Ranges | `range` list बनाता है, `xrange` — lazy | `range` lazy है |

| Support | 2020 से नहीं | हर साल नया version |

अगर आपको कोई tutorial या जवाब मिले जिसमें `print` बिना कोष्ठक के लिखा है, तो वह Python 2 है और सामग्री पुरानी है। दूसरी शाखा अब सीखने का कोई कारण नहीं: नए systems में वह install नहीं होती, libraries उसका support छोड़ चुकी हैं, और उसकी जानकारी बस पुराने कोड को नए version में ले जाने के लिए चाहिए।

## Python 3.10–3.15 में क्या नया है

नीचे हर version की वे बातें हैं जो रोज़ के कोड को बदलती हैं। पूरी सूची आधिकारिक documentation के What's New भाग में है।

### Python 3.10 (अक्टूबर 2021)

- Pattern matching `match`/`case` (PEP 634) — `if`/`elif` की लड़ी की जगह data structures को परखना।
- Types का union सीधी रेखा से: `Optional[int]` की जगह `int | None` (PEP 604)।
- एक ही `with` में कई context managers, कोष्ठकों के भीतर।
- Syntax errors के संदेश कहीं ज़्यादा साफ़।

```
def describe(point):
    match point:
        case (0, 0):
            return "निर्देशांक का मूल बिंदु"
        case (x, 0):
            return f"X अक्ष पर: {x}"
        case _:
            return "कहीं और"

print(describe((3, 0)))  # X अक्ष पर: 3
```

### Python 3.11 (अक्टूबर 2022)

- गति: Faster CPython परियोजना ने interpreter को औसतन लगभग एक-चौथाई तेज़ किया, कुछ कामों में ज़्यादा।
- Traceback में सटीक निशान: `^^^^` के तीर बताते हैं कि line में कौन सा expression गिरा (PEP 657)।
- Exception groups और `except*` (PEP 654), और `add_note()` से exceptions में टिप्पणियाँ।
- TOML पढ़ने के लिए `tomllib` module — उदाहरण के लिए `pyproject.toml`।

### Python 3.12 (अक्टूबर 2023)

- Generics का नया syntax: `def first[T](items: list[T]) -> T` और type aliases के लिए `type` कीवर्ड (PEP 695)।
- f-strings को पूरी grammar मिली (PEP 701): भीतर वही quotes, नई lines और comments इस्तेमाल हो सकते हैं।
- Standard library से पुराना `distutils` हटा दिया गया।
- Errors में और विस्तृत सुझाव, जैसे “क्या आपने module import करना भूल गए?”।

```
type Pair = tuple[int, int]

def first[T](items: list[T]) -> T:
    return items[0]

songs = ["a", "b"]
print(f"पहला: {first(songs)!r}, कुल {len(songs)}")
print(f"{"कोटेशन के भीतर"}")  # 3.12 से काम करता है
```

“f-strings किस version से हैं” वाले आम सवाल पर: f-strings खुद Python 3.6 में आ गए थे, और curly braces के भीतर quotes व नई lines की आज़ादी 3.12 ने जोड़ी।

### Python 3.13 (अक्टूबर 2024)

- नया interactive console: रंग, बहु-पंक्ति संपादन, history, और बिना कोष्ठक के `exit` व `help` commands।
- प्रायोगिक free-threaded build बिना GIL के (PEP 703) और प्रायोगिक JIT compiler (PEP 744)।
- “मृत” standard modules हटाए गए — जैसे `cgi` और `telnetlib` (PEP 594)।
- नए versions के bug fixes का समय बढ़कर दो साल हुआ।

### Python 3.14 (अक्टूबर 2025)

- Template strings, t-strings: `t"नमस्ते, {name}"` तैयार string नहीं, बल्कि template object लौटाते हैं, जिसे सुरक्षित रूप से संभाला जा सकता है (PEP 750)।
- Annotations का देर से मूल्यांकन (PEP 649) — फ़ाइल में नीचे घोषित types से कम दिक्कत।
- बिना GIL वाला build प्रायोगिक नहीं रहा और उसे आधिकारिक support मिला।
- Module `compression.zstd`, console में syntax highlighting, और बिना कोष्ठक के `except A, B:`।

### Python 3.15 (9 अक्टूबर 2026)

- Lazy import `lazy import` (PEP 810): module पहली बार इस्तेमाल होने पर लोड होता है, शुरू में नहीं। Course के माप में `lazy import pandas` वाला script 280 ms की जगह 14 ms में शुरू हुआ।
- Built-in अपरिवर्तनीय dictionary `frozendict` (PEP 814)।
- List comprehensions में unpacking: `[*g for g in groups]` (PEP 798)।
- Standard library में sampling profiler Tachyon (PEP 799)।
- Files के साथ काम करते समय डिफ़ॉल्ट UTF-8 (PEP 686) — Windows पर encoding के आश्चर्य ख़त्म।
- Error संदेशों में नए “Did you mean” सुझाव।

```
lazy import json                    # PEP 810
cfg = frozendict(limit=500)         # PEP 814
flat = [*g for g in [[1, 2], [3]]]  # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py   # PEP 799, Tachyon
```

यह कोड सिर्फ़ 3.15 पर चलेगा: पुराने versions में `lazy import` और comprehension में unpacking `SyntaxError` देते हैं, और `frozendict` — `NameError`।

## Python versions के support की अवधि

हर version लगभग पाँच साल जीता है। पहले उसे नियमित bug fixes और नियमित patch releases मिलते हैं (3.13 से — दो साल), फिर अवधि के अंत तक सिर्फ़ security fixes। उसके बाद version end-of-life माना जाता है: उसकी कमज़ोरियाँ अब कोई ठीक नहीं करता।

| Version | Release | Support कब खत्म | अक्टूबर 2026 में स्थिति |
| --- | --- | --- | --- |

| 2.7 | 2010 | जनवरी 2020 | support नहीं |

| 3.9 | अक्टूबर 2020 | अक्टूबर 2025 | support नहीं |

| 3.10 | अक्टूबर 2021 | अक्टूबर 2026 | support खत्म होने वाला है |

| 3.11 | अक्टूबर 2022 | अक्टूबर 2027 | सिर्फ़ security |

| 3.12 | अक्टूबर 2023 | अक्टूबर 2028 | सिर्फ़ security |

| 3.13 | अक्टूबर 2024 | अक्टूबर 2029 | bug fixes |

| 3.14 | अक्टूबर 2025 | अक्टूबर 2030 | bug fixes |

| 3.15 | अक्टूबर 2026 | अक्टूबर 2031 | सबसे नया |

हर branch की ताज़ा स्थिति Python Developer's Guide के “Status of Python versions” पेज पर छपती है। किसी लंबे समय चलने वाले project के लिए version चुनने से पहले वहाँ ज़रूर देखें।

## कौन सा Python version install करें

सीखने और नए projects के लिए ताज़ा stable version लें, अभी Python 3.15। “मैं परखे हुए 3.10 लूँगा” वाला तर्क काम नहीं करता: अक्टूबर 2026 में वह security fixes भी पाना बंद कर देता है, और जो version जा रहा है उसमें सीखना बाद में दोबारा सीखने का कारण बनता है। Python 3 के भीतर compatibility अच्छी है: पुराने version का कोड लगभग हमेशा नए पर चलता है, उल्टा नहीं।

अपवाद होते हैं। अगर ज़रूरी library ने नए version के लिए wheels अभी नहीं निकाले (ऐसा अक्टूबर release के बाद के हफ़्तों में C extensions वाले packages के साथ होता है), तो पिछला — 3.14 — लें। लंबे समय चलने वाले server पर distribution के repositories के version या uv से चुना गया version देखें। मुख्य नियम: ऐसा version न चुनें जिसके support खत्म होने में एक साल से कम बचा हो।

| स्थिति | क्या install करें |
| --- | --- |

| शून्य से भाषा सीख रहे हैं | ताज़ा stable (3.15) |

| नया project | ताज़ा या उससे पिछला |

| Library नए version को support नहीं करती | पिछला minor version |

| पुराना project 3.10 या उससे नीचे पर | support वाले version पर जाने की योजना बनाएँ |

| Python 2 का कोड | Python 3 पर ले जाएँ |

## अपना Python version कैसे जानें

Terminal में एक command काफ़ी है। macOS और Linux पर आम तौर पर `python3` चलता है, Windows पर — `python` या launcher `py`।

```
$ python3 --version
Python 3.12.3        # पुराना version — अपडेट का समय है

$ python3 -V
Python 3.15.0
```

Windows पर launcher सारे installed versions दिखाता है, और uv उन versions को जो वह देख सकता है या install कर सकता है:

```
py --list
uv python list
```

Program के भीतर से version `sys` module देता है। Tuple `sys.version_info` की तुलना करना सुविधाजनक है, ताकि script ख़ुद जाँच ले कि interpreter उसके लायक है या नहीं:

```
import sys

print(sys.version)            # पूरी string, build की तारीख के साथ
print(sys.version_info[:3])   # उदाहरण: (3, 15, 0)

if sys.version_info < (3, 10):
    raise SystemExit("Python 3.10 या नया चाहिए")
```

अगर `python3 --version` वह version नहीं दिखाता जो आपने install किया था, तो PATH में पहले कोई और interpreter मिल रहा है। कौन सा, यह `which python3` (macOS और Linux) या `where python` (Windows) से पता चलता है।

## एक computer पर कई versions

3.13 और 3.15 साथ-साथ रखना ठीक है: हर version अपने folder में लगता है। इन्हें uv से संभालना सबसे आसान है: `uv python install 3.15` version download करता है, और `uv python pin 3.15` उसे `.python-version` फ़ाइल में project से बाँध देता है। Linux पर system Python को हाथ से न छुएँ और न अपडेट करें — उस पर OS की utilities चलती हैं।

Project का न्यूनतम version `pyproject.toml` में `requires-python` field में लिखा जाता है। तब package installer अनुपयुक्त interpreter पर project install नहीं होने देता।

```
[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"
```

## निष्कर्ष

Python के चालू versions शाखा 3 के हैं, और उनमें सबसे नया 3.15 है, जिसमें lazy import, `frozendict` और डिफ़ॉल्ट UTF-8 है। Python 2 का support 2020 में खत्म हो गया, 3.10 अक्टूबर 2026 में support से बाहर होता है, इसलिए सीखना और नए projects शुरू करना ताज़ा version पर ही करें। अपना version जाँचने के लिए `python3 --version` चलाएँ। Course के हर विषय के अंत में “3.10–3.15 में क्या नया” वाला भाग है, ताकि version के बदलाव व्यवहार में समझ आएँ।

## FAQ

**Start menu में “IDLE Python 3.10 64-bit” क्या है?**

यह installer से python.org के साथ आने वाला सादा development environment है; नाम में interpreter का version और bit-संख्या लिखी होती है। अगर वहाँ 3.10 है, तो आपके पास ऐसा version है जिसका support खत्म हो रहा है — ताज़ा लगाना बेहतर है।

**क्या Python 3.12 को सीधे 3.15 पर अपडेट कर सकते हैं?**

Minor versions ऊपर नहीं लगते, बल्कि साथ-साथ लगते हैं: 3.15 install होने के बाद पुराना भी रहता है, और उसे अलग से हटाया जा सकता है। नए version के लिए libraries दोबारा install करें या virtual environment फिर से बनाएँ।

**64-bit और 32-bit version में क्या अंतर है?**

64-bit version ज़्यादा memory इस्तेमाल कर सकता है और आज के सभी आधुनिक computers के लिए ठीक है; 32-bit version बहुत पुराने systems के लिए ही लिया जाता है।

**Alpha और beta versions किसलिए होते हैं?**

ये अगले version की प्रारंभिक builds हैं, जो libraries और projects की परख के लिए होती हैं; सीखने और काम के लिए सिर्फ़ final releases लें।


---
Source: Skillaria.Top (https://skillaria.top)
