آموزش پایتون | ترفند | تکنولوژی |پایتک | Pytech
2.08K subscribers
53 links
🐍 اینجا پایتون رو لقمه‌لقمه یاد می‌گیریم!
💻 ترکیبی از دنیای برنامه نویسی و تکنولوژی

🧠 ویدئو کمتر، نکته و فکت بیشتر

اینجوری بیشتر یادت میمونه!

چنلامون در تلگرام و بله:

🔗 Telegram: https://t.me/pytechnoo 🚀

🔗 Bale: https://ble.ir/pytechnoo ✅
Download Telegram
💡 توی دیباگر، تفاوت Step Over و Step Into رو می‌دونی؟ 🤔

🐍 این دو ابزار برای حرکت مرحله‌به‌مرحله در کد استفاده می‌شن:
🔹 Step Over: خط فعلی رو اجرا می‌کنه و به خط بعدی می‌ره، بدون اینکه وارد تابع فراخوانی‌شده بشه.
🔹 Step Into: اگه خط فعلی تابعی رو صدا بزنه، وارد بدنه‌ی اون تابع می‌شه.
🔹 Step Out: ادامه‌ی تابع فعلی رو اجرا می‌کنه و به محل فراخوانی برمی‌گرده.
✅ با شناخت این سه ابزار، راحت‌تر می‌فهمی کدت دقیقاً کجا و چطور اجرا می‌شه.

🔗 @pytechnoo | پایتک 🚀

#Python #Debugging #آموزش_پایتون
❤2
💡 برنامه‌ات داخل یک حلقه هزاران بار اجرا می‌شه؟ لازم نیست هر بار متوقفش کنی! 🚀
🐍 با Conditional Breakpoint می‌تونی مشخص کنی برنامه فقط وقتی متوقف بشه که یک شرط برقرار باشه.
مثلاً در دیباگر، این شرط رو برای بررسی یک ماده‌ی غذایی قرار بده:
ingredient["name"].lower() == "salsa"

حالا با برقرار شدن شرط، اجرای برنامه متوقف می‌شه و می‌تونی وضعیت متغیرها رو بررسی کنی.
✅ این روش برای حلقه‌های طولانی و پیدا کردن خطاهای وابسته به یک مقدار خاص خیلی کاربردیه.

🔗 @pytechnoo | پایتک 🚀

#Python #Debugging #ترفند_پایتون
❤2
💡 وقتی برنامه متوقف می‌شه، لازم نیست حدس بزنی متغیرها چه مقداری دارن! 👀
🐍 در دیباگر پایتون، پنل Variables بهت اجازه می‌ده مقدار متغیرهای فعلی رو بررسی کنی.
قابلیت Call Stack هم نشون می‌ده از چه تابع‌هایی به محل فعلی رسیدی.
مثلاً اگر خطایی داخل یک تابع رخ بده، می‌تونی مسیر فراخوانی تابع‌ها رو بررسی کنی و بفهمی برنامه چطور به اون نقطه رسیده.

📌 نکته: قبل از تغییر کد، اول وضعیت متغیرها و مسیر اجرای برنامه رو بررسی کن.

🔗 @pytechnoo | پایتک 🚀

#Python #دیباگ #ترفند_پایتون
❤2
🛠 یک نکته مهم برای ساخت تایمر در پایتون
در یک تایمر ساده ممکنه از این منطق استفاده کنیم:
time_elapsed = 0

while time_elapsed < total_seconds:
    time.sleep(1)
    time_elapsed += 1

این روش برای تمرین و پروژه‌های ساده قابل فهمه؛ اما یک نکته داره: زمان هر دور حلقه دقیقاً یک ثانیه نیست، چون اجرای کدهای داخل حلقه هم زمان می‌بره.
در نتیجه، هرچه تایمر طولانی‌تر باشه، ممکنه اختلاف کوچکی بین زمان واقعی و زمان محاسبه‌شده ایجاد بشه.
برای تایمر دقیق‌تر می‌تونی از
time.monotonic()

استفاده کنی؛ این تابع برای اندازه‌گیری گذر زمان مناسبه:
import time

duration = 10
end_time = time.monotonic() + duration

while True:
    remaining = max(0, int(end_time - time.monotonic()))

    print(f"\rزمان باقی‌مانده: {remaining:02d}", end="", flush=True)

    if remaining == 0:
        break

    time.sleep(0.1)

print("\nزمان تمام شد!")

💡 نکته برنامه‌نویسی: به‌جای اینکه فقط تعداد دفعات اجرای حلقه رو بشماری، می‌تونی زمان واقعی سپری‌شده رو اندازه بگیری.

🔗 @pytechnoo | پایتک 🚀

#Python #Time #پروژه_پایتون
❤2
⌨️ یک اشتباه رایج در پایتون: input عدد برنمی‌گردونه!
وقتی از
input()

استفاده می‌کنی، مقدار دریافتی به‌صورت رشته (
str

) برمی‌گرده؛ حتی اگر کاربر عدد وارد کنه.
مثلاً:
age = input("How old are you? ")
print(type(age))  # <class 'str'>

اگر می‌خوای با ورودی محاسبات ریاضی انجام بدی، باید اون رو تبدیل کنی:
minutes = int(input("چند دقیقه؟ "))
seconds = int(input("چند ثانیه؟ "))

total_seconds = minutes * 60 + seconds

print(f"زمان کل: {total_seconds} ثانیه")

مثلاً اگر کاربر ۲ دقیقه و ۱۵ ثانیه وارد کنه، نتیجه می‌شه ۱۳۵ ثانیه.
⚠️ اگر کاربر به‌جای عدد چیزی مثل
hello

وارد کنه،
int()

خطا می‌ده. در برنامه واقعی بهتره ورودی رو اعتبارسنجی کنی و خطا رو مدیریت کنی.

🔗 @pytechnoo | پایتک 🚀

#Python #Input #آموزش_پایتون
❤2
🪄 کاراکترهایی که ظاهر ترمینال رو تغییر می‌دن!
بعضی کاراکترها در پایتون فقط برای نمایش متن نیستن؛ می‌تونن رفتار مکان‌نما و ظاهر ترمینال رو هم تغییر بدن.
به این‌ها معمولاً Escape Sequence گفته می‌شه.
چند نمونه کاربردی:
print("Hello\nWorld")

\n

باعث می‌شه متن به خط بعدی بره.
print("Hello\tWorld")

\t

یک فاصله تب ایجاد می‌کنه.
و برای کنترل بیشتر ترمینال، می‌تونی از توالی‌های ANSI استفاده کنی:
print("\033[2J\033[H", end="")

در ترمینال‌هایی که از این توالی‌ها پشتیبانی می‌کنن:
\033[2J

صفحه رو پاک می‌کنه.
\033[H

مکان‌نما رو به موقعیت ابتدایی می‌بره.
🎯 این قابلیت‌ها برای ساخت تایمرهای زنده، نمایش وضعیت برنامه و ابزارهای خط فرمان مفیدن.
⚠️ پشتیبانی از توالی‌های ANSI به ترمینال و محیط اجرا بستگی داره؛ ممکنه همه‌جا یکسان عمل نکنن.

🔗 @pytechnoo | پایتک 🚀

#Python #ANSI #ترفند_پایتون
❤2
💡 وقتی پایتون خطا می‌ده، اولین کار این نیست که کل کدت رو تغییر بدی! 🐍
به Traceback توجه کن؛ این گزارش مسیر رسیدن به خطا رو نشون می‌ده و معمولاً محل بروز مشکل رو مشخص می‌کنه.
مثلاً:
numbers = [10, 20]
print(numbers[3])

خروجی خطا:
IndexError: list index out of range

📌 اینجا تلاش کردیم به عضوی دسترسی پیدا کنیم که در لیست وجود نداره.

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

🔗 @pytechnoo | پایتک 🚀

#Python #خطایابی #آموزش_برنامه_نویسی
❤2
💡 گاهی کدت درسته، اما داده‌ای که دریافت می‌کنه باعث خطا می‌شه! ⚠️
🐍 فرض کن برنامه‌ات ماده‌ی
salsa

رو می‌شناسه، اما کاربر
SALSA

وارد می‌کنه.
locations = {
    "salsa": "sauces",
    "tomato": "produce"
}

ingredient = "SALSA"
name = ingredient.strip().lower()

print(locations.get(name, "Not found"))

📤 خروجی:
sauces

✅ با
strip()

فاصله‌های ابتدا و انتها حذف می‌شن و با
lower()

حروف انگلیسی کوچک می‌شن.
📌 داده‌ها رو اعتبارسنجی کن تا خطاهای مشابه زودتر شناسایی بشن.

🔗 @pytechnoo | پایتک 🚀

#Python #اعتبارسنجی_داده #ترفند_پایتون
❤2
دوستان نظرتون خیلی برام مهمه، همه میدونیم که این پیامرسان ها کیفیت خوبی ندارند، اما باعث میشن این جمعمون کمرنگ نشه.👌
برای منی که این چنل رو تازه راه انداختم و میخام کسب و کار خودمو پیش ببرم، شرایط سخت تر هم میشه!

پس لطفا حمایتم کنید و توی نظرسنجی شرکت کنید.❤️🙏🏻
❤3
💡 چرا
groupby()

گاهی یک دسته رو چند بار ایجاد می‌کنه؟ 🤔
🐍 تابع
groupby()

از ماژول استاندارد
itertools

، عناصر پشت‌سرهم با کلید یکسان رو گروه‌بندی می‌کنه؛ خودش داده‌ها رو مرتب نمی‌کنه!
from itertools import groupby

items = [
    ("produce", "avocado"),
    ("dairy", "milk"),
    ("produce", "cilantro")
]

items.sort(key=lambda x: (x[0], x[1]))

for location, group in groupby(
    items, key=lambda x: x[0]
):
    print(location, [name for _, name in group])

📤 خروجی:
dairy ['milk']
produce ['avocado', 'cilantro']

✅ اگر می‌خوای هر دسته یک‌بار تشکیل بشه، قبلش داده‌ها رو بر اساس کلید گروه‌بندی مرتب کن.

🔗 @pytechnoo | پایتک 🚀

#Python #itertools #ترفند_پایتون
❤3
آموزش پایتون | ترفند | تکنولوژی |پایتک | Pytech pinned «دوستان نظرتون خیلی برام مهمه، همه میدونیم که این پیامرسان ها کیفیت خوبی ندارند، اما باعث میشن این جمعمون کمرنگ نشه.👌 برای منی که این چنل رو تازه راه انداختم و میخام کسب و کار خودمو پیش ببرم، شرایط سخت تر هم میشه! پس لطفا حمایتم کنید و توی نظرسنجی شرکت کنید.❤️🙏🏻»
💡 می‌خوای یک متن چندخطی رو بدون دردسر ذخیره کنی؟ 🐍
از سه کوتیشن استفاده کن!
message = """Hello, programmer!
Welcome to the world of Python.
Are you ready to learn?"""

print(message)

📤 خروجی:
Hello, programmer!
Welcome to the world of Python.
Are you ready to learn?

✅ رشته‌های سه‌کوتیشنی برای متن‌های چندخطی کاربرد دارن. می‌تونی از سه کوتیشن تکی یا دوتایی استفاده کنی.

📌 این ترفند برای ذخیره‌ی متن‌های طولانی و چندخطی به کارت میاد!

🔗 @pytechnoo | پایتک 🚀

#Python #Strings #آموزش_پایتون
❤3
💡 دستور
python

رو وارد می‌کنی، اما سیستم می‌گه نمی‌شناسمش؟ ⚠️
🐍 این مشکل ممکنه به نصب نبودن پایتون یا تنظیم نبودن مسیر اجرای اون مربوط باشه.
در ویندوز، هنگام نصب پایتون، اگر گزینه‌ی Add Python to PATH نمایش داده شد، فعال کردنش کمک می‌کنه دستور پایتون از ترمینال قابل اجرا باشه.
بعد از نصب، CMD جدیدی باز کن و امتحان کن:
python --version

✅ اگر همچنان خطا دیدی، نصب و تنظیمات PATH رو بررسی کن.
📌 این نکته رو برای روزی که با این خطا مواجه شدی ذخیره کن!

🔗 @pytechnoo | پایتک 🚀

#Python #ویندوز #آموزش_پایتون
❤3
💡 بهترین زمان پیدا کردن باگ، قبل از رسیدن اون به بخش‌های دیگه‌ی برنامه‌ست! 🎯
🐍 با تست‌نویسی می‌تونی رفتار موردانتظار کدت رو بررسی کنی و خطاها رو زودتر پیدا کنی.
مثلاً:
def normalize_name(name):
    return name.strip().lower()

assert normalize_name(" SALSA ") == "salsa"

print("Test passed!")

📤 خروجی:
Test passed!

✅ اگر نتیجه با انتظار ما مطابقت نداشته باشه، دستور
assert

خطا می‌ده.
📌 هرچه مشکل رو در بخش کوچک‌تری از برنامه پیدا کنی، بررسی و رفعش معمولاً راحت‌تره.

🔗 @pytechnoo | پایتک 🚀

#Python #تست_نویسی #برنامه_نویسی
❤2
💡 چرا بعضی متن‌ها در پایتون خطای SyntaxError می‌دن؟ 🤔
🐍 به کوتیشن‌ها دقت کن!
message = "Bobby's World"
print(message)

📤 خروجی:
Bobby's World

چون داخل متن از
'

استفاده شده، اینجا کوتیشن دوتایی انتخاب مناسبیه.
راه دیگه هم استفاده از بک‌اسلش برای فرار دادن کوتیشنه:
message = 'Bobby\'s World'


✅ قانون ساده: کوتیشن ابتدا و انتهای رشته باید با هم هماهنگ باشن؛ مگر اینکه نوشته‌ای رو به‌درستی Escape کنی.

🔗 @pytechnoo | پایتک 🚀

#Python #ترفند_پایتون #آموزش_برنامه_نویسی
❤2
💡 می‌خوای بدونی یک متن چند کاراکتر داره؟ لازم نیست دستی بشمری! 😎
🐍 تابع
len()

طول رشته رو برمی‌گردونه:
message = "Hello World"

print(len(message))

📤 خروجی:
11

✅ حواست باشه فاصله‌ها هم جزو کاراکترها حساب می‌شن؛ برای همین
"Hello World"

شامل ۱۱ کاراکتره.
📌 از
len()

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

🔗 @pytechnoo | پایتک 🚀

#Python #ترفند_پایتون #برنامه_نویسی
❤2
آموزش پایتون | ترفند | تکنولوژی |پایتک | Pytech
بسیار خب عزیزان، تایم نظر سنجی تموم شد.

سپاس گزار دوستانی هستم که همراهی کردن و توی نظرسنجی شرکت کردن، با اینکه خانوادمون فعلا تعدادشون کمه، اما باز هم برام ارزشمند بود❤️

براساس نتیجه نظرسنجی، چنل «پیامرسان بله» رو راه اندازی میکنم و لینکش رو هم میزارم.

به امید روزهای بهتر

ارادت❤️

پیام رسان بله: https://ble.ir/pytechnoo
❤3
آموزش پایتون | ترفند | تکنولوژی |پایتک | Pytech pinned «بسیار خب عزیزان، تایم نظر سنجی تموم شد. سپاس گزار دوستانی هستم که همراهی کردن و توی نظرسنجی شرکت کردن، با اینکه خانوادمون فعلا تعدادشون کمه، اما باز هم برام ارزشمند بود❤️ براساس نتیجه نظرسنجی، چنل «پیامرسان بله» رو راه اندازی میکنم و لینکش رو هم میزارم.…»
💡 با چند متد ساده، متن‌هات رو به‌راحتی بررسی کن! 🚀
🐍 این سه متد رشته‌ای رو بشناس:
message = "Hello World"

print(message.lower())
print(message.upper())
print(message.count("l"))

📤 خروجی:
hello world
HELLO WORLD
3

✅

lower()

حروف انگلیسی رو کوچک می‌کنه،

upper()

اون‌ها رو بزرگ می‌کنه و

count()

تعداد تکرار یک زیررشته رو می‌شمره

📌 این متدها برای پردازش متن و بررسی داده‌های متنی خیلی کاربردی‌ان.

🔗 Telegram: @pytechnoo | پایتک 🚀

🔗 Bale: https://ble.ir/pytechnoo ✅

#Python #Strings #ترفند_پایتون
❤2