برنامه نویسی | Teachify
12.1K subscribers
1.01K photos
420 videos
231 files
648 links
برای موفق شدن 🌱 با این عبارت خداحافظی کن: "باشه فردا"🍃


Admin: @Yousef_Vafaei
Download Telegram
✔️ نکاتی که باید به هنگام استفاده از هوش مصنوعی برای کدزنی یا دیباگ در نظر بگیرید!

ورودی دقیق بدهید: سوالات و توضیحات خود را به‌صورت واضح و جزئی مطرح کنید تا پاسخ‌های مرتبط‌تری دریافت کنید.

از کد یاد بگیرید: کدی که هوش مصنوعی تولید می‌کند را بررسی کنید و با مطالعه آن مهارت‌های خود را ارتقا دهید.

ساده‌سازی کد: اگر کد تولید شده بیش از حد پیچیده است، آن را بازنویسی کنید تا خواناتر و بهینه‌تر شود.

سازگاری با تیم: کد تولید شده را مطابق با استانداردها و سبک کدنویسی تیم خود تنظیم کنید.

پایداری و امنیت: همیشه کد را از نظر امنیت و کارایی بررسی کنید؛ ممکن است آسیب‌پذیری‌هایی در کد وجود داشته باشد.

@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤣2
✔️ Python List Methods

#Python
@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
✔️ مفهوم match-case در پایتون (نسخه 3.10 به بعد)

اگر تا حالا با شرایط پیچیده در پایتون سروکله زدید، 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
@Teachify | برنامه نویسی
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤣1
✔️ آشنایی با Walrus Operator در پایتون (به معنی شیرآبی)

در نسخه ۳.۸ پایتون، اپراتوری به نام 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
@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
✔️ انواع ساختار داده در برنامه نویسی

در دنیای برنامه‌نویسی و علوم کامپیوتر، ساختارهای داده (Data Structures) ابزارهایی هستند که نحوه سازماندهی و مدیریت داده‌ها را تعیین می‌کنند. این ساختارها مستقیماً بر کارایی و سرعت الگوریتم‌ها تأثیر می‌گذارند. هر برنامه‌نویس باید با انواع ساختار داده در برنامه نویسی آشنا باشد، چراکه استفاده صحیح از ساختار داده مناسب می‌تواند زمان اجرا را کاهش داده و مصرف حافظه را بهینه کند و همچنین مشکلات پیچیده‌ای مثل جستجو، مرتب‌سازی، یا مدیریت داده‌های بزرگ را ساده‌تر کند.

در کالی بویز بخوانید: انواع ساختار داده در برنامه نویسی

@kaliboys | کالی بویز
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🐳21
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 (دودویی یا باینری): پیشوند 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 رخ می‌دهد.

@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥31
print(True + True)
Anonymous Quiz
24%
error
32%
1
11%
2True
32%
2
👀114
✔️ برنامه‌نویس‌ها درونگرای برونگرا هستند!!

برنامه‌نویس‌ها معمولاً درونگرا به نظر می‌رسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگرایی‌شون فوران می‌کنه!

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

حالا تو چطور؟ وقتی با یه برنامه‌نویس دیگه حرف می‌زنی، برونگرا میشی؟

#برنامه‌نویسی #درونگرایی #برونگرایی
@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🤣83👎1
برنامه نویسی | Teachify
Channel photo updated
نظرتون درباره لوگو جدید؟
Anonymous Poll
72%
👍
28%
👎
✔️ به نظر من که درست میگه :)))

نظر شما چیه؟
#fun
@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👎10😁3🤣2
✔️ ترفند جالب پایتون: Context Manager با with

عبارت 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)


@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👎1
✔️ این عالی بود :)))

#fun
@Teachify | برنامه نویسی
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 را می‌بینید:

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 می‌شود!

@Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
✔️ نظر شما چیه :))

#fun
@Teachify | برنامه نویسی
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()