“`html
چیت شیت بخشهای مهم پایتون: ابزاری برای کدنویسی سریع
پایتون، زبان برنامهنویسی سطح بالا و چندمنظوره، به دلیل خوانایی بالا و سینتکس سادهاش، به یکی از محبوبترین زبانها در بین توسعهدهندگان تبدیل شده است. از توسعه وب و علم داده گرفته تا یادگیری ماشین و اتوماسیون، پایتون در حوزههای مختلفی کاربرد دارد. با این حال، به خاطر سپردن تمام دستورات، توابع و مفاهیم پایتون، به خصوص برای تازهکارها، میتواند چالشبرانگیز باشد. اینجاست که یک چیت شیت پایتون (Python Cheat Sheet) به کمک میآید. یک چیت شیت پایتون جامع و کاربردی، خلاصهای از مهمترین بخشهای زبان پایتون را در یک جا جمعآوری میکند و به شما امکان میدهد تا به سرعت به اطلاعات مورد نیاز خود دسترسی پیدا کنید و کدنویسی را با سرعت و دقت بیشتری انجام دهید. این چیت شیت که پیش روی شماست، به منظور ارائه یک مرجع سریع و کاربردی برای توسعهدهندگان پایتون، از مبتدی تا حرفهای، تهیه شده است. در این راهنما، به بررسی مهمترین بخشهای زبان پایتون، از انواع داده و عملگرها گرفته تا توابع و کلاسها، میپردازیم و مثالهایی را برای روشن شدن مفاهیم ارائه میدهیم.
چرا به یک چیت شیت پایتون نیاز داریم؟
در دنیای برنامهنویسی، سرعت و کارایی از اهمیت بالایی برخوردارند. یک چیت شیت پایتون میتواند به شما کمک کند تا:
- در زمان صرفهجویی کنید: به جای جستجو در مستندات یا اینترنت، به سرعت به دستورات و توابع مورد نیاز خود دسترسی پیدا کنید.
- از اشتباهات جلوگیری کنید: سینتکس صحیح دستورات را به خاطر بسپارید و از خطاهای رایج جلوگیری کنید.
- بهرهوری خود را افزایش دهید: کدنویسی را سریعتر و کارآمدتر انجام دهید.
- یادگیری را تسریع کنید: با مرور مداوم چیت شیت، مفاهیم و دستورات پایتون را بهتر یاد بگیرید.
- به عنوان یک مرجع سریع داشته باشید: در حین کدنویسی، به سرعت به اطلاعات مورد نیاز خود مراجعه کنید.
1. انواع داده در پایتون
پایتون از انواع داده مختلفی پشتیبانی میکند که هر کدام برای ذخیره و دستکاری انواع خاصی از دادهها استفاده میشوند. درک انواع داده و نحوه استفاده از آنها، برای نوشتن کد کارآمد و بدون خطا ضروری است.
1.1. انواع داده عددی
- int (عدد صحیح): برای نمایش اعداد صحیح مثبت و منفی، بدون اعشار، استفاده میشود.
x = 10 y = -5 print(type(x)) # Output: <class 'int'>
- float (عدد اعشاری): برای نمایش اعداد اعشاری، با دقت ممیز شناور، استفاده میشود.
pi = 3.14159 temperature = 25.5 print(type(pi)) # Output: <class 'float'>
- complex (عدد مختلط): برای نمایش اعداد مختلط، با قسمت حقیقی و موهومی، استفاده میشود.
z = 3 + 4j print(type(z)) # Output: <class 'complex'> print(z.real) # Output: 3.0 print(z.imag) # Output: 4.0
1.2. انواع داده متنی
- str (رشته): برای نمایش دنبالهای از کاراکترها، مانند حروف، اعداد و نمادها، استفاده میشود. رشتهها در پایتون غیرقابل تغییر (immutable) هستند.
name = "John Doe" message = 'Hello, world!' print(type(name)) # Output: <class 'str'> print(name[0]) # Output: J
1.3. انواع داده بولی
- bool (بولی): برای نمایش مقادیر درست (True) یا نادرست (False) استفاده میشود. این نوع داده معمولاً در عبارات شرطی و منطقی استفاده میشود.
is_active = True is_admin = False print(type(is_active)) # Output: <class 'bool'> print(is_active and is_admin) # Output: False
1.4. انواع داده دنبالهای
- list (لیست): یک مجموعه مرتب و قابل تغییر (mutable) از عناصر است. عناصر یک لیست میتوانند از انواع داده مختلف باشند.
my_list = [1, 2, "hello", 3.14] print(type(my_list)) # Output: <class 'list'> my_list[0] = 10 print(my_list) # Output: [10, 2, "hello", 3.14]
- tuple (تاپل): یک مجموعه مرتب و غیرقابل تغییر (immutable) از عناصر است. تاپلها معمولاً برای ذخیره مجموعههای داده ثابت استفاده میشوند.
my_tuple = (1, 2, "hello", 3.14) print(type(my_tuple)) # Output: <class 'tuple'> # my_tuple[0] = 10 # This will raise an error
- range (رنج): یک دنباله از اعداد صحیح است. رنجها معمولاً برای تکرار در حلقهها استفاده میشوند.
my_range = range(5) # Represents the sequence 0, 1, 2, 3, 4 print(type(my_range)) # Output: <class 'range'> for i in my_range: print(i)
1.5. انواع داده مجموعهای
- set (مجموعه): یک مجموعه نامرتب و بدون تکرار از عناصر است. مجموعهها معمولاً برای حذف عناصر تکراری و انجام عملیات مجموعهای مانند اجتماع، اشتراک و تفاضل استفاده میشوند.
my_set = {1, 2, 3, 3, 4} print(type(my_set)) # Output: <class 'set'> print(my_set) # Output: {1, 2, 3, 4}
- frozenset (مجموعه منجمد): یک مجموعه غیرقابل تغییر (immutable) است.
my_frozenset = frozenset({1, 2, 3}) print(type(my_frozenset))
1.6. نوع داده نگاشتی
- dict (دیکشنری یا لغتنامه): یک مجموعه از جفتهای کلید-مقدار است. کلیدها باید یکتا و غیرقابل تغییر باشند، در حالی که مقادیر میتوانند از هر نوع دادهای باشند. دیکشنریها معمولاً برای ذخیره و بازیابی دادهها بر اساس کلید استفاده میشوند.
my_dict = {"name": "John", "age": 30, "city": "New York"} print(type(my_dict)) # Output: <class 'dict'> print(my_dict["name"]) # Output: John my_dict["age"] = 31 print(my_dict) # Output: {'name': 'John', 'age': 31, 'city': 'New York'}
2. عملگرها در پایتون
عملگرها نمادهایی هستند که برای انجام عملیات مختلف بر روی متغیرها و مقادیر استفاده میشوند. پایتون از انواع مختلفی از عملگرها پشتیبانی میکند.
2.1. عملگرهای حسابی
- + (جمع): برای جمع دو مقدار استفاده میشود.
- – (تفریق): برای تفریق دو مقدار استفاده میشود.
- * (ضرب): برای ضرب دو مقدار استفاده میشود.
- / (تقسیم): برای تقسیم دو مقدار استفاده میشود. نتیجه همیشه یک عدد اعشاری است.
- // (تقسیم صحیح): برای تقسیم دو مقدار استفاده میشود. نتیجه یک عدد صحیح است (قسمت اعشاری حذف میشود).
- % (باقیمانده): برای محاسبه باقیمانده تقسیم دو مقدار استفاده میشود.
- ** (توان): برای محاسبه توان یک مقدار استفاده میشود.
x = 10 y = 3 print(x + y) # Output: 13 print(x - y) # Output: 7 print(x * y) # Output: 30 print(x / y) # Output: 3.3333333333333335 print(x // y) # Output: 3 print(x % y) # Output: 1 print(x ** y) # Output: 1000
2.2. عملگرهای مقایسهای
- == (برابر): برای مقایسه برابری دو مقدار استفاده میشود.
- != (نامساوی): برای مقایسه نامساوی دو مقدار استفاده میشود.
- > (بزرگتر): برای مقایسه بزرگتر بودن یک مقدار از مقدار دیگر استفاده میشود.
- < (کوچکتر): برای مقایسه کوچکتر بودن یک مقدار از مقدار دیگر استفاده میشود.
- >= (بزرگتر یا مساوی): برای مقایسه بزرگتر یا مساوی بودن یک مقدار از مقدار دیگر استفاده میشود.
- <= (کوچکتر یا مساوی): برای مقایسه کوچکتر یا مساوی بودن یک مقدار از مقدار دیگر استفاده میشود.
x = 10 y = 5 print(x == y) # Output: False print(x != y) # Output: True print(x > y) # Output: True print(x < y) # Output: False print(x >= y) # Output: True print(x <= y) # Output: False
2.3. عملگرهای منطقی
- and (و): اگر هر دو عملوند درست باشند، مقدار درست را برمیگرداند.
- or (یا): اگر حداقل یکی از عملوندها درست باشد، مقدار درست را برمیگرداند.
- not (نقیض): مقدار درست را به نادرست و مقدار نادرست را به درست تبدیل میکند.
x = True y = False print(x and y) # Output: False print(x or y) # Output: True print(not x) # Output: False
2.4. عملگرهای انتسابی
- = (انتساب): برای انتساب یک مقدار به یک متغیر استفاده میشود.
- += (جمع و انتساب): برای جمع یک مقدار با مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
- -= (تفریق و انتساب): برای تفریق یک مقدار از مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
- *= (ضرب و انتساب): برای ضرب یک مقدار در مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
- /= (تقسیم و انتساب): برای تقسیم یک مقدار بر مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
- //= (تقسیم صحیح و انتساب): برای تقسیم یک مقدار بر مقدار متغیر و انتساب نتیجه صحیح به متغیر استفاده میشود.
- %= (باقیمانده و انتساب): برای محاسبه باقیمانده تقسیم یک مقدار بر مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
- **= (توان و انتساب): برای محاسبه توان یک مقدار به توان مقدار متغیر و انتساب نتیجه به متغیر استفاده میشود.
x = 10 x += 5 # x = x + 5 print(x) # Output: 15 x -= 2 # x = x - 2 print(x) # Output: 13 x *= 3 # x = x * 3 print(x) # Output: 39 x /= 4 # x = x / 4 print(x) # Output: 9.75 x //= 2 # x = x // 2 print(x) # Output: 4.0 x %= 3 # x = x % 3 print(x) # Output: 1.0 x **= 2 # x = x ** 2 print(x) # Output: 1.0
2.5. عملگرهای عضویت
- in (در): برای بررسی اینکه آیا یک مقدار در یک دنباله (مانند لیست، تاپل یا رشته) وجود دارد یا خیر استفاده میشود.
- not in (در نیست): برای بررسی اینکه آیا یک مقدار در یک دنباله وجود ندارد یا خیر استفاده میشود.
my_list = [1, 2, 3, 4, 5] print(3 in my_list) # Output: True print(6 in my_list) # Output: False print(3 not in my_list) # Output: False print(6 not in my_list) # Output: True
2.6. عملگرهای هویتی
- is (هست): برای بررسی اینکه آیا دو متغیر به یک شیء در حافظه اشاره میکنند یا خیر استفاده میشود.
- is not (نیست): برای بررسی اینکه آیا دو متغیر به یک شیء در حافظه اشاره نمیکنند یا خیر استفاده میشود.
x = [1, 2, 3] y = x z = [1, 2, 3] print(x is y) # Output: True print(x is z) # Output: False print(x is not z) # Output: True
3. ساختارهای کنترلی در پایتون
ساختارهای کنترلی به شما امکان میدهند تا جریان اجرای برنامه خود را کنترل کنید. پایتون از ساختارهای کنترلی شرطی و حلقوی پشتیبانی میکند.
3.1. عبارات شرطی
عبارات شرطی به شما امکان میدهند تا بلوکهای کد مختلف را بر اساس یک شرط خاص اجرا کنید.
- if: یک بلوک کد را اگر شرط درست باشد اجرا میکند.
- elif: یک بلوک کد را اگر شرط قبلی نادرست باشد و شرط فعلی درست باشد اجرا میکند.
- else: یک بلوک کد را اگر هیچکدام از شرطهای قبلی درست نباشند اجرا میکند.
age = 20 if age >= 18: print("You are an adult.") elif age >= 13: print("You are a teenager.") else: print("You are a child.")
3.2. حلقهها
حلقهها به شما امکان میدهند تا یک بلوک کد را چندین بار تکرار کنید.
- for: برای تکرار بر روی یک دنباله (مانند لیست، تاپل یا رشته) استفاده میشود.
my_list = [1, 2, 3, 4, 5] for item in my_list: print(item)
- while: برای تکرار یک بلوک کد تا زمانی که یک شرط خاص درست باشد استفاده میشود.
i = 0 while i < 5: print(i) i += 1
- break: برای خروج از حلقه استفاده میشود.
for i in range(10): if i == 5: break print(i) # Output: 0 1 2 3 4
- continue: برای پرش از تکرار فعلی حلقه و رفتن به تکرار بعدی استفاده میشود.
for i in range(10): if i % 2 == 0: continue print(i) # Output: 1 3 5 7 9
4. توابع در پایتون
توابع بلوکهای کد قابل استفاده مجدد هستند که یک کار خاص را انجام میدهند. توابع به شما امکان میدهند تا کد خود را سازماندهی کنید، خوانایی آن را افزایش دهید و از تکرار کد جلوگیری کنید.
4.1. تعریف تابع
برای تعریف یک تابع در پایتون، از کلمه کلیدی `def` استفاده کنید.
def greet(name):
"""
This function greets the person passed in as a parameter.
"""
print(f"Hello, {name}!")
greet("John") # Output: Hello, John!
4.2. آرگومانها و پارامترها
- پارامتر: متغیری است که در تعریف تابع مشخص میشود.
- آرگومان: مقداری است که هنگام فراخوانی تابع به پارامتر داده میشود.
def add(x, y): # x and y are parameters
return x + y
result = add(5, 3) # 5 and 3 are arguments
print(result) # Output: 8
4.3. مقادیر پیشفرض برای پارامترها
میتوانید مقادیر پیشفرض برای پارامترهای تابع تعیین کنید. اگر هنگام فراخوانی تابع آرگومانی برای یک پارامتر با مقدار پیشفرض ارائه نشود، مقدار پیشفرض استفاده میشود.
def power(base, exponent=2):
return base ** exponent
print(power(5)) # Output: 25 (5 ** 2)
print(power(5, 3)) # Output: 125 (5 ** 3)
4.4. آرگومانهای کلیدواژهای
هنگام فراخوانی تابع، میتوانید آرگومانها را با استفاده از نام پارامترها (آرگومانهای کلیدواژهای) ارسال کنید. این کار به شما امکان میدهد تا ترتیب آرگومانها را تغییر دهید و کد خود را خواناتر کنید.
def describe_person(name, age, city):
print(f"Name: {name}, Age: {age}, City: {city}")
describe_person(name="John", age=30, city="New York")
describe_person(age=30, name="John", city="New York") # Same output
4.5. return
از دستور `return` برای برگرداندن یک مقدار از تابع استفاده میشود. اگر از `return` استفاده نشود، تابع مقدار `None` را برمیگرداند.
def multiply(x, y):
return x * y
result = multiply(4, 6)
print(result) # Output: 24
5. کلاسها و اشیاء در پایتون
پایتون یک زبان برنامهنویسی شیءگرا است. کلاسها و اشیاء مفاهیم اساسی در برنامهنویسی شیءگرا هستند.
5.1. تعریف کلاس
کلاس یک الگو یا طرح اولیه برای ایجاد اشیاء است. برای تعریف یک کلاس در پایتون، از کلمه کلیدی `class` استفاده کنید.
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
5.2. اشیاء
یک شیء یک نمونه از یک کلاس است. برای ایجاد یک شیء از یک کلاس، از نام کلاس به همراه پرانتز استفاده کنید.
my_dog = Dog("Buddy", "Golden Retriever")
print(my_dog.name) # Output: Buddy
print(my_dog.breed) # Output: Golden Retriever
my_dog.bark() # Output: Woof!
5.3. متدها
متدها توابعی هستند که در داخل یک کلاس تعریف میشوند. متدها به اشیاء یک کلاس مرتبط هستند و میتوانند به دادههای شیء دسترسی داشته باشند و آنها را تغییر دهند.
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)
my_rectangle = Rectangle(5, 10)
print(my_rectangle.area()) # Output: 50
print(my_rectangle.perimeter()) # Output: 30
5.4. __init__
متد `__init__` یک متد خاص است که هنگام ایجاد یک شیء از یک کلاس به طور خودکار فراخوانی میشود. از `__init__` برای مقداردهی اولیه ویژگیهای شیء استفاده میشود.
5.5. self
پارامتر `self` به شیء جاری کلاس اشاره دارد. از `self` برای دسترسی به ویژگیها و متدهای شیء در داخل کلاس استفاده میشود.
6. مدیریت خطاها در پایتون
مدیریت خطاها یک بخش مهم از برنامهنویسی است. پایتون از مکانیزمهای مختلفی برای مدیریت خطاها پشتیبانی میکند.
6.1. try...except
از بلوک `try...except` برای catch کردن و مدیریت استثناها استفاده میشود.
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero.")
6.2. انواع استثناها
پایتون انواع مختلفی از استثناها را ارائه میدهد، از جمله:
- ZeroDivisionError: زمانی رخ میدهد که یک عدد بر صفر تقسیم شود.
- TypeError: زمانی رخ میدهد که یک عملیات بر روی یک نوع داده نامناسب انجام شود.
- ValueError: زمانی رخ میدهد که یک تابع آرگومانی با نوع درست دریافت کند، اما مقدار آن نامعتبر باشد.
- IndexError: زمانی رخ میدهد که به یک اندیس خارج از محدوده یک لیست یا تاپل دسترسی پیدا شود.
- KeyError: زمانی رخ میدهد که به یک کلید ناموجود در یک دیکشنری دسترسی پیدا شود.
- FileNotFoundError: زمانی رخ میدهد که یک فایل مورد نظر پیدا نشود.
6.3. finally
بلوک `finally` همیشه اجرا میشود، صرف نظر از اینکه استثنایی رخ داده باشد یا خیر. از `finally` برای انجام کارهای ضروری مانند بستن فایلها استفاده میشود.
try:
f = open("my_file.txt", "r")
# Some code that may raise an exception
except FileNotFoundError:
print("File not found.")
finally:
f.close()
6.4. raise
از دستور `raise` برای ایجاد یک استثنا به صورت دستی استفاده میشود.
def check_age(age):
if age < 0:
raise ValueError("Age cannot be negative.")
print("Age is valid.")
try:
check_age(-5)
except ValueError as e:
print(e) # Output: Age cannot be negative.
7. ماژولها و بستهها در پایتون
ماژولها و بستهها ابزارهایی برای سازماندهی و استفاده مجدد از کد هستند.
7.1. ماژولها
یک ماژول یک فایل پایتون است که حاوی تعاریف توابع، کلاسها و متغیرها است. برای استفاده از یک ماژول، از دستور `import` استفاده کنید.
import math
print(math.pi) # Output: 3.141592653589793
print(math.sqrt(16)) # Output: 4.0
7.2. بستهها
یک بسته یک مجموعه از ماژولها است که در یک دایرکتوری سازماندهی شدهاند. یک بسته باید حاوی یک فایل `__init__.py` باشد.
7.3. import
دستور `import` برای وارد کردن ماژولها و بستهها استفاده میشود.
- import module_name: کل ماژول را وارد میکند.
- from module_name import function_name: فقط یک تابع خاص را از ماژول وارد میکند.
- from module_name import *: همه نامهای تعریف شده در ماژول را وارد میکند (توصیه نمیشود).
- import module_name as alias: ماژول را با نام مستعار وارد میکند.
import datetime
now = datetime.datetime.now()
print(now)
from datetime import date
today = date.today()
print(today)
import datetime as dt
now = dt.datetime.now()
print(now)
8. مباحث پیشرفتهتر در پایتون
در این بخش به معرفی مختصر چند مبحث پیشرفتهتر در پایتون میپردازیم. این مباحث برای کدنویسی حرفهایتر و حل مسائل پیچیدهتر کاربرد دارند.
8.1. Decoratorها
دکوراتورها ابزاری قدرتمند برای تغییر رفتار توابع یا کلاسها بدون تغییر مستقیم کد آنها هستند. آنها به شما اجازه میدهند تا منطق اضافی را به یک تابع یا کلاس اضافه کنید، مانند لاگگیری، اعتبارسنجی، یا اندازهگیری زمان اجرا.
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
8.2. Generatorها
ژنراتورها توابعی هستند که با استفاده از کلمه کلیدی `yield` مقادیر را تولید میکنند. بر خلاف توابع معمولی که تمام مقادیر را یکجا برمیگردانند، ژنراتورها مقادیر را به صورت تدریجی و بر اساس نیاز تولید میکنند. این ویژگی باعث میشود که ژنراتورها برای کار با دادههای حجیم بسیار مناسب باشند، زیرا نیازی به ذخیره تمام دادهها در حافظه ندارند.
def my_generator(n):
for i in range(n):
yield i
for value in my_generator(5):
print(value)
8.3. Context Managerها
کانتکست منیجرها ابزاری برای مدیریت منابع هستند که با استفاده از دستور `with` استفاده میشوند. آنها به شما اطمینان میدهند که منابع، مانند فایلها یا اتصالات شبکه، به درستی باز و بسته میشوند، حتی اگر در حین اجرای کد خطایی رخ دهد.
class MyContextManager:
def __enter__(self):
print("Entering the context.")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the context.")
with MyContextManager() as cm:
print("Inside the context.")
8.4. Multithreading و Multiprocessing
این دو مفهوم برای اجرای همزمان وظایف استفاده میشوند. Multithreading به شما اجازه میدهد تا چندین thread را در یک فرآیند اجرا کنید، در حالی که Multiprocessing به شما اجازه میدهد تا چندین فرآیند را به صورت همزمان اجرا کنید. Multiprocessing معمولاً برای کارهای CPU-bound مناسبتر است، در حالی که Multithreading برای کارهای I/O-bound مناسبتر است.
import threading
def print_numbers():
for i in range(5):
print(f"Thread: {i}")
my_thread = threading.Thread(target=print_numbers)
my_thread.start()
my_thread.join()
8.5. Asyncio
Asyncio یک کتابخانه برای نوشتن کد concurrent با استفاده از syntax async/await است. Asyncio به شما اجازه میدهد تا کارهای I/O-bound را به صورت غیرهمزمان انجام دهید، که میتواند باعث افزایش چشمگیر کارایی برنامههای شما شود.
import asyncio
async def main():
print("Hello ...")
await asyncio.sleep(1)
print("... World!")
asyncio.run(main())
منابع بیشتر برای یادگیری پایتون
این چیت شیت تنها یک نقطه شروع برای یادگیری پایتون است. برای تسلط کامل بر این زبان برنامهنویسی، باید به طور مداوم تمرین کنید و پروژههای مختلف را انجام دهید. امیدواریم این راهنما برای شما مفید بوده باشد. موفق باشید!
```