Please open Telegram to view this post
VIEW IN TELEGRAM
گاهی نیاز دارید چندین شرط را همزمان بررسی کنید، اما نمیخواهید کدتان شلوغ و ناخوانا شود. اینجاست که توابع all و any به کمک شما میآیند!
فرض کنید میخواهید بررسی کنید که آیا تمام اعداد یک لیست مثبت هستند:
numbers = [3, 7, 9, 12]
if all(num > 0 for num in numbers):
print("All numbers are positive!")
تابع all زمانی True برمیگرداند که همه شرایط درست باشند.
حالا اگر بخواهید بررسی کنید که آیا حداقل یکی از اعداد زوج است:
if any(num % 2 == 0 for num in numbers):
print("At least one number is even!")
تابع any زمانی True برمیگرداند که حداقل یکی از شرایط درست باشد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ ساخت توابع خاص با functools.partial در پایتون
قابلیت
فرض کنید تابعی دارید که دو عدد رو ضرب میکنه:
با استفاده از
این باعث میشه کد شما تمیزتر و کاراتر بشه.
💻 @qcode_ir | برنامه نویسی
قابلیت
functools.partial به شما کمک میکنه که از یک تابع موجود، نسخهای بسازید که برخی از ورودیهاش بهصورت پیشفرض تنظیم شده باشه. فرض کنید تابعی دارید که دو عدد رو ضرب میکنه:
from functools import partial
# تعریف تابع اصلی
def multiply(x, y):
return x * y
# ساخت یک تابع جدید که مقدار x همیشه 5 باشه
partial_func = partial(multiply, 5)
# استفاده از تابع جدید
print(partial_func(3)) # خروجی: 15
print(partial_func(10)) # خروجی: 50
با استفاده از
partial میتونیم یک نسخه جدید از تابع بسازیم که فقط یک عدد رو بگیره و مقدار x همیشه 5 باشه! این باعث میشه کد شما تمیزتر و کاراتر بشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ اضافه کردن و حذف عناصر از هر دو طرف لیست
اگر میخواهید عناصری را از هر دو طرف یک لیست اضافه یا حذف کنید، میتوانید از deque (صف دوطرفه) استفاده کنید. برخلاف لیستهای معمولی که فقط امکان اضافه یا حذف عناصر از یک طرف را میدهند، deque این امکان را فراهم میکند که از هر دو طرف لیست (چپ و راست) عناصر را مدیریت کنید.
این ویژگی زمانی که با دادههای بزرگ یا ساختارهایی مثل پشته و صف کار میکنید بسیار کاربردی است. برای استفاده از deque باید ماژول collections را وارد کنید. مثال زیر نشان میدهد که چطور میتوانید از این قابلیت بهره ببرید:
نتیجه این کد:
💻 @qcode_ir | برنامه نویسی
اگر میخواهید عناصری را از هر دو طرف یک لیست اضافه یا حذف کنید، میتوانید از deque (صف دوطرفه) استفاده کنید. برخلاف لیستهای معمولی که فقط امکان اضافه یا حذف عناصر از یک طرف را میدهند، deque این امکان را فراهم میکند که از هر دو طرف لیست (چپ و راست) عناصر را مدیریت کنید.
این ویژگی زمانی که با دادههای بزرگ یا ساختارهایی مثل پشته و صف کار میکنید بسیار کاربردی است. برای استفاده از deque باید ماژول collections را وارد کنید. مثال زیر نشان میدهد که چطور میتوانید از این قابلیت بهره ببرید:
from collections import deque
# Create a deque
queue = deque()
# Add elements to both ends
queue.append(10) # Add to the right end
queue.appendleft(5) # Add to the left end
# Remove elements from both ends
right = queue.pop() # Remove from the right end
left = queue.popleft() # Remove from the left end
print(f"Right end: {right}, Left end: {left}")
نتیجه این کد:
Right end: 10, Left end: 5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ آشنایی با Walrus Operator در پایتون (به معنی شیرآبی)
در نسخه ۳.۸ پایتون، اپراتوری به نام Walrus Operator (با نماد
فرض کنید میخواهیم طول کلماتی از یک لیست را بررسی کنیم و فقط کلماتی که طولشان بیش از ۳ کاراکتر است را چاپ کنیم.
➖ بدون Walrus Operator:
➕ با Walrus Operator:
در کد دوم، مقدار طول کلمه (با نام
مثال های دیگر:
➕ حلقههای ورودی:
➕ خواندن از فایل:
#Python
💻 @qcode_ir | برنامه نویسی
در نسخه ۳.۸ پایتون، اپراتوری به نام 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
✔️ برنامهنویسها درونگرای برونگرا هستند!!
برنامهنویسها معمولاً درونگرا به نظر میرسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگراییشون فوران میکنه!
شاید این به خاطر این باشه که کنار همفکرهاشون، حرف زدن راحتتره، چون نیاز نیست چیزی رو توضیح بدن؛ اونا حرف های همو میفهمن.
حالا تو چطور؟ وقتی با یه برنامهنویس دیگه حرف میزنی، برونگرا میشی؟
#برنامهنویسی #درونگرایی #برونگرایی
💻 @qcode_ir | برنامه نویسی
برنامهنویسها معمولاً درونگرا به نظر میرسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگراییشون فوران میکنه!
شاید این به خاطر این باشه که کنار همفکرهاشون، حرف زدن راحتتره، چون نیاز نیست چیزی رو توضیح بدن؛ اونا حرف های همو میفهمن.
حالا تو چطور؟ وقتی با یه برنامهنویس دیگه حرف میزنی، برونگرا میشی؟
#برنامهنویسی #درونگرایی #برونگرایی
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ ترفند جالب پایتون: Context Manager با with
عبارت Context Manager یکی از مفاهیم مهم و کاربردی در زبان پایتون است که برای مدیریت منابعی که نیاز به باز و بسته شدن دارند (مثل فایلها، کانکشنها به دیتابیس، یا قفلها) استفاده میشود.
یک Context Manager به شما این امکان را میدهد که بخشی از کد را در یک "بلوک مدیریتی" اجرا کنید، و در شروع و پایان آن بلوک، اقدامات خاصی انجام شود. این کار معمولاً با استفاده از دستور with انجام میشود.
به کمک دستور with میتوانید مدیریت منابع مثل فایلها یا دیتابیس را سادهتر کنید. این دستور بهطور خودکار وظایف شروع و پایان را انجام میدهد.
یا برای ساخت Context Manager خودتان:
💻 @qcode_ir | برنامه نویسی
عبارت 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
همه دارن ChatGPT یاد میگیرن ولی کسی ماشین لرنینگ رو جدی نمیگیره. همه میخوان پایتون یاد بگیرن ولی کسی نمیخواد ریاضیات و منطق یاد بگیره. همه می.خوان مارکتر بشن، هیچکس نمیخواد روانشناسی مطالعه کنه. همه میخوان فروشنده شن، بدون این که پیگیری بلد باشن.
پایه رو یاد بگیر، نه ترند.🙂
💻 @qcode_ir | برنامه نویسی
پایه رو یاد بگیر، نه ترند.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ به هوش مصنوعی chatgpt گفتم با توجه به شناختی که از من داری غذای مورد علاقه منو درست کن!
اولش اینجوری گفت:
با توجه به علایق شما به یادگیری و برنامهنویسی، احتمالاً غذایی که هم ساده باشه و هم خلاقیت نیاز داشته باشه، مورد علاقه شماست! 😄
من یک بشقاب غذای سالم و انرژیبخش مثل پاستا با سس سبزیجات تازه یا املت سبزیجات با کمی نان تست رو پیشنهاد میکنم. این غذاها هم سریع آماده میشن، هم مناسب کسانی که ساعتها پشت کامپیوتر کار میکنن!
اگه مشخصتر بهم بگید چه غذایی دوست دارید، میتونم تصویر بهتری بسازم. مثلاً غذای ایرانی، فستفود یا غذای سنتی؟
بعدش گفتم در نظر بگیر که من ایرانی ام.
این تصویر رو با این کپشن برام درست کرد:
این هم تصویر یک غذای ایرانی خوشمزه که شامل برنج زعفرانی با تهدیگ طلایی، کباب مرغ، سبزی خوردن، گوجه، و یک کاسه ماست است. امیدوارم اشتهایتان را تحریک کند! 😊
پ.ن: واقعا اشتهام تحریک شد :))
💻 @Qcode_ir | برنامه نویسی
اولش اینجوری گفت:
با توجه به علایق شما به یادگیری و برنامهنویسی، احتمالاً غذایی که هم ساده باشه و هم خلاقیت نیاز داشته باشه، مورد علاقه شماست! 😄
من یک بشقاب غذای سالم و انرژیبخش مثل پاستا با سس سبزیجات تازه یا املت سبزیجات با کمی نان تست رو پیشنهاد میکنم. این غذاها هم سریع آماده میشن، هم مناسب کسانی که ساعتها پشت کامپیوتر کار میکنن!
اگه مشخصتر بهم بگید چه غذایی دوست دارید، میتونم تصویر بهتری بسازم. مثلاً غذای ایرانی، فستفود یا غذای سنتی؟
بعدش گفتم در نظر بگیر که من ایرانی ام.
این تصویر رو با این کپشن برام درست کرد:
این هم تصویر یک غذای ایرانی خوشمزه که شامل برنج زعفرانی با تهدیگ طلایی، کباب مرغ، سبزی خوردن، گوجه، و یک کاسه ماست است. امیدوارم اشتهایتان را تحریک کند! 😊
پ.ن: واقعا اشتهام تحریک شد :))
Please open Telegram to view this post
VIEW IN TELEGRAM
✅ معرفی سایت برای فرانت کارها
🌐 https://getcssscan.com/css-box-shadow-examples
وبسایت آنلاین box-shadow های آماده
______________________
#frontend #css
#معرفی_سایت #فرانت_کار #فرانت
💻 @Qcode_ir | برنامه نویسی
🌐 https://getcssscan.com/css-box-shadow-examples
وبسایت آنلاین box-shadow های آماده
______________________
#frontend #css
#معرفی_سایت #فرانت_کار #فرانت
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
استفاده از SQL خام در Django
هرچند که ORM بهخوبی نیازهای عمومی ما را در جنگو برآورد میکند، اما گاهی اوقات برای کوئریهای پیچیده یا بهینهسازیهای خاص، استفاده از کوئریهای خام SQL بهترین راهحل است.
در کد زیر، یک کوئری سادهی خام برای دریافت محصولات با قیمت بالاتر از 100 را میبینید:
این کار برای ما کنترل بیشتر بر کوئریها، امکان استفاده از ویژگیهای خاص دیتابیس و بهبود عملکرد در شرایط خاص را امکان پذیر میکند.
فقط دقت کنید که حتما از پارامترها (
وقتی از پارامترها برای مقادیر ورودی در کوئری استفاده میکنید، Django یا کتابخانهی مربوطه مقدار ورودی شما را ایمنسازی میکند. این یعنی کاراکترهای مخربی که ممکن است توسط یک مهاجم وارد شوند، بهعنوان بخشی از داده در نظر گرفته شده و نمیتوانند ساختار اصلی کوئری را تغییر دهند. به این فرآیند "escaping" گفته میشود.
اگر مستقیماً مقادیر کاربر را بدون استفاده از پارامترها در رشتهی SQL قرار دهید، کوئری شما در برابر SQL Injection آسیبپذیر میشود.
به عنوان مثال ناامن، فرض کنید کاربر میخواهد محصولی را براساس قیمت جستجو کند:
اگر کاربر به جای مقدار عددی، ورودی مخربی مثل زیر وارد کند:
کوئری نهایی شما به شکل زیر خواهد بود:
این کوئری باعث حذف شدن جدول products میشود!
💻 @Qcode_ir | برنامه نویسی
هرچند که 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ 10 نکته طلایی برای بهبود رزومه برنامهنویسی
1. پروژههای واقعی و متنباز
پروژههای واقعی و دستاوردهای خود را نمایش دهید. پروژههای متنباز به دلیل اثبات مهارت در سطح عمومی، ارزش بیشتری دارند.
2. تمرکز بر زبانها و ابزارهای مرتبط
زبانها و تکنولوژیهای موردنیاز شغل هدف را برجسته کنید. از هوش مصنوعی برای سفارشیسازی این بخش کمک بگیرید.
3. استفاده از آمار و نتایج
تاثیر دستاوردهایتان را با دادههای کمی بیان کنید (مانند کاهش زمان بارگذاری به میزان ۳۰٪). این موارد باید قابل اثبات باشند.
4. اشاره به مهارتهای نرم
مهارتهایی مثل کار تیمی و ارتباطات را اضافه کنید. این بخش برای شرکتهای بینالمللی اهمیت بیشتری دارد.
5. گواهینامهها و دورههای آموزشی
تنها دورههایی که اثربخشی بالایی دارند را در رزومه ذکر کنید، بهویژه مواردی که نشاندهنده یادگیری مداوم شما هستند.
6. سفارشیسازی رزومه برای هر شغل
رزومه را بر اساس شغل و نیازهای آگهی شغلی تنظیم کنید. کلمات کلیدی مرتبط با هر شغل را در متن بگنجانید.
7. حضور آنلاین حرفهای
لینک پروفایلهای GitHub، LinkedIn و سایر منابع حرفهای را اضافه کنید تا تواناییها و تجربیات شما قابل مشاهده باشند.
8. طراحی ساده و حرفهای
از طراحی شیک و ساده استفاده کنید. از رنگها و استایلهای پیچیده پرهیز کنید.
9. نوشتن خلاصه حرفهای
یک خلاصه کوتاه در بالای رزومه اضافه کنید که تجربهها، تخصصها، و هدف شغلیتان را بیان کند.
10. تجربیات داوطلبانه
فعالیتهای داوطلبانه و اجتماعی مثل برگزاری سمینارها یا مشارکت در پروژههای اجتماعی را اضافه کنید.
💻 @Qcode_ir | برنامه نویسی
1. پروژههای واقعی و متنباز
پروژههای واقعی و دستاوردهای خود را نمایش دهید. پروژههای متنباز به دلیل اثبات مهارت در سطح عمومی، ارزش بیشتری دارند.
2. تمرکز بر زبانها و ابزارهای مرتبط
زبانها و تکنولوژیهای موردنیاز شغل هدف را برجسته کنید. از هوش مصنوعی برای سفارشیسازی این بخش کمک بگیرید.
3. استفاده از آمار و نتایج
تاثیر دستاوردهایتان را با دادههای کمی بیان کنید (مانند کاهش زمان بارگذاری به میزان ۳۰٪). این موارد باید قابل اثبات باشند.
4. اشاره به مهارتهای نرم
مهارتهایی مثل کار تیمی و ارتباطات را اضافه کنید. این بخش برای شرکتهای بینالمللی اهمیت بیشتری دارد.
5. گواهینامهها و دورههای آموزشی
تنها دورههایی که اثربخشی بالایی دارند را در رزومه ذکر کنید، بهویژه مواردی که نشاندهنده یادگیری مداوم شما هستند.
6. سفارشیسازی رزومه برای هر شغل
رزومه را بر اساس شغل و نیازهای آگهی شغلی تنظیم کنید. کلمات کلیدی مرتبط با هر شغل را در متن بگنجانید.
7. حضور آنلاین حرفهای
لینک پروفایلهای GitHub، LinkedIn و سایر منابع حرفهای را اضافه کنید تا تواناییها و تجربیات شما قابل مشاهده باشند.
8. طراحی ساده و حرفهای
از طراحی شیک و ساده استفاده کنید. از رنگها و استایلهای پیچیده پرهیز کنید.
9. نوشتن خلاصه حرفهای
یک خلاصه کوتاه در بالای رزومه اضافه کنید که تجربهها، تخصصها، و هدف شغلیتان را بیان کند.
10. تجربیات داوطلبانه
فعالیتهای داوطلبانه و اجتماعی مثل برگزاری سمینارها یا مشارکت در پروژههای اجتماعی را اضافه کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM