✔️ نکاتی که باید به هنگام استفاده از هوش مصنوعی برای کدزنی یا دیباگ در نظر بگیرید!
ورودی دقیق بدهید: سوالات و توضیحات خود را بهصورت واضح و جزئی مطرح کنید تا پاسخهای مرتبطتری دریافت کنید.
از کد یاد بگیرید: کدی که هوش مصنوعی تولید میکند را بررسی کنید و با مطالعه آن مهارتهای خود را ارتقا دهید.
سادهسازی کد: اگر کد تولید شده بیش از حد پیچیده است، آن را بازنویسی کنید تا خواناتر و بهینهتر شود.
سازگاری با تیم: کد تولید شده را مطابق با استانداردها و سبک کدنویسی تیم خود تنظیم کنید.
پایداری و امنیت: همیشه کد را از نظر امنیت و کارایی بررسی کنید؛ ممکن است آسیبپذیریهایی در کد وجود داشته باشد.
✅ @Teachify | برنامه نویسی
ورودی دقیق بدهید: سوالات و توضیحات خود را بهصورت واضح و جزئی مطرح کنید تا پاسخهای مرتبطتری دریافت کنید.
از کد یاد بگیرید: کدی که هوش مصنوعی تولید میکند را بررسی کنید و با مطالعه آن مهارتهای خود را ارتقا دهید.
سادهسازی کد: اگر کد تولید شده بیش از حد پیچیده است، آن را بازنویسی کنید تا خواناتر و بهینهتر شود.
سازگاری با تیم: کد تولید شده را مطابق با استانداردها و سبک کدنویسی تیم خود تنظیم کنید.
پایداری و امنیت: همیشه کد را از نظر امنیت و کارایی بررسی کنید؛ ممکن است آسیبپذیریهایی در کد وجود داشته باشد.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤣2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
✔️ مفهوم match-case در پایتون (نسخه 3.10 به بعد)
اگر تا حالا با شرایط پیچیده در پایتون سروکله زدید، match-case کار شما رو راحتتر میکنه! این ویژگی مثل
فرض کنید میخواهید دادههای مختلفی رو پردازش کنید، مثل ایجاد، حذف یا بهروزرسانی یک آیتم. به کمک این قابلیت، این کار سادهتر و مرتبتر میشه:
▪️مزایای match-case:
- کد خواناتر و قابلدرکتر از
- تطبیق الگوهای پیچیده (مثل دیکشنریهای تو در تو)
- انعطاف بالا برای مدیریت دادهها
#پایتون #python
✅ @Teachify | برنامه نویسی
اگر تا حالا با شرایط پیچیده در پایتون سروکله زدید، match-case کار شما رو راحتتر میکنه! این ویژگی مثل
switch-case در زبانهای دیگه عمل میکنه، اما با قدرتی فراتر برای مدیریت الگوهای پیچیده.فرض کنید میخواهید دادههای مختلفی رو پردازش کنید، مثل ایجاد، حذف یا بهروزرسانی یک آیتم. به کمک این قابلیت، این کار سادهتر و مرتبتر میشه:
def process_data(data):
match data:
case {"action": "create", "id": id, "content": content}:
print(f"Creating a new item with ID: {id} and content: {content}")
case {"action": "delete", "id": id}:
print(f"Deleting the item with ID: {id}")
case {"action": "update", "id": id, "content": content}:
print(f"Updating the item {id} with content: {content}")
case _:
print("Invalid data")
# Test the function
process_data({"action": "create", "id": 1, "content": "Hello"})
process_data({"action": "delete", "id": 2})
process_data({"action": "update", "id": 3, "content": "Updated content"})
▪️مزایای match-case:
- کد خواناتر و قابلدرکتر از
if-else های تو در تو- تطبیق الگوهای پیچیده (مثل دیکشنریهای تو در تو)
- انعطاف بالا برای مدیریت دادهها
#پایتون #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
✔️ درسته ما کارمون با پایتونه ولی میدونید چرا PHP نسخه 6 نداره؟ 🤔
بعد از نسخه 5.6، نسخه 7 منتشر شد، اما نسخه 6 چی شد؟ کجا رفت؟
نسخه 6 قرار بود منتشر بشه، اما به دلیل مشکلاتی، هیچوقت به نتیجه نرسید و بهطور کامل کنار گذاشته شد.
ایده اصلی نسخه 6، اضافه کردن پشتیبانی از یونیکد به هسته PHP بود. هدف این بود که PHP بتونه تمام زبانهای دنیا و کاراکترهاشون رو پشتیبانی کنه. حتی مثلاً میشد از ایموجیها به عنوان اسم متغیر یا تابع استفاده کرد!
اما چرا این پروژه شکست خورد؟
1. تغییرات سنگین: برای این قابلیت باید کلی ساختار زبان تغییر میکرد، که اجرای اون واقعاً سخت و پیچیده بود.
2. مشکلات عملکردی: اضافه کردن یونیکد باعث افت شدید پرفورمنس PHP میشد، که برای اکثر برنامهنویسا غیرقابلقبول بود.
در نهایت، پروژه نسخه 6 کنار گذاشته شد و قابلیتهایی که قابل پیادهسازی بودن، در نسخه 7 ارائه شدن.
✅ @Teachify | Rasoul Esmaeili
بعد از نسخه 5.6، نسخه 7 منتشر شد، اما نسخه 6 چی شد؟ کجا رفت؟
نسخه 6 قرار بود منتشر بشه، اما به دلیل مشکلاتی، هیچوقت به نتیجه نرسید و بهطور کامل کنار گذاشته شد.
ایده اصلی نسخه 6، اضافه کردن پشتیبانی از یونیکد به هسته PHP بود. هدف این بود که PHP بتونه تمام زبانهای دنیا و کاراکترهاشون رو پشتیبانی کنه. حتی مثلاً میشد از ایموجیها به عنوان اسم متغیر یا تابع استفاده کرد!
اما چرا این پروژه شکست خورد؟
1. تغییرات سنگین: برای این قابلیت باید کلی ساختار زبان تغییر میکرد، که اجرای اون واقعاً سخت و پیچیده بود.
2. مشکلات عملکردی: اضافه کردن یونیکد باعث افت شدید پرفورمنس PHP میشد، که برای اکثر برنامهنویسا غیرقابلقبول بود.
در نهایت، پروژه نسخه 6 کنار گذاشته شد و قابلیتهایی که قابل پیادهسازی بودن، در نسخه 7 ارائه شدن.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤣1
برنامه نویسی | Teachify
مسیر برگشت از مصاحبه 🥲 مصاحبه کننده در یک کلام عالی بود❤️ ✅ @Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
😍22👌4👏2💯2
✔️ آشنایی با Walrus Operator در پایتون (به معنی شیرآبی)
در نسخه ۳.۸ پایتون، اپراتوری به نام Walrus Operator (با نماد
فرض کنید میخواهیم طول کلماتی از یک لیست را بررسی کنیم و فقط کلماتی که طولشان بیش از ۳ کاراکتر است را چاپ کنیم.
➖ بدون Walrus Operator:
➕ با Walrus Operator:
در کد دوم، مقدار طول کلمه (با نام
مثال های دیگر:
➕ حلقههای ورودی:
➕ خواندن از فایل:
#Python
✅ @Teachify | برنامه نویسی
در نسخه ۳.۸ پایتون، اپراتوری به نام Walrus Operator (با نماد
:=) معرفی شد که هدف آن سادهتر کردن کدنویسی در شرایط خاص است. این اپراتور به شما اجازه میدهد همزمان یک مقدار را به یک متغیر اختصاص دهید و از آن استفاده کنید. فرض کنید میخواهیم طول کلماتی از یک لیست را بررسی کنیم و فقط کلماتی که طولشان بیش از ۳ کاراکتر است را چاپ کنیم.
➖ بدون Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if len(word) > 3:
print(word)
➕ با Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if (length := len(word)) > 3:
print(f"{word} (length: {length})")
در کد دوم، مقدار طول کلمه (با نام
length) محاسبه شده و همزمان در شرط و چاپ استفاده میشود، بدون نیاز به محاسبه مجدد.مثال های دیگر:
➕ حلقههای ورودی:
while (user_input := input("Enter something: ")) != "exit":
print(f"You entered: {user_input}")➕ خواندن از فایل:
with open("data.txt") as file:
while (line := file.readline().strip()):
print(line)#Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Forwarded from کالی بویز | ترفند | تکنولوژی (YOUSEF)
✔️ انواع ساختار داده در برنامه نویسی
در دنیای برنامهنویسی و علوم کامپیوتر، ساختارهای داده (Data Structures) ابزارهایی هستند که نحوه سازماندهی و مدیریت دادهها را تعیین میکنند. این ساختارها مستقیماً بر کارایی و سرعت الگوریتمها تأثیر میگذارند. هر برنامهنویس باید با انواع ساختار داده در برنامه نویسی آشنا باشد، چراکه استفاده صحیح از ساختار داده مناسب میتواند زمان اجرا را کاهش داده و مصرف حافظه را بهینه کند و همچنین مشکلات پیچیدهای مثل جستجو، مرتبسازی، یا مدیریت دادههای بزرگ را سادهتر کند.
در کالی بویز بخوانید: انواع ساختار داده در برنامه نویسی
✅ @kaliboys | کالی بویز
در دنیای برنامهنویسی و علوم کامپیوتر، ساختارهای داده (Data Structures) ابزارهایی هستند که نحوه سازماندهی و مدیریت دادهها را تعیین میکنند. این ساختارها مستقیماً بر کارایی و سرعت الگوریتمها تأثیر میگذارند. هر برنامهنویس باید با انواع ساختار داده در برنامه نویسی آشنا باشد، چراکه استفاده صحیح از ساختار داده مناسب میتواند زمان اجرا را کاهش داده و مصرف حافظه را بهینه کند و همچنین مشکلات پیچیدهای مثل جستجو، مرتبسازی، یا مدیریت دادههای بزرگ را سادهتر کند.
در کالی بویز بخوانید: انواع ساختار داده در برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
How do you create a tuple with a single value in Python?
Anonymous Quiz
28%
(1)
16%
{1}
50%
(1,)
6%
[1]
☃6🐳2❤1
Which option is correct? print(0o576)
Anonymous Quiz
27%
SyntaxError
14%
0o576
29%
382
29%
ValueError
👍3🤯1
برنامه نویسی | Teachify
Which option is correct? print(0o576)
✔️ نحوه نمایش اعداد در مبناهای مختلف و تبدیل آن:
مبنای 2 (دودویی یا باینری): پیشوند
ارقام معتبر: فقط 0 و 1
مثال:
مبنای 8 (هشتهشتی یا اوکتال): پیشوند
ارقام معتبر: از 0 تا 7
مثال:
مبنای 16 (شانزدههشتی یا هگزادسیمال): پیشوند
ارقام معتبر: از 0 تا 9 و حروف a-f یا A-F
مثال:
برای نمایش این اعداد در مبناهای مختلف:
در نتیجه، هرکدام از این پیشوندها عدد را در مبناهای مختلف نمایش میدهند. توجه داشته باشید که اگر غیر از ارقام معتبر وارد کنید، خطای SyntaxError رخ میدهد.
✅ @Teachify | برنامه نویسی
مبنای 2 (دودویی یا باینری): پیشوند
0b یا 0Bارقام معتبر: فقط 0 و 1
مثال:
0b11111111 معادل 255 در دهدهی است.مبنای 8 (هشتهشتی یا اوکتال): پیشوند
0o یا 0Oارقام معتبر: از 0 تا 7
مثال:
0o377 معادل 255 در دهدهی است.مبنای 16 (شانزدههشتی یا هگزادسیمال): پیشوند
0x یا 0Xارقام معتبر: از 0 تا 9 و حروف a-f یا A-F
مثال:
0xff معادل 255 در دهدهی است.برای نمایش این اعداد در مبناهای مختلف:
x = 255
print(bin(x)) # '0b11111111'
print(oct(x)) # '0o377'
print(hex(x)) # '0xff'
در نتیجه، هرکدام از این پیشوندها عدد را در مبناهای مختلف نمایش میدهند. توجه داشته باشید که اگر غیر از ارقام معتبر وارد کنید، خطای SyntaxError رخ میدهد.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥3❤1
👀11❤4
✔️ برنامهنویسها درونگرای برونگرا هستند!!
برنامهنویسها معمولاً درونگرا به نظر میرسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگراییشون فوران میکنه!
شاید این به خاطر این باشه که کنار همفکرهاشون، حرف زدن راحتتره، چون نیاز نیست چیزی رو توضیح بدن؛ اونا حرف های همو میفهمن.
حالا تو چطور؟ وقتی با یه برنامهنویس دیگه حرف میزنی، برونگرا میشی؟
#برنامهنویسی #درونگرایی #برونگرایی
✅ @Teachify | برنامه نویسی
برنامهنویسها معمولاً درونگرا به نظر میرسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگراییشون فوران میکنه!
شاید این به خاطر این باشه که کنار همفکرهاشون، حرف زدن راحتتره، چون نیاز نیست چیزی رو توضیح بدن؛ اونا حرف های همو میفهمن.
حالا تو چطور؟ وقتی با یه برنامهنویس دیگه حرف میزنی، برونگرا میشی؟
#برنامهنویسی #درونگرایی #برونگرایی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🤣8❤3👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👎10😁3🤣2
✔️ ترفند جالب پایتون: Context Manager با with
عبارت Context Manager یکی از مفاهیم مهم و کاربردی در زبان پایتون است که برای مدیریت منابعی که نیاز به باز و بسته شدن دارند (مثل فایلها، کانکشنها به دیتابیس، یا قفلها) استفاده میشود.
یک Context Manager به شما این امکان را میدهد که بخشی از کد را در یک "بلوک مدیریتی" اجرا کنید، و در شروع و پایان آن بلوک، اقدامات خاصی انجام شود. این کار معمولاً با استفاده از دستور with انجام میشود.
به کمک دستور with میتوانید مدیریت منابع مثل فایلها یا دیتابیس را سادهتر کنید. این دستور بهطور خودکار وظایف شروع و پایان را انجام میدهد.
یا برای ساخت Context Manager خودتان:
✅ @Teachify | برنامه نویسی
عبارت Context Manager یکی از مفاهیم مهم و کاربردی در زبان پایتون است که برای مدیریت منابعی که نیاز به باز و بسته شدن دارند (مثل فایلها، کانکشنها به دیتابیس، یا قفلها) استفاده میشود.
یک Context Manager به شما این امکان را میدهد که بخشی از کد را در یک "بلوک مدیریتی" اجرا کنید، و در شروع و پایان آن بلوک، اقدامات خاصی انجام شود. این کار معمولاً با استفاده از دستور with انجام میشود.
به کمک دستور with میتوانید مدیریت منابع مثل فایلها یا دیتابیس را سادهتر کنید. این دستور بهطور خودکار وظایف شروع و پایان را انجام میدهد.
with open("example.txt", "r") as file:
data = file.read()
# The file is automatically closed here.
یا برای ساخت Context Manager خودتان:
from contextlib import contextmanager
@contextmanager
def my_context():
print("🔹 Start...")
yield "Some data"
print("🔸 End...")
with my_context() as data:
print(data)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣31👍14
✔️ به هوش مصنوعی chatgpt گفتم با توجه به شناختی که از من داری غذای مورد علاقه منو درست کن!
اولش اینجوری گفت:
با توجه به علایق شما به یادگیری و برنامهنویسی، احتمالاً غذایی که هم ساده باشه و هم خلاقیت نیاز داشته باشه، مورد علاقه شماست! 😄
من یک بشقاب غذای سالم و انرژیبخش مثل پاستا با سس سبزیجات تازه یا املت سبزیجات با کمی نان تست رو پیشنهاد میکنم. این غذاها هم سریع آماده میشن، هم مناسب کسانی که ساعتها پشت کامپیوتر کار میکنن!
اگه مشخصتر بهم بگید چه غذایی دوست دارید، میتونم تصویر بهتری بسازم. مثلاً غذای ایرانی، فستفود یا غذای سنتی؟
بعدش گفتم در نظر بگیر که من ایرانی ام.
این تصویر رو با این کپشن برام درست کرد:
این هم تصویر یک غذای ایرانی خوشمزه که شامل برنج زعفرانی با تهدیگ طلایی، کباب مرغ، سبزی خوردن، گوجه، و یک کاسه ماست است. امیدوارم اشتهایتان را تحریک کند! 😊
پ.ن: واقعا اشتهام تحریک شد :))
✅ @Teachify | برنامه نویسی
اولش اینجوری گفت:
با توجه به علایق شما به یادگیری و برنامهنویسی، احتمالاً غذایی که هم ساده باشه و هم خلاقیت نیاز داشته باشه، مورد علاقه شماست! 😄
من یک بشقاب غذای سالم و انرژیبخش مثل پاستا با سس سبزیجات تازه یا املت سبزیجات با کمی نان تست رو پیشنهاد میکنم. این غذاها هم سریع آماده میشن، هم مناسب کسانی که ساعتها پشت کامپیوتر کار میکنن!
اگه مشخصتر بهم بگید چه غذایی دوست دارید، میتونم تصویر بهتری بسازم. مثلاً غذای ایرانی، فستفود یا غذای سنتی؟
بعدش گفتم در نظر بگیر که من ایرانی ام.
این تصویر رو با این کپشن برام درست کرد:
این هم تصویر یک غذای ایرانی خوشمزه که شامل برنج زعفرانی با تهدیگ طلایی، کباب مرغ، سبزی خوردن، گوجه، و یک کاسه ماست است. امیدوارم اشتهایتان را تحریک کند! 😊
پ.ن: واقعا اشتهام تحریک شد :))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👌1
استفاده از SQL خام در Django
هرچند که ORM بهخوبی نیازهای عمومی ما را در جنگو برآورد میکند، اما گاهی اوقات برای کوئریهای پیچیده یا بهینهسازیهای خاص، استفاده از کوئریهای خام SQL بهترین راهحل است.
در کد زیر، یک کوئری سادهی خام برای دریافت محصولات با قیمت بالاتر از 100 را میبینید:
این کار برای ما کنترل بیشتر بر کوئریها، امکان استفاده از ویژگیهای خاص دیتابیس و بهبود عملکرد در شرایط خاص را امکان پذیر میکند.
فقط دقت کنید که حتما از پارامترها (
وقتی از پارامترها برای مقادیر ورودی در کوئری استفاده میکنید، Django یا کتابخانهی مربوطه مقدار ورودی شما را ایمنسازی میکند. این یعنی کاراکترهای مخربی که ممکن است توسط یک مهاجم وارد شوند، بهعنوان بخشی از داده در نظر گرفته شده و نمیتوانند ساختار اصلی کوئری را تغییر دهند. به این فرآیند "escaping" گفته میشود.
اگر مستقیماً مقادیر کاربر را بدون استفاده از پارامترها در رشتهی SQL قرار دهید، کوئری شما در برابر SQL Injection آسیبپذیر میشود.
به عنوان مثال ناامن، فرض کنید کاربر میخواهد محصولی را براساس قیمت جستجو کند:
اگر کاربر به جای مقدار عددی، ورودی مخربی مثل زیر وارد کند:
کوئری نهایی شما به شکل زیر خواهد بود:
این کوئری باعث حذف شدن جدول products میشود!
✅ @Teachify | برنامه نویسی
هرچند که ORM بهخوبی نیازهای عمومی ما را در جنگو برآورد میکند، اما گاهی اوقات برای کوئریهای پیچیده یا بهینهسازیهای خاص، استفاده از کوئریهای خام SQL بهترین راهحل است.
در کد زیر، یک کوئری سادهی خام برای دریافت محصولات با قیمت بالاتر از 100 را میبینید:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM myapp_product WHERE price > %s", [100])
results = cursor.fetchall()
for row in results:
print(row)
این کار برای ما کنترل بیشتر بر کوئریها، امکان استفاده از ویژگیهای خاص دیتابیس و بهبود عملکرد در شرایط خاص را امکان پذیر میکند.
فقط دقت کنید که حتما از پارامترها (
%s) بهجای ترکیب مستقیم مقادیر در کوئری استفاده کنید تا از حملات SQL Injection جلوگیری شود.وقتی از پارامترها برای مقادیر ورودی در کوئری استفاده میکنید، Django یا کتابخانهی مربوطه مقدار ورودی شما را ایمنسازی میکند. این یعنی کاراکترهای مخربی که ممکن است توسط یک مهاجم وارد شوند، بهعنوان بخشی از داده در نظر گرفته شده و نمیتوانند ساختار اصلی کوئری را تغییر دهند. به این فرآیند "escaping" گفته میشود.
اگر مستقیماً مقادیر کاربر را بدون استفاده از پارامترها در رشتهی SQL قرار دهید، کوئری شما در برابر SQL Injection آسیبپذیر میشود.
به عنوان مثال ناامن، فرض کنید کاربر میخواهد محصولی را براساس قیمت جستجو کند:
price = input("Enter a price: ")
query = f"SELECT * FROM products WHERE price > {price}"
cursor.execute(query) اگر کاربر به جای مقدار عددی، ورودی مخربی مثل زیر وارد کند:
0; DROP TABLE products; --
کوئری نهایی شما به شکل زیر خواهد بود:
SELECT * FROM products WHERE price > 0; DROP TABLE products; --
این کوئری باعث حذف شدن جدول products میشود!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Please open Telegram to view this post
VIEW IN TELEGRAM
👌34🤣14👍3👎1
Which method is used to merge two Python dictionaries (since Python 3.9)?
Anonymous Quiz
17%
update()
22%
| (pipe operator)
36%
merge()
24%
combine()
