عـــلـے | Ali.N
200 subscribers
28 photos
8 files
12 links
Just a 20 y/o self-taught programmer in Iran, turning caffeine and chaos into clean Python. Building bots, breaking limits.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی ی برنامه نویس کات میکنه 😂🦦...
🤣11🥰3🌚2
#Quiz #Python

🧐 خروجی تابع چیه؟
تو کامنت همین پست نظرتون به همراه دلیل بنویسید.
❤6
عـــلـے | Ali.N
#Quiz #Python 🧐 خروجی تابع چیه؟ تو کامنت همین پست نظرتون به همراه دلیل بنویسید.
خب بریم سراغ جواب کوئیز!

توی ساختار try/except ، داخل بلوک try عدد 1 رو return می‌کنیم.

چون داخل try هیچ خطایی رخ نمیده، بلوک except اجرا نمیشه.

پس تا اینجای کار Python آماده بود که خروجی رو 1 برگردونه.

بعد از except می‌رسیم به بلوک else

شاید عجیب باشه، ولی بله! else می‌تونه کنار try/except هم استفاده بشه.

این بلوک زمانی اجرا میشه که داخل try خطایی رخ نده و داخل try مقدار return نشده باشه.

ولی اینجا چون ما داخل try همون اول return کردیم، پس اینجا دیگه نوبت به else نمی‌رسه.

و اما می‌رسیم به بلوک finally…

این یکی واقعاً سرخود و قلدره!
فرقی نداره خطا داشتی یا نداشتی، return کرده باشی یا نه… finally همیشه اجرا میشه

و چون داخل finally عدد 4 رو return کردیم، این return آخر همه‌ی returnهای قبل رو می‌پوشونه.

پس خروجی نهایی تابع → عدد 4
❤8🔥3👏1
❤9👏2🌚1
مهم‌تر از
به کجا رسیدن،
از کجا،به کجا رسیدنه!

پس برای
پرواز اجازه نگیر!
این تویی که باید اوج
بگیری و به بلندی‌ها برسی.

بال‌ها مالِ تو هستند
و آسمان‌ها مال هيچ‌ کس.
❤9👏2🕊1
آشنایی با عملگر والروس در پایتون (:=)

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

یعنی بدون اینکه دو بار یک دستور تکرار بشه، هم مقدار دریافت می‌کنیم هم شرط رو چک می‌کنیم

🔸 مثال معمولی (بدون والروس)
password = input('Enter password: ')
while password != '@12345':
password = input('incorrect password, try again: ')
print('welcome admin!')


اینجا ما دو بار دستور input نوشته‌ایم:
یک بار قبل از حلقه، یک بار داخل حلقه

🔸 مثال با عملگر والروس
while (password := input('Enter password: ')) != '@12345':
print('incorrect password, try again')
print('welcome admin')


در این نسخه با کمک عملگر := همزمان:

مقدار ورودی را داخل password قرار می‌دهیم

و همان لحظه آن را با مقدار صحیح مقایسه می‌کنیم

در نتیجه کد کوتاه‌تر، تمیزتر و خوانا‌تر می‌شود

✔️ خلاصه:

عملگر والروس وقتی کاربرد دارد که:

می‌خواهیم مقدار یک تابع (مثل input) را بگیریم

و همان لحظه از آن در شرط استفاده کنیم

بدون اینکه کد تکراری بنویسیم
❤6🔥3🕊1
Revolving Door
Abel Korzeniowski
بیکلام آرامش بخش✨🎼
❤7🕊2🐳1
عـــلـے | Ali.N
#Quiz #Python 👁 مشاهده پاسخ @CodePyOfficial
🧐 کدوم گزینه سریع تر اجرا میشه؟
Final Results
55%
1
45%
2
خب بریم سراغ جواب کوئیز!

علت سریع‌تر بودن پیمایش حلقه داخل تابع، به نحوه‌ی دسترسی پایتون به متغیرها برمی‌گرده

داخل تابع:
متغیر _
و خود range


به صورت Local Variable ذخیره می‌شن

اما خارج از تابع:

این‌ها Global Variable هستن

در پایتون:
دسترسی به Local → سریع‌تر
دسترسی به Global → کندتر


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

کدی که بیرون تابع اجرا میشه:
داخل فضای Global Namespace قرار داره

پایتون باید مدیریت بیشتری روش انجام بده
(مانند جستجو در namespace، ردیابی و تعامل با ماژول‌ها)

داخل تابع:
محیط اجرا بسته‌تر و ساده‌تره

درباره‌ی Call Stack:

ممکنه فکر کنیم چون تابع Call Stack داره باید کندتر باشه

اما:
هزینه‌ی صدا زدن تابع فقط یک بار پرداخت میشه
در حالی که حلقه 1,000,000 بار اجرا میشه
پس این هزینه در مقایسه با تعداد تکرار حلقه عملاً قابل چشم‌پوشیه.

جمع‌بندی کوتاه 🧠:
حلقه داخل تابع سریع‌تر نیست چون «تابعه»
سریع‌تره چون از Local Variable استفاده می‌کنه
❤6🔥2🕊2
زمین را گر شوی مالک
طمع بر آسمان داری
دم مردن همی بینی
نه این داری نه آن داری!

لحظه ها را دریاب ، زندگی کن...
❤10🥰1🕊1
مگسی را کشتم
نه به این جرم که حیوان پلیدیست ، بد است
و نه چون نسبت سودش به ضرر یک به صد است
طفل معصوم به دور سر من میچرخید ،
به خیالش قند ام!

یا که چون اغذیه ی مشهورش تا به آن حد گند ام
ای دو صد نور به قبرش بارد ،
مگس خوبی بود!

من به این جرم که از فکر تو بیرونم کرد ،
مگسی را کشتم...

'حسین پناهی'
❤8🔥2🕊2🍓2
زن گرفتم شدم ای دوست به دام زن اسیر
من گرفتم تو نگیر

چه اسیری که ز دنیا شده‌ام یکسره سیر
من گرفتم تو نگیر

بود یک وقت مرا با رفقا گردش و سیر
یاد آن روز بخیر

زن مرا کرده میان قفس خانه اسیر
من گرفتم تو نگیر

یاد آن روز که آزاد ز غم‌ها بودم
تک و تنها بودم

زن و فرزند ببستند مرا با زنجیر
من گرفتم تو نگیر

بودم آن روز من از طایفه دُرد کشان
بودم از جمع خوشان

خوشی از دست برون رفت و شدم لات و فقیر
من گرفتم تو نگیر

ای مجرد که بود خوابگه‌ات بستر گرم
بستر راحت و نرم

زن مگیر، ار نه شود خوابگه‌ات لای حصیر
من گرفتم تو نگیر

بنده زن دارم و محکوم به حبس ابدم
مستحق لگدم

چون در این مسئله بود از خود مخلص تقصیر
من گرفتم تو نگیر

من از آن روز که شوهر شده‌ام خر شده‌ام
خر همسر شده‌ام

می‌دهد یونجه به من جای پنیر
من گرفتم تو نگیر

'ایرج میرزا'
🤣8🌚3👏1
روزگار سرد
می دانی دل من
از چه سوخت؟

هر که را در شهر دیدم
هیزم تر می فروخت

'متین شریفی'
💔6🕊1
تابع داخلی (built-in function) isinstance چیه و چه کاربردی داره؟


تابع isinstance برای بررسی نوع (type) یک مقدار استفاده می‌شه ، این تابع بررسی می‌کنه که آیا یک متغیر، نمونه‌ای (instance) از یک نوع مشخص هست یا نه

ساختار کلی:

isinstance(object, classinfo)


مقداری که می‌خواهیم نوع آن را بررسی کنیم: object

نوع (یا انواع) مورد انتظار: classinfo

مثال:
def validate(value):
if isinstance(value, int):
return True
return False


در این تابع:

اگر value از نوع int باشه ، مقدار True برمی‌گرده
در غیر این صورت False

خروجی‌ها:
print(validate(1))     # True


عدد 1 از نوع int هست ، پس نتیجه True می‌شه

print(validate('1'))   # False


رشته '1' از نوع str هست ، نه int، پس False برمی‌گرده

print(validate(2))     # True


عدد 2 هم از نوع int هست ، بنابراین خروجی True هستش

نکته مهم:
برخلاف مقایسه مستقیم نوع با
type(value) == int
استفاده از isinstance بهتر و استانداردتر هست


چون:

* از وراثت (inheritance) پشتیبانی می‌کند
* خواناتر و منعطف‌تر است

مثال تکمیلی (چند نوع)

isinstance(value, (int, float))


در این حالت اگر value عدد صحیح یا اعشاری باشد، نتیجه True خواهد بود.
❤9