کتابخانه کد پایتون

44 کد آماده و تست‌شده پایتون

کدهای کوتاه و کاربردی برای کارهای روزمره: رشته‌ها، لیست و دیکشنری، فایل‌ها، تاریخ، requests، JSON و CSV، اتوماسیون و یک‌خطی‌های مفید. همه کدها با پایتون ۳.۱۳ اجرا شده‌اند و خروجی واقعی کنار هر کد آمده است.

رشته‌ها

رشته‌ها

برعکس کردن رشته

با اسلایس [::-1] هر رشته را در یک قدم معکوس کنید.

python
text = "Python"
print(text[::-1])
خروجی:

nohtyP

آموزش مرتبط ←

رشته‌ها

بررسی پالیندروم

کلمه‌ای که از دو طرف یکسان خوانده شود؛ با نادیده‌گرفتن حروف بزرگ و فاصله.

python
def is_palindrome(s):
    s = "".join(ch.lower() for ch in s if ch.isalnum())
    return s == s[::-1]

print(is_palindrome("Never odd or even"))
print(is_palindrome("Python"))
خروجی:

True
False

آموزش مرتبط ←

رشته‌ها

شمارش تکرار کلمات

با Counter پرتکرارترین کلمات یک متن را پیدا کنید.

python
from collections import Counter

text = "python is easy and python is fun"
counts = Counter(text.split())
print(counts.most_common(2))
خروجی:

[('python', 2), ('is', 2)]

آموزش مرتبط ←

رشته‌ها

حذف فاصله‌های اضافه

فاصله‌های تکراری وسط متن را به یک فاصله تبدیل کنید.

python
text = "  سلام    دنیا   پایتون  "
clean = " ".join(text.split())
print(repr(clean))
خروجی:

'سلام دنیا پایتون'

آموزش مرتبط ←

رشته‌ها

قالب‌بندی عدد با جداکننده

نمایش عدد بزرگ با کاما و تعداد اعشار دلخواه با f-string.

python
price = 12500000.456
print(f"{price:,.0f} تومان")
print(f"{0.1234:.1%}")
خروجی:

12,500,000 تومان
12.3%

آموزش مرتبط ←

لیست و دیکشنری

لیست و دیکشنری

حذف موارد تکراری با حفظ ترتیب

dict.fromkeys ترتیب اولین حضور هر عنصر را نگه می‌دارد.

python
items = [3, 1, 3, 2, 1, 5]
unique = list(dict.fromkeys(items))
print(unique)
خروجی:

[3, 1, 2, 5]

آموزش مرتبط ←

لیست و دیکشنری

مرتب‌سازی لیست دیکشنری‌ها

با پارامتر key بر اساس هر فیلدی مرتب کنید.

python
users = [
    {"name": "Sara", "age": 25},
    {"name": "Ali", "age": 19},
    {"name": "Reza", "age": 31},
]
for u in sorted(users, key=lambda u: u["age"]):
    print(u["name"], u["age"])
خروجی:

Ali 19
Sara 25
Reza 31

آموزش مرتبط ←

لیست و دیکشنری

ادغام دو دیکشنری

عملگر | (پایتون 3.9+) دو دیکشنری را ترکیب می‌کند؛ مقدار دومی برنده است.

python
defaults = {"theme": "dark", "lang": "fa"}
user = {"lang": "en"}
settings = defaults | user
print(settings)
خروجی:

{'theme': 'dark', 'lang': 'en'}

آموزش مرتبط ←

لیست و دیکشنری

گروه‌بندی با defaultdict

داده‌ها را بدون بررسی وجود کلید گروه‌بندی کنید.

python
from collections import defaultdict

words = ["apple", "avocado", "banana", "blueberry", "cherry"]
groups = defaultdict(list)
for w in words:
    groups[w[0]].append(w)
print(dict(groups))
خروجی:

{'a': ['apple', 'avocado'], 'b': ['banana', 'blueberry'], 'c': ['cherry']}

آموزش مرتبط ←

لیست و دیکشنری

تقسیم لیست به تکه‌های مساوی

لیست بلند را به بسته‌های n تایی تقسیم کنید.

python
def chunks(lst, n):
    return [lst[i:i + n] for i in range(0, len(lst), n)]

print(chunks(list(range(1, 11)), 3))
خروجی:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

آموزش مرتبط ←

لیست و دیکشنری

پیمایش هم‌زمان دو لیست

zip عناصر هم‌شماره را کنار هم قرار می‌دهد.

python
names = ["Ali", "Sara", "Reza"]
scores = [17, 19, 15]
for i, (n, s) in enumerate(zip(names, scores), start=1):
    print(f"{i}. {n}: {s}")
خروجی:

1. Ali: 17
2. Sara: 19
3. Reza: 15

آموزش مرتبط ←

فایل‌ها

فایل‌ها

خواندن فایل خط‌به‌خط

حلقه روی فایل، حافظه کمی مصرف می‌کند حتی برای فایل‌های بزرگ.

python
from pathlib import Path
Path("notes.txt").write_text("خط اول\nخط دوم\n", encoding="utf-8")

with open("notes.txt", encoding="utf-8") as f:
    for num, line in enumerate(f, 1):
        print(num, line.strip())
خروجی:

1 خط اول
2 خط دوم

آموزش مرتبط ←

فایل‌ها

افزودن به انتهای فایل (لاگ)

حالت "a" متن جدید را به انتهای فایل اضافه می‌کند.

python
from datetime import datetime

def log(msg):
    with open("app.log", "a", encoding="utf-8") as f:
        f.write(f"{datetime(2026, 10, 15, 9, 30):%Y-%m-%d %H:%M} {msg}\n")

log("start")
log("done")
print(open("app.log", encoding="utf-8").read())
خروجی:

2026-10-15 09:30 start
2026-10-15 09:30 done

آموزش مرتبط ←

فایل‌ها

بررسی وجود فایل قبل از خواندن

از FileNotFoundError با یک شرط ساده جلوگیری کنید.

python
from pathlib import Path

p = Path("config.txt")
if p.exists():
    print(p.read_text(encoding="utf-8"))
else:
    print("فایل وجود ندارد:", p.name)
خروجی:

فایل وجود ندارد: config.txt

آموزش مرتبط ←

فایل‌ها

شمارش خط‌ها و کلمات فایل

یک wc کوچک با پایتون.

python
from pathlib import Path
Path("story.txt").write_text("one two three\nfour five\n", encoding="utf-8")

text = Path("story.txt").read_text(encoding="utf-8")
print("lines:", len(text.splitlines()))
print("words:", len(text.split()))
خروجی:

lines: 2
words: 5

آموزش مرتبط ←

تاریخ و زمان

تاریخ و زمان

فاصله بین دو تاریخ

تفریق دو date یک timedelta می‌دهد.

python
from datetime import date

start = date(2026, 3, 21)
end = date(2026, 10, 15)
print((end - start).days, "روز")
خروجی:

208 روز
تاریخ و زمان

افزودن روز به تاریخ

با timedelta تاریخ سررسید را حساب کنید.

python
from datetime import date, timedelta

today = date(2026, 10, 15)
due = today + timedelta(days=30)
print(due.isoformat())
خروجی:

2026-11-14
تاریخ و زمان

تبدیل رشته به تاریخ

strptime متن را با الگوی مشخص به datetime تبدیل می‌کند.

python
from datetime import datetime

dt = datetime.strptime("15/10/2026 14:05", "%d/%m/%Y %H:%M")
print(dt)
print(dt.strftime("%A, %B %d"))
خروجی:

2026-10-15 14:05:00
Thursday, October 15
تاریخ و زمان

محاسبه سن

سن دقیق با توجه به گذشتن یا نگذشتن تولد امسال.

python
from datetime import date

def age(born, today=date(2026, 10, 15)):
    return today.year - born.year - ((today.month, today.day) < (born.month, born.day))

print(age(date(2000, 12, 1)))
print(age(date(2000, 5, 1)))
خروجی:

25
26

آموزش مرتبط ←

وب و requests

وب و requests

درخواست GET و خواندن JSON

با requests یک API را صدا بزنید و پاسخ JSON را بخوانید.

python
import requests

r = requests.get("https://httpbin.org/get", params={"q": "python"}, timeout=10)
print(r.status_code)
print(r.json()["args"])
خروجی:

200
{'q': 'python'}

آموزش مرتبط ←

وب و requests

ارسال داده با POST

ارسال JSON به سرور و خواندن پاسخ.

python
import requests

r = requests.post("https://httpbin.org/post", json={"name": "Sara"}, timeout=10)
print(r.status_code, r.json()["json"])
خروجی:

200 {'name': 'Sara'}

آموزش مرتبط ←

وب و requests

مدیریت خطای شبکه

timeout و raise_for_status برنامه را در برابر قطعی شبکه امن می‌کنند.

python
import requests

try:
    r = requests.get("https://httpbin.org/status/404", timeout=10)
    r.raise_for_status()
except requests.RequestException as e:
    print("خطا:", type(e).__name__)
خروجی:

خطا: HTTPError

آموزش مرتبط ←

وب و requests

دانلود فایل تکه‌تکه

فایل بزرگ را با stream بدون پر کردن حافظه دانلود کنید.

python
import requests

url = "https://httpbin.org/bytes/2048"
with requests.get(url, stream=True, timeout=10) as r:
    size = 0
    with open("data.bin", "wb") as f:
        for chunk in r.iter_content(1024):
            f.write(chunk)
            size += len(chunk)
print("downloaded", size, "bytes")
خروجی:

downloaded 2048 bytes

JSON و CSV

JSON و CSV

ذخیره و خواندن JSON فارسی

ensure_ascii=False متن فارسی را خوانا نگه می‌دارد.

python
import json

data = {"name": "سارا", "skills": ["python", "sql"]}
with open("user.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

with open("user.json", encoding="utf-8") as f:
    print(json.load(f)["name"])
خروجی:

سارا

آموزش مرتبط ←

JSON و CSV

نمایش زیبای JSON

خروجی دیکشنری را مرتب و تورفته چاپ کنید.

python
import json

order = {"id": 7, "items": [{"sku": "A1", "qty": 2}], "paid": True}
print(json.dumps(order, indent=2))
خروجی:

{
  "id": 7,
  "items": [
    {
      "sku": "A1",
      "qty": 2
    }
  ],
  "paid": true
}

آموزش مرتبط ←

JSON و CSV

نوشتن CSV با DictWriter

لیست دیکشنری‌ها را مستقیم به فایل CSV تبدیل کنید.

python
import csv

rows = [{"name": "Ali", "score": 17}, {"name": "Sara", "score": 19}]
with open("scores.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.DictWriter(f, fieldnames=["name", "score"])
    w.writeheader()
    w.writerows(rows)
print(open("scores.csv", encoding="utf-8").read())
خروجی:

name,score
Ali,17
Sara,19
JSON و CSV

خواندن CSV و میانگین گیری

هر سطر CSV یک دیکشنری می‌شود.

python
import csv
from pathlib import Path
Path("scores.csv").write_text("name,score\nAli,17\nSara,19\nReza,15\n", encoding="utf-8")

with open("scores.csv", encoding="utf-8") as f:
    scores = [int(row["score"]) for row in csv.DictReader(f)]
print("avg:", sum(scores) / len(scores))
خروجی:

avg: 17.0

سیستم و مسیرها

سیستم و مسیرها

پیدا کردن همه فایل‌های یک پسوند

glob بازگشتی با pathlib.

python
from pathlib import Path
root = Path("project")
for n in ["a.py", "b.txt", "src/c.py"]:
    (root / n).parent.mkdir(parents=True, exist_ok=True)
    (root / n).touch()

for p in sorted(root.rglob("*.py")):
    print(p.relative_to(root).as_posix())
خروجی:

a.py
src/c.py

آموزش مرتبط ←

سیستم و مسیرها

ساخت پوشه تو در تو

parents=True همه پوشه‌های میانی را می‌سازد.

python
from pathlib import Path

out = Path("reports/2026/10")
out.mkdir(parents=True, exist_ok=True)
print(out.is_dir(), out.as_posix())
خروجی:

True reports/2026/10

آموزش مرتبط ←

سیستم و مسیرها

اجزای یک مسیر

نام، پسوند و پوشه والد یک فایل را جدا کنید.

python
from pathlib import Path

p = Path("/home/sara/projects/report.final.pdf")
print(p.name)
print(p.stem)
print(p.suffix)
print(p.parent)
خروجی:

report.final.pdf
report.final
.pdf
/home/sara/projects
سیستم و مسیرها

حجم پوشه به مگابایت

جمع حجم همه فایل‌های یک پوشه.

python
from pathlib import Path
Path("box").mkdir(exist_ok=True)
Path("box/x.bin").write_bytes(b"0" * 1_500_000)

size = sum(f.stat().st_size for f in Path("box").rglob("*") if f.is_file())
print(f"{size / 1024**2:.2f} MB")
خروجی:

1.43 MB

اتوماسیون

اتوماسیون

تغییر نام گروهی فایل‌ها

همه فایل‌های txt را با شماره‌گذاری مرتب تغییر نام دهید.

python
from pathlib import Path
Path("photos").mkdir(exist_ok=True)
for n in ["b.txt", "a.txt", "c.txt"]:
    (Path("photos") / n).touch()

for i, p in enumerate(sorted(Path("photos").glob("*.txt")), 1):
    p.rename(p.with_name(f"file_{i:02}.txt"))
print(sorted(p.name for p in Path("photos").iterdir()))
خروجی:

['file_01.txt', 'file_02.txt', 'file_03.txt']

آموزش مرتبط ←

اتوماسیون

مرتب‌سازی فایل‌ها بر اساس پسوند

هر فایل را به پوشه‌ای هم‌نام پسوندش منتقل کنید.

python
import shutil
from pathlib import Path
d = Path("downloads"); d.mkdir(exist_ok=True)
for n in ["a.jpg", "b.pdf", "c.jpg"]:
    (d / n).touch()

for f in d.iterdir():
    if f.is_file():
        target = d / f.suffix[1:]
        target.mkdir(exist_ok=True)
        shutil.move(str(f), target / f.name)
print(sorted(p.relative_to(d).as_posix() for p in d.rglob("*.*")))
خروجی:

['jpg/a.jpg', 'jpg/c.jpg', 'pdf/b.pdf']

آموزش مرتبط ←

اتوماسیون

اجرای دستور سیستم

subprocess.run خروجی یک دستور را برمی‌گرداند.

python
import subprocess, sys

r = subprocess.run([sys.executable, "--version"], capture_output=True, text=True)
print(r.returncode, r.stdout.strip())
خروجی:

0 Python 3.13.5
اتوماسیون

تکرار با تلاش مجدد (retry)

یک تابع ناپایدار را چند بار با مکث امتحان کنید.

python
import time

def retry(func, tries=3, delay=0.1):
    for n in range(1, tries + 1):
        try:
            return func()
        except Exception as e:
            print(f"try {n} failed: {e}")
            time.sleep(delay)
    raise RuntimeError("all tries failed")

calls = iter([ValueError("timeout"), ValueError("timeout"), "OK"])
def flaky():
    x = next(calls)
    if isinstance(x, Exception):
        raise x
    return x

print(retry(flaky))
خروجی:

try 1 failed: timeout
try 2 failed: timeout
OK

آموزش مرتبط ←

ریاضی و تصادفی

ریاضی و تصادفی

عدد تصادفی قابل تکرار

با seed نتیجه تصادفی همیشه یکسان می‌شود؛ مناسب تست.

python
import random

random.seed(42)
print(random.randint(1, 100))
print(random.choice(["سنگ", "کاغذ", "قیچی"]))
خروجی:

82
سنگ
ریاضی و تصادفی

ساخت رمز عبور امن

ماژول secrets برای رمز و توکن مناسب است، نه random.

python
import secrets, string

chars = string.ascii_letters + string.digits + "!@#$%"
password = "".join(secrets.choice(chars) for _ in range(12))
print(len(password), "characters")
خروجی:

12 characters
ریاضی و تصادفی

گرد کردن دقیق پول

Decimal خطای اعشاری float را ندارد.

python
from decimal import Decimal, ROUND_HALF_UP

print(0.1 + 0.2)
total = Decimal("0.1") + Decimal("0.2")
print(total)
print(Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP))
خروجی:

0.30000000000000004
0.3
2.68

آموزش مرتبط ←

ریاضی و تصادفی

میانگین، میانه و انحراف معیار

ماژول statistics بدون نصب کتابخانه.

python
import statistics as st

data = [12, 15, 15, 18, 20, 22]
print(st.mean(data), st.median(data), st.mode(data))
print(round(st.stdev(data), 2))
خروجی:

17 16.5 15
3.69

یک‌خطی‌های کاربردی

یک‌خطی‌های کاربردی

معکوس کردن دیکشنری

جای کلید و مقدار را عوض کنید.

python
d = {"a": 1, "b": 2}
print({v: k for k, v in d.items()})
خروجی:

{1: 'a', 2: 'b'}

آموزش مرتبط ←

یک‌خطی‌های کاربردی

صاف کردن لیست تو در تو

لیست لیست‌ها را به یک لیست ساده تبدیل کنید.

python
matrix = [[1, 2], [3, 4], [5]]
print([x for row in matrix for x in row])
خروجی:

[1, 2, 3, 4, 5]

آموزش مرتبط ←

یک‌خطی‌های کاربردی

جابه‌جایی دو متغیر

بدون متغیر کمکی.

python
a, b = 5, 9
a, b = b, a
print(a, b)
خروجی:

9 5

آموزش مرتبط ←

یک‌خطی‌های کاربردی

پرتکرارترین عنصر لیست

max با key=list.count.

python
votes = ["A", "B", "A", "C", "A", "B"]
print(max(set(votes), key=votes.count))
خروجی:

A
یک‌خطی‌های کاربردی

فیلتر اعداد زوج

list comprehension با شرط.

python
print([n for n in range(1, 21) if n % 2 == 0])
خروجی:

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

آموزش مرتبط ←

به خطا خوردید؟ راهنمای رفع خطاهای رایج پایتون را ببینید یا یادگیری را از آموزش جامع پایتون شروع کنید.