मॉड्यूल पाठ (1/4)
संकेत टाइप करें: एनोटेटिंग प्रकार
प्रकार संकेत (प्रकार एनोटेशन) वैकल्पिक घोषणाएँ हैं जो कहती हैं "इस वेरिएबल/पैरामीटर का प्रकार X है"। पायथन उन्हें रनटाइम पर सत्यापित नहीं करता है: वे आपके, आपके संपादक (स्वतः पूर्ण!) और mypy या जैसे टूल के लिए हैं पाइराइट जो स्थैतिक प्रकार की जाँच करता है।
चरों की व्याख्या करना
nome: str = "Ada"
anni: int = 36
attivo: bool = True
prezzi: list[float] = [1.2, 3.4]सिंटैक्स name: type = value है। मूल्य के बिना यह एक शुद्ध घोषणा है:
risultato: int # nessuna assegnazione, solo "annuncio del tipo"व्याख्यात्मक कार्य
def saluta(nome: str, urlante: bool = False) -> str:
s = f"Ciao {nome}"
return s.upper() if urlante else s
def somma(numeri: list[int]) -> int:
return sum(numeri)सिंटैक्स: प्रत्येक पैरामीटर के लिए param: type, रिटर्न के लिए -> type।
एक फ़ंक्शन जो कुछ भी नहीं लौटाता वह -> None का उपयोग करता है।
अंतर्निहित सामान्य प्रकार (पायथन 3.9+)
nomi: list[str] = ["a", "b"]
mappa: dict[str, int] = {"x": 1}
coppia: tuple[int, str] = (1, "ok")
unici: set[int] = {1, 2, 3}वैकल्पिक और संघ
एक मान जो None हो सकता है:
def trova_utente(id: int) -> str | None:
if id == 1:
return "Ada"
return NoneX | None आधुनिक सिंटैक्स है (पायथन 3.10+)। समतुल्य: Optional[X] typing से।
अनेक प्रकार की यूनियनों के लिए: int | str | float।
टाइपिंग: उपयोगी उपकरण
from typing import Any, Callable
def applica(f: Callable[[int], int], x: int) -> int:
return f(x)
valore: Any = "qualunque cosa" # disabilita il checkAny= "चेक न करें" (संयम से उपयोग करें)।Callable[[arg1, arg2], return]= एक फ़ंक्शन जो उन मापदंडों को लेता है और उस प्रकार को लौटाता है।
mypy: टाइप-चेकर
आप mypy इंस्टॉल करते हैं, mypy file.py चलाते हैं, और यह आपको बताता है कि क्या प्रकार पंक्तिबद्ध हैं:
$ mypy script.py
script.py:5: error: Argument 1 to "somma" has incompatible type "str"; expected "int"Mypy के साथ प्रकारों की जाँच करना
पायथन के प्रकार के संकेत दुभाषिया द्वारा रनटाइम पर लागू नहीं किए जाते हैं; निष्पादन के दौरान उन्हें नजरअंदाज कर दिया जाता है। प्रकार की शुद्धता को सत्यापित करने के लिए, आपको अपने टर्मिनल में mypy script.py कमांड निष्पादित करके mypy जैसा बाहरी स्थैतिक विश्लेषण उपकरण चलाना होगा।
खुद कोशिश करना
एक फ़ंक्शन `double(numbers: list[int]) -> list[int]` को परिभाषित करें जो प्रत्येक तत्व को 2 से गुणा करके एक सूची लौटाता है। इसे [1, 2, 3] के साथ कॉल करें और `r` को असाइन करें। `r` का मूल्यांकन करें.
संकेत दिखाएँ
सूची समझ या फॉर लूप का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`first_or_none(आइटम: सूची[int]) -> int | को परिभाषित करें None` जो सूची गैर-रिक्त होने पर पहला तत्व लौटाता है, अन्यथा कोई नहीं। `a =first_or_none([10, 20])` और `b =first_or_none([])` असाइन करें। `(ए, बी)` का मूल्यांकन करें।
संकेत दिखाएँ
जब सूची खाली न हो तो `यदि आइटम` सत्य है।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Write a function `double_value(n: int) -> int` that takes an integer, multiplies it by 2, and returns the result. Make sure to specify type hints for both the parameter and the return value. Finally, evaluate `double_value(5)`.
संकेत दिखाएँ
पैरामीटर के रूप में n: int और फ़ंक्शन हस्ताक्षर के बाद -> int का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है