தொகுதி பாடங்கள் (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 போன்ற வெளிப்புற நிலையான பகுப்பாய்வுக் கருவியை இயக்க வேண்டும்.
நீங்களே முயற்சி செய்து பாருங்கள்
ஒவ்வொரு உறுப்புக்கும் 2 ஆல் பெருக்கப்படும் பட்டியலை வழங்கும் `double(numbers: list[int]) -> list[int]` செயல்பாட்டை வரையறுக்கவும். அதை [1, 2, 3] உடன் அழைத்து `r` க்கு ஒதுக்கவும். `r` மதிப்பிடவும்.
குறிப்பைக் காட்டு
ஒரு பட்டியல் புரிதல் அல்லது a for loop ஐப் பயன்படுத்தவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
வரையறுக்கவும் `first_or_none(items: list[int]) -> int | பட்டியல் காலியாக இல்லாவிட்டால், முதல் உறுப்பை வழங்கும் எதுவும் இல்லை, இல்லையெனில் எதுவும் இல்லை. `a = first_or_none([10, 20])` மற்றும் `b = first_or_none([])` ஆகியவற்றை ஒதுக்கவும். `(a, b)` மதிப்பிடவும்.
குறிப்பைக் காட்டு
பட்டியல் காலியாக இல்லாதபோது `உருப்படிகள்` உண்மையாக இருக்கும்.
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 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்