کداکسپلور | CodeExplore
7.93K subscribers
2K photos
340 videos
103 files
1.82K links
با کد اکسپلور یاد بگیر، لذت ببر و بروز باش ⚡️😉

سایت:
CodeExplore.ir
👨🏻‍💻 ارتباط با ما :
@CodeExploreSup
گروه :
@CodeExplore_Gap
تبلیغات در کد اکسپلور :
@CodeExploreAds
Download Telegram
👀 سخت‌ترین زبان‌های برنامه‌نویسی

در این مطلب 4 مورد از سخت‌ترین زبان‌های برنامه‌نویسی که برای یک برنامه‌نویس عادی کابوس هستند را معرفی می‌کنیم.

1️⃣Malbolge
یکی از دشوارترین زبان‌های برنامه‌نویسی که نوشتن برنامه‌های ساده در آن معادل با دو سال کار است.
برنامه Hello World:
(=<#9]~6ZY32Vx/4Rs+0No-&Jk)”Fh}|Bcy?=*z]Kw%oG4UUS0/@-ejc(:’8dc

2️⃣Cow Programming Language
زبان برنامه‌نویسی بر اساس صداهای گاوها (Moo) با ۲۴ حالت دستوری مختلف.
برنامه Hello World:
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOoMOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo MooOOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo

3️⃣Brainfuck
زبان esoteric با تنها ۸ دستور: < > + – . , [ ]
برنامه Hello World:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

4️⃣INTERCAL
یک زبان کامپایلری با دستورات عجیب و ترکیبی از زبان‌های دیگر.
برنامه Hello World:
PLEASE DO ,1 <- #13

DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #112
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #238
DO ,1 SUB #7 <- #26
DO ,1 SUB #8 <- #248
DO ,1 SUB #9 <- #168
DO ,1 SUB #10 <- #24
DO ,1 SUB #11 <- #16
DO ,1 SUB #12 <- #158
DO ,1 SUB #13 <- #52

PLEASE READ OUT ,1
PLEASE GIVE UP

برای نمونه کدهای بیشتر و اطلاعات اضافی به منابع تخصصی مراجعه کنید:

🌐 https://roocket.ir/articles/hardest-programming-languages

#Language #programming
☕️ @CodeExplore | </Dr.Parsa>
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥96🔥4😁3💔2
کداکسپلور | CodeExplore
حالا که اموزش کاربردی گیت و گیت هابمون تموم شده وقتشه بریم سراغ اموزش بعدی، چی دلتون میخاد؟
دوستان طبق نظرسنجی آموزش رو با برنامه نویسی شی گرا ادامه میدیم و بصورت روزانه راجب یک موضوع از OOP پست قرار میدیم.

در ادامه هم بقیه موارد رو با انتخاب خودتون آموزش میدیم 😉🧡
🔥13❤‍🔥74💔1
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 زیر یک دقیقه خطاهای کدتو پیدا کن

⭐️ هوش مصنوعی Deepseek Coder به شما کمک می‌کنه تا خطاهای کد خودتون رو به سادگی پیدا کنید

تقریباً از تمام زبان های رایج پشتیبانی می‌کنه!

🔺 coder.deepseek.com/sign_in

#ai #deepseekCoder
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤‍🔥54
👋خوش آومدین به اولین قسمت از آموزش OOP و قراره توی این سری آموزشیمون، قواعد، فواید و ویژگی های OOP رو بشناسیم و باهاش کار کنیم

◀️تعریف OOP : برنامه نویسی شیءگرا یک روش برنامه نویسیه که برنامه رو بر اساس داده ها یا شیء(Object) ها به جای عملکرد ها و منطق سازماندهی میکند، یک شیء میتونه به عنوان یه فیلد داده تعریف بشه که ویژگی ها و رفتار های منحصر به فرد خودشو داره.

1️⃣گام اول OOP جمع آوری تمام شیءهایی هست که برنامه نویس میخاد ازشون استفاده کنه و دستکاریشون کنه، شما باید بدونین این شیء ها چطوری کار میکنن و چطور به هم دیگه مرتبط هستن

ساختار برنامه نویسی شیء گرا (OOP):
🔴-کلاس ها ( Classes ) :کلاس ها انواع داده تعریف شده توسط کاربر هستن که به عنوان یه طرح کلی برای ساخت شیء ها عمل میکنن.
🔴-شیء ها ( Objects ) : نمونه هایی ( instance ) از کلاس ها هستن که با داده هایی که به طور خاص تعریف شده‌اند ایجاد میشن،.
🔴-متود ها ( Methods ) : فانکشن هایی هستن که داخل کلاس تعریف میشن و رفتار های یک شیء رو توصیف میکنن،
🔴-ویژگی ها ( Attributes ) : ویژگی ها در الگوی کلاس ها تعریف میشن و وضعیت یک شیء رو نشون میدن، ویژگی های کلاس متعلق به خود کلاس هتسن

اصول اصلی OOP :
🔴-پوشش ( Encapsulation ) : این اصل میگه که تمام اطلاعات مهم در داخل یک شیء قرار داره و فقط اطلاعات انتخابی فاش میشه، پیاده سازی وضعیف هر شیء به طور خصوصی داخل کلاس تعریف شده و نگهداری میشه
🔴-تجرید ( Abstraction ) : شیءها فقط مکانیزم های داخلی را که برای استفاده از شیءهای دیگه مربوط هست رو فاش میکنن، و هر کد اجرایی غیر ضروری رو مخفی میکنن.
🔴-ارث بری ( Inheritance ) : کلاس ها میتونن کد رو از کلاس های دیگه استفاده مجدد کنن، روابت و زیرکلاس ها بین شیءها میتونن اختصاص داده بشن
🔴-چندریختی ( Polymorphism ) : شیءها طراحی شدن تا رفتار هارو به اشتراک بزارن و میتونن چندین شکل به خودشون بگیرن

#oop #oop_1
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤‍🔥54
زبان های خالص محبوب برای OOP :
Ruby , Scala , JADE , Emerald
این زبان ها عمدتا برای OOP طراحی شدن:
Java , Python , C++
زبان هایی که با OOP جفت میشن:
Visual Basic .NET , PHP , JavaScript

💎ویژگی های OOP :
-ماژولار ( Modularity ) : پوشش باعث میشه که شی ها خود کفا بشن و دیباگ و عیب یابی و توسعه همکاری خیلی آسون تر بشه
-قابلیت استفاده مجدد کد ( Reusability ) : کد ها میتونن از طریق ارث بری دوباره استفاده بشن، به این معنی که تیم شما دیگه نیاز نیست یه کد رو چند بار بنویسه.
-بهره وری ( Productivity ) : برنامه نویسا میتونن برنامه های جدید رو سریع تر با استفاده از کتابخونه های متعدد و قابل استفاده مجدد بسازن
-مقیاس پذیر و قابل ارتقا ( Easily upgradable and scalable ) : برنامه نویسا میتونن عملکرد های سیستم برنامه رو به طور مستقل پیاده سازی کنن
-توصیفات رابط ( Interface descriptions ) : سیستم های خارجی ساده هستن و به همین دلیل تکنلیک های ارسال پیام که برای ارتباط شیء ها استفاده میشن.
-امنیت ( Security ) : با استفاده از پوشش و تجرید ، کد پیچیده مخفی میشه و نگهداری نرم افزار آسان تر میشه و علاوه بر اون، پروتکل های اینترنت محافظت میشن.
-انعطاف پذیری ( Flexibility ) : چند ریختی اجازه اینو میده که یک تابع واحد به کلاس که داخل اون قرار داره تنظیم بشه و شیء های مختلف هم از طریق یک رابط یکسان رد بشن.

#oop #oop_2
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6❤‍🔥3
۳ تا کتاب مناسب یادگیری پایتون ⌨️

1⃣ Automate the Boring Stuff with Python:
نوشته آل سوئِیگارت: این کتاب مناسب مبتدی‌هاست و روی پروژه‌های عملی تمرکز داره. از طریق مثال‌های کاربردی، مثل کار با فایل‌ها، ارسال ایمیل و کراول کردن وب، به شما یاد می‌ده که چطور کارهای روزمره رو با پایتون خودکار کنید.
🔥🔥🔥🔥🔥🔥🔥🔥
🔢Python Crash Course:
نوشته اریک متیز: این کتاب یک راهنمای جامع و سریع برای مبتدی‌هاست که شامل دو بخشه؛ بخش اول اصول پایه‌ای پایتون رو پوشش می‌ده و بخش دوم به پروژه‌های عملی مثل ساخت بازی و توسعه وب اختصاص داره. این کتاب به شما کمک می‌کنه مهارت‌های خودتون رو سریعاً تقویت کنید.
🔥🔥🔥🔥🔥🔥🔥🔥
🔢Learning Python:
نوشته مارک لوتر: این کتاب به‌طور جامع و کامل به اصول پایتون می‌پردازه و برای کسانی که می‌خوان عمیق‌تر به زبان پایتون مسلط بشن مناسبه. با توضیحات دقیق و مثال‌های کاربردی، این کتاب شما رو از مفاهیم پایه‌ای تا موضوعات پیشرفته‌ی پایتون هدایت می‌کنه.

#book #python
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤‍🔥53
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت اول )

1️⃣ارور میخوری پنیک نکن. متن ارورتو بخونش، اونو برا آدمیزاد نوشتن. یا خودت میتونی یا گوگل کمک میکنه فیکسش میکنی ولی حداقل بخونش که بفهمی داری چیو فیکس میکنی

2️⃣کدی که تو اینترنت میبینی رو بهش زیاد مطمئن نباش. شاید داره با نسخه های قدیمتر کار میکنه. اصلا شاید درست کار نکنه. چارتا سایت مختلفو بخون چیزایی که گفتنو بزار رو هم با عقل خودت تصمیم بگیر

3️⃣داکیومنت رسمی بخون. تنها مرجع هرچیزی داکیومنشن رسمی خودشه. از بلاگا و سایتای کف اینترنت به عنوان مرجع استفاده نکن. اونا کاربردشون برا وقتیه که کلیت قضیه رو فهمیدی. از سر تنبلی اینکارو نمیکنی اخرم مجبور میشی بخونی فقط دهنت سرویس میشه

1/4
🔥🔥🔥🔥🔥🔥🔥🔥
منبع :
🖥 https://twitter.com/i/status/1738858138588110859

#developer #programming #advice
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥269🔥4
حق؟

#fun
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
😁236💔4❤‍🔥3🔥3
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت اول ) 1️⃣ارور میخوری پنیک نکن. متن ارورتو بخونش، اونو برا آدمیزاد نوشتن. یا خودت میتونی یا گوگل کمک میکنه فیکسش میکنی ولی حداقل بخونش که بفهمی داری چیو فیکس میکنی 2️⃣کدی که تو اینترنت میبینی رو…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت دوم )

4️⃣اول حدس بزن بعد تست کن. برای اینکه یه ارور رو فیکس کنی سرتو ننداز پایین هرچی میبینیو انگول کنی شاید یه فرجی بشه. اصلا گیریم بشه؟ خب حالا چطور میخوای بفهمی چی شد درست شد؟ اول فکر کن یه حدس تو ذهنت درست کن بعد برو تستش کن.

5️⃣یه لایبرری رو میخوای یاد بگیری نیارش وسط پروژه خر تو الاغ. قشنگ یه محیط تر تمیز درست کن اونجا اروم اروم بالا بیارش حالا دستت راه افتاد با لایبرری های دیگه اینتگریتش کن، ببرش توی انوایرمنت های دیگه. اینطوری خودتم بهتر میفهمی به ولله

6️⃣استفاده کردن از اوپن سورس رو یاد بگیرید. شما نمیتونید همه ابزارا و لایبرری های اوپن سورس رو قبل اینکه لازم شه تست کنید. پس یاد بگیرید چطور تشخیص بدید کدومشون خوبن کدومشون بد.
حالا چطور تشخیص بدیم؟ بهترین راه بررسی استار و ایشو های گیتهابه بنظرم

2/4
🔥🔥🔥🔥🔥🔥🔥🔥
منبع:
🖥 https://twitter.com/i/status/1738858138588110859

#developer #programming #advice
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥196🔥3😁1
⚡️مرتب کردن آرایه های String ، اعداد یا Objects در JavaScript
ما برای مرتب کردن string ها متود های داخلی ()sort و ()reverse رو داریم ولی چطوری اعداد یا یه آرایه از object هارو مرتب کنیم؟؟

// Sort String Array
const stringArr = ["Joe", "Kapil", "Steve", "Musk"]
stringArr.sort();
stringArr.reverse();

// Sort Number Array
const array = [40, 100, 1, 5, 25, 10];
array.sort((a,b) => a-b);
array.sort((a,b) => b-a);

// Sort Array of Objects
const objectArr = [
{ first_name: 'Lazslo', last_name: 'Jamf' },
{ first_name: 'Pig', last_name: 'Bodine' },
{ first_name: 'Pirate', last_name: 'Prentice' }
];
objectArr.sort((a, b) => a.last_name.localeCompare(b.last_name));


#javascript #array #objects
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10🔥63
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت دوم ) 4️⃣اول حدس بزن بعد تست کن. برای اینکه یه ارور رو فیکس کنی سرتو ننداز پایین هرچی میبینیو انگول کنی شاید یه فرجی بشه. اصلا گیریم بشه؟ خب حالا چطور میخوای بفهمی چی شد درست شد؟ اول فکر کن یه حدس…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت سوم )

7️⃣یاد بگیرید حدودا بفهمید! وقتی داری چیزای جدید یاد میگیری یا اصلا سعی میکنی از چیزای جدید استفاده کنی با یه کوهی از ندونسته ها روبرو میشی، اندازه ای که لازمه عمیق شو! اگه عشقشو داری دمت گرم فقط حواست باشه از موضوع اصلی دور شدی جایزه هم به این زودیا نمیگیری

8️⃣از اول گندش نکن. یاد بگیر مسئله رو کوچیک کنی! کلا نرم افزار های خوب از تیکه های کوچیک ساخته شدن. اینطوری راحت ترم میتونی مشکلای برنامه تو بفهمی و دهنتم سرویس نمیشه هی به بقیه بگی چرا فلان کارو هنوز انجام ندادی

9️⃣قبل اینکه کامیتش کنی مطمعن شو کار میکنه!
شاید بگی مگه خری پیدا میشه تست نکرده کامیت کنه که باید بگم لطف دارین، من یسری با همین فرمون هوم پیج بلد رو ترکوندم و بعد اینکه عالم و آدم فهمیدن ریورت کردیم

3/4
🔥🔥🔥🔥🔥🔥🔥🔥
منبع:
🖥 https://twitter.com/i/status/1738858138588110859

#developer #programming #advice
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥146🔥4
🔥برگشتیم با ادامه مباحث OOP و امروز قراره درباره مفاهیم و مباحث OOP بیشتر صحبت کنیم و موارد داخلش رو بیشتر بررسی کنیم

👑خب ما داخل جلسه قبل درباره OOP توضیح دادیم و گفتیم شامل یسری مواردی میشه که یه توضیح کوتاهی هم دادیم حالا اومدیم که توضیحات بیشتری با مثال برای درک بهتر ارائه بدیم

◀️کلاس ها ( Classes ) : گفتیم که کلاس ها توی برنامه نویسی شیءگرا یه قالب و طرح کلی هستن که برای ساختن شیء ها به کار میرن، یه کلاس هم شامل داده ها و متغیر ها و توابعیه که باهاشون کار میکنه.
برای مثال میتونیم یه کلاس Car داشته باشیم که این موارد رو داخل خودش داره:
متغیر یا پراپرتی های color , model , year برای ویژگی های ماشین و توابع زیر ( البته گفتیم تابعی که داخل ابجکت باشه بهش میگن متود)
start() , stop() , accelerate()


حالا ما اگر بخایم داخل javascript این کلاس رو بسازیم کدش به شکل زیر میشه:

class Car{
constructor(color , model , year){
this.color = color;
this.model = model;
this.year = year;
}

start() {
//Codes
}

stop() {
//Codes
}

accelerate() {
//Codes
}

logColor(){
console.log(this.color);
}
}


خب این کد های ما الان دارن یه کلاس رو نشون میدن که یه constructor یا همون سازنده داره و یسری ورودی هارو دریافت میکنه و اونارو به ویژگی های شیء نسبت میده، و یسری متود هم داریم که فعلا داخلشون کدی نزدیم ولی یه تابع logColor داریم که برامون رنگ ماشین رو چاپ میکنه ( دقت کنین دوستان دیگه اینجا کلمه کلیدی this اشاره به همون ابجکتمون داره)

◀️شیءها ( Objects ) : شیء ها همون نمونه هایی هستن که از کلاس ها میسازیم، ما الان وقتی که کلاس Car رو ساختیم میتونیم شیء های مختلف و زیادی رو از روش بسازیم

برای ساخت شیء از روی کلاس ها توی javascript این کار رو میکنیم:
const myCar = new Car("red" , "206" , 2023);


الان اینجا ما یه متغیر ( البته چون const به کار رفته ثابت هست ) ساختیم و این ثابت با اسم myCar یه اینستنس هست از کلاس Car و ورودی هایی که داخل constructor مشخص کرده بودیم رو براش فرستادیم

حالا بیاین ببینیم داره چه اتفاقی میوفته
myCar.logColor();
console.log(myCar);
const anotherCar = new Car("blue" , "234" , 2021)
console.log(anotherCar);
anotherCar.logColor()


🔵ما اینجا اول اومدیم ثابت myCar رو از متود logCar خودش استفاده کردیم تا رنگش رو لاگ بگیره، و بعدش هم خودمون کل ابجکت رو لاگ گرفتیم، یه ثابت دیگه به اسم anotherCar ساختیم و اونو هم لاگ گرفتیم، میبینیم که با اینکه کلاس های هردو یکی هست و هردو یه متود logColor دارن ولی خروجی ها متفاوته

💎دوستان لطفا توی هر زبان برنامه نویسی که کار میکنین سعی کنین این شیءگرایی و مثال هارو ببرین جلو و خودتون بررسیش کنین

#oop #oop_3
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥4🔥4
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت سوم ) 7️⃣یاد بگیرید حدودا بفهمید! وقتی داری چیزای جدید یاد میگیری یا اصلا سعی میکنی از چیزای جدید استفاده کنی با یه کوهی از ندونسته ها روبرو میشی، اندازه ای که لازمه عمیق شو! اگه عشقشو داری دمت…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت چهارم )

0️⃣1️⃣ قبل اینکه شروع کنی ریز کارایی که باید انجام بدی رو در بیار!
اینطوری یدور مسئله رو تو ذهنت حل میکنی و کار برات شفاف میشه. بخصوص برا تسکایی که میبینیشون وحشت میکنی این خیلی بکار میاد.

1️⃣1️⃣قبل اینکه شروع بکنی ایدت رو برای حل مسئله (مورد ۱۰) چکش بزن. اره احتمالا اخرشم میبینی باز جای چکش خوردن داره ولی اینطوری حداقل خیالت از مشکلای ساختاری یکم راحت میشه.
اگه یبار یکی مرج ریکوئستتونو کلوز کنه بگه از اول بزن اینو تجربی هم یاد میگیری :))

2️⃣1️⃣بریز دور از اول بزن!
اینو خیلی سال پیش @hmakme یادم داد. یه تسکی رو هی روش زور میزدم نمیشد زورم کرد اخرش از اول بزنم. با بغض زدم ولی شد! خیلی بهترم شد!۱۳- اگه نمیتونی تو مغزت درکش کنی بیارش رو کاغذ. من یه دورانی اعتیاد داشتم به حل مسئله با کاغذ. باعث میشد تمرکزم بیشتر شه و اشتباهاتم رو ببینم. انشا ننویس. چیزایی که تو مغزت میگزره رو بنویس. اشکال نداره شلخته هم باشه، فقط بنویس. اعتماد به نفست هم بیشتر میکنه اینکار.

3️⃣1️⃣قبل دسکاری کد، پروژه رو بفهم! برای اینکه بتونی توی پروژه کانتریبیوت کنی نیازه اون پروژه رو بشناسی. بدونی استراکچر چیه یوتیلایی که هست چیه اصلا فانکشنالیتی رو درک کنی. همینطور سرتو ننداز پایین بخوای ابروشو درست کنی چششو کور کنی

4/4
🔥🔥🔥🔥🔥🔥🔥🔥
منبع :
🖥 https://twitter.com/i/status/1738858138588110859

#developer #programming #advice
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥107❤‍🔥4
میتونی از دور ببینی و حسرت بخوری؛
میتونی بگی من بدستش میارم و لذتشو ببری
🤍

#motivational
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥207🔥6
پایتون 😂

#fun
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27🔥4❤‍🔥3
سلام به همه دوستان کد اکسپلوری ✌️
قراره امروز در رابطه با underscore در پایتون صحبت کنیم.(که واقعا احتمال میدم طولانی بشه )
شاید underscore برای تازه کارا یکم جدید باشه ولی زیاد به اسمش کار نداشته باشید چون همون آندرلاین خودمونه (_)

بخوام خیلی جامع توضیح بدم کلا ۵ حالت داریم که از underscore توی پایتون استفاده میکنیم.

1️⃣ اولین حالت بصورت استفاده خالی ازشه ، بزارید یه مثال ریز بزنم :
_ = 'hello'
# Or
for _ in range(1, 10):
print(_)

اگه جایی همچین چیزی دیدید ، اولین موردی که باید بدونید ، اینه که خود پایتون همیشه اخرین مقداری که به مفسر میدید رو داخل _ میریزه (به عنوان last variable) و دومین چیزی که باید بدونید اینه که برنامه نویسی که از underscore خالی استفاده میکنه، دنبال یه متغیر موقت میگرده و جای دیگه ایی ازش استفاده نمیکنه (مثلا داخل حلقه خیلی استفادش منطقیه 🙄)

کلا زمانی از underscore خالی استفاده میکنیم که واقعا نیازی به متغیر در جاهای دیگه نداریم و کلا فقط همونجا بکارمون میاد‌ 🫠

حالت دوم تا پنجم استفاده از underscore در واقع میشه گفت به جایگشته !
یعنی یا قبل از اسم میاد یا بعدش یا از هر دو طرفش یا یدونه میاد یا دوتا
احتمالا گیج شدید ☹️

ولی الان مثال میزنم که درک کنیم.

2️⃣حالت دوم زمانیه که شما از یدونه underscore قبل از اسم یا متود استفاده میکنید . مثل زیر :
_name = 'xxx'
def _fun():
print(1)

خب حالا اصلا این اسم گذاری چیکار میکنه؟
اگه زبان دیگه ایی مثل جاوا یا php کار کرده باشید میدونید که اعضا داخل کلاس ها Access Modifiers دارن (خیلی ساده بخوام بهش اشاره کنم ، یعنی تعریف میکنه این متغیر از کجا بهش دسترسی داریم و کجا نداریم)
اگرم فقط پایتون کار کردید میدونید که پایتون اکسس مکسس نمیشناسه 🫡
و نمیتونید براش public , private و ... تعریف کنید . حالا اینارو برای چی گفتم؟ که برسم به underscope قبل از اسم؛ دقیقا یدونه اندرلاین قبل از اسم تابع یا متغیر باعث میشه که ما اون متغیر یا تابع رو private ببینیم و بدونیم که خارج از این کلاس استفاده نمیشه (البته توجه کنید که پایتون اصلا پیگیر اینا نیست! یعنی شما _ هم بزارید و import کنید بازم میتونید به اون متغیر دسترسی داشته باشید! این نوع نام گذاری بیشتر برای مشخص کردن برای خودتون و اعضا تیمه وگرنه خود پایتون کلا اهمیتی بهش نمیده! 😕)
البته نه که کلا اهمیت نده! زیر یه مثال میزنم تا اهمیتشو ببنیم :
Class C1:
name = 'amir'
_age = 21

فایل بالا رو ایمپورت میکنیم :
Class C2:
from C1 import name, _age

# کد بالا خیلی راحت بدون ارور اجرا میشه


# # # # #


import C1
C1._age

# بازم کد بالا بدون ارور اجرا میشه


# # # # #


from C1 import *
print(_age)

# ایندفعه به ارور میخوریم! پایتون فقط در زمانی آندراسکوپ رو ایمپورت نمیکنه که شما ستاره بزارید، در غیر اینصورت خیلی معمولی رفتار میکنه!!!!

حالت سومو من خودم خیلی دوست دارم😄

3️⃣ حالت سوم شما underscore رو بعد از اسم قرار میدید (ولی نه هر اسمی!) یعنی میشه گفت یجور تریک حساب میشه. مثلا شما میخواید یه متغیر تعریف کنید به اسم class ولی class خودش یه کلمه کلیدیه (شاید بگید خب اسمشو عوض میکنیم! اما یه وقتایی دقیقا اون متغیر نیاز به همچین اسمی داره ) اینجاست که به عنوان برنامه نویس underscore رو به ته اسم اضافه میکنیم :
class = 'class one'
# error bteaking
class_ = 'class two'
# without error

#پست_پیشنهادی
#part1
#python #underscore #variable #oop
☕️ @CodeExplore
12🔥10❤‍🔥4
خب ادامه حالت هارو هم بگم تا نصفه ولش نکنیم 😀
خب حالت چهارم یکمی از سادگی خارج میشه و وارد بحث شی گرایی میشه! از الان بگم !

4️⃣ حالت چهارم شما دوتا underscope قبل اسم میزاری (که بهش میگن double underscope یا بین برنامه نویسا جا افتاده dunder) یعنی متغیر name__ رو میخونیم داندر نِیم

حالا جدا از اسمش ، این یکی دقیقا چیکار میکنه برامون؟ اینو کلا باید با مثال برم جلو 🤓

فرض کنید ما دوتا کلاس داریم که یکی از کلاس ها از اون یکی ارث بری میکنه :
class Human():
def __init__(self):
self.sex = 'male'
self.name = 'karim'

class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.name = 'math'

اگه به کلاس های بالا نگا کنید توی جفتشون یه فیلد name داریم ، و چون کلاس teacher از human ارث بری میکنه و داخل خودش صداش میزنه دوتا فیلد name باهم قاطی میشن 🥲
اونوقت ما چجوری میتونیم به جفتشون دسترسی داشته باشیم؟

اینجاست که dunder میاد وسط و مثال بالا رو تغییر میدیم:
class Human():
def __init__(self):
self.sex = 'male'
self.__name = 'karim'

class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.__name = 'math'

شاید بگید خب الانم که اسماشون باز شبیه همه، ولی داندر داره! اینجاست که پایتون میگه من دخالت میکنم و اسامی که به صورت dunder دار نوشته شدن رو تغییر میدم😎
بیاید یه شی بسازیم و ببنیم توش چیه :
t1 = Teacher()
dir(t1)
# ['_Human__name', '_Teacher__name', 'sex', 'count']

میبیند که با اضافه کردن dunder پایتون کلا اسم پراپرتی رو عوض کرد و اسم کلاس رو اولش چسبوند. اینجوری خیلی راحت از هم تفکیک میشن😁

5️⃣ و آخرین حالتم زمانیه که شما یه dunder اول اسم میزارید و یدونه هم اخر اسم
که میشه مثل ‌_‌_init_‌_ که بهش میگن magic method و خود مفسر پایتون کاری به این نوع اسم گذاریتون نداره و فقط برای خوانایی کده! یعنی خودتون تصمیم میگیرد فلان تابع رو اینجوری تعریف کنید برای فلان کار (یعنی برای یه کار خاص رزروش کنید و بدونید خارج از اونجا هم کاری باهاش ندارید و فقط برای یه کاره)

مثلا همین _‌_init_‌_ رو وقتی داخل یه کلاس صدا میزنید یعنی تابع سازنده رو صدا زدید و میدونید که این تابع هم خارج از خود کلاس به کار نمیاد و فقط رزرو شده برای سازنده بودن!


در اخرم باید بگم برای سنیور شدن حتما این چیزا رو رعایت کنید. هم برای درک خودتون خوبه هم برای بقیه برنامه نویسایی که کدتونو نگا میکنن

دیگه کوتاه تر از این نمیتونستم بکنم.
روز خوبی داشته باشید💓

#پست_پیشنهادی
#part2
#python #underscope #oop
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
13❤‍🔥9🔥6
تو ابزار زیر می تونین ارائه هاتون رو توی ترمینال داشته باشید.

🌐 https://github.com/jaspervdj/patat/

#presentation #terminal
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥54🔥4
سه تابع نسبتا کاربردی در پایتون ⌨️

🔢 bin():
این تابع عدد رو به باینری (دو دویی) تبدیل می‌کنه. یعنی به زبون کامپیوتر که فقط صفر و یک می‌فهمه. مثلا:


   number = 10
binary = bin(number)
print(binary)
# خروجی: '0b1010'

اینجا عدد ۱۰ به باینری شده ۱۰۱۰ که کامپیوتر می‌فهمه. اون 0b هم نشون میده که این یه عدد باینریه.

🔢 oct():
این تابع عدد رو به سیستم هشت‌تایی تبدیل می‌کنه. یعنی به جای ده تا رقم (۰ تا ۹) از هشت تا رقم (۰ تا ۷) استفاده می‌کنه. مثلا:


   number = 10
octal = oct(number)
print(octal)
# خروجی: '0o12'

اینجا عدد ۱۰ به هشت‌تایی شده ۱۲. اون 0o هم نشون میده که این عدد هشت‌تاییه.

🔢 hex():
این تابع عدد رو به هگزادسیمال (شانزده‌تایی) تبدیل می‌کنه. یعنی از رقم‌های ۰ تا ۹ و حروف A تا F استفاده می‌کنه. مثلا:


   number = 255
hexadecimal = hex(number)
print(hexadecimal)
# خروجی: '0xff'

اینجا عدد ۲۵۵ به شانزده‌تایی شده FF. اون 0x هم نشون میده که این عدد هگزادسیماله.

به چه کاری میان؟
به درد وقتی می‌خورن که بخوای با سیستم‌های عددی مختلف کار کنی یا مثلا وقتی با برنامه‌نویسی سطح پایین و سخت‌افزار سروکار داری.

#python #bin #oct #hex
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥4❤‍🔥3
🔥برگشتیم با یه اموزش دیگه از اموزش های OOP

امروز قراره به ادامه مباحث OOP و ساختار کلاس ها و ویژگی های اون بپردازیم

داخل آموزش قبلی یسری مثال هایی زدیم و بیشتر تمرکزمون روی کلاس و آبجکت بود، امروز قراره درباره 4 مفهوم دیگه صحبت کنیم:

🔵متود ها ( Methods ) : همونطور که قبلا گفتیم، متود ها همون فانکشن هایی هستن که داخل یه آبجکت وجود دارن، این فانکشن ها میتونن روی ویژگی های آبجکت تاثیراتی بزارن و با اونا کار کنن

🔵پراپرتی ها ( Properties ) : همون ویژگی ها و متغیر هایی هستن که به آبجکت تعلق دارن و میتونن هر نوعی از داده رو نگه دارن

🔵سازنده ( Constructor ) : سازنده یه متود خاصه که داخل کلاس وجود فراخوانی میشه، این متد معمولا برای مقدار دهی آبجکت جدید به کار میره و یسری ورودی میتونه بگیره که نسبتشون بده به آبجکت

🔵مخرب ( Destructor ) : مخرب هم یه متود خاص دیگه داخل کلاس هست که وقتی یک آبجکت دیگه نیاز نباشه فراخونی میشه و حذفش میکنه، این متود معمولا برای پاکسازی به کار میره تا حافظه رو خالی کنی یا اتصالات رو ببندی و داخل php و ++C استفاده میشه، توی Python و Java هم وجود دارن اما تو یسری زبان های دیگه به صورت خودکار و شکل های مختلف وجود دارن، مثلا داخل JavaScript میتونیم از کلمه کلیدی delete استفاده کنیم تا پراپرتی های یک آبجکت رو حذف کنیم یا حتی خود متغیر و ابجکتمون رو خالی کنیم

بریم یه مثال قشنگ هم باهم ببینیم:

class Person{
constructor(personName , personAge){
this.name = personName;
this.age = personAge;
}

walk(){
console.log(`${this.name} started walking`);
}
}

let person = new Person("Reza" , 50);

person.walk();

console.log(person);
delete person.age;
console.log(person);
let person = null;


📌خب توی مثال بالا ما یه کلاس Person داریم و سازنده کلاسمون میشه همون constructor که توی ورودی، اسم و سن شخص رو میگیره، داخل متود سازنده، ما property های آبجکت رو میسازیم و مقدار های ورودی رو بهشون نسبت میدیم حتی میشه یه مقدار دیفالت خودمون بزاریم و از ورودی نگیریم!
متود walk هم میاد یه جمله چاپ میکنه

⭐️حالا ما یه متغیر person ساختیم و این یه اینستنس یا نمونه از کلاس Person هست و ورودی هایی که توی constructor توضیح دادیم رو اینجا بهش پاس میدیم و آبجکتمون ساخته میشه
بعدش از متود walk استفاه کردیم

💎داخل خط های اخر هم مفهوم Destructor رو توی جاوا اسکریپت پیاده کردیم، اومدیم اول پراپرتی age رو ازش حذف کردیم، بعدشم کل متغیر رو خالی کردیم

#oop #oop_4
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥4🔥4
🔵 ایجاد پالت های رنگی با استفاده از تابع ()color-mix در CSS

تابع ()color-mix به ما این اجازه رو میده تا دو رنگی که می خوایم مخلوط کنیم رو مشخص کنیم و بعدش نتیجه رو خروجی بده. ما می تونیم مقدار هر رنگ در مخلوط رو کنترل کنیم، همچنین فضای تداخل رنگ رو مشخص کنیم که تعیین میکنه چطوری رنگ ها با همدیگه ترکیب میشن.

ما مقدار هر رنگ رو به صورت درصد مشخص می کنیم. اگر درصدهای هر دو رنگ رو حذف کنیم، تابع ()color-mix به طور پیش فرض برای هر کدوم از اونها از 50% حساب میکنه. همونطور که تو کد زیر نشان دادیم ، مخلوط کردن رنگ قرمز و آبی با مقدار برابر، به ما یک سایه بنفش خروجی میده.
.result {
  background-color: color-mix(in srgb, blue, red);
}

#css #function #color‌
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤‍🔥64