در این مطلب 4 مورد از سختترین زبانهای برنامهنویسی که برای یک برنامهنویس عادی کابوس هستند را معرفی میکنیم.
یکی از دشوارترین زبانهای برنامهنویسی که نوشتن برنامههای ساده در آن معادل با دو سال کار است.
برنامه Hello World:
(=<#9]~6ZY32Vx/4Rs+0No-&Jk)”Fh}|Bcy?=*z]Kw%oG4UUS0/@-ejc(:’8dc
زبان برنامهنویسی بر اساس صداهای گاوها (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
زبان esoteric با تنها ۸ دستور: < > + – . , [ ]
برنامه Hello World:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.
یک زبان کامپایلری با دستورات عجیب و ترکیبی از زبانهای دیگر.
برنامه 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
برای نمونه کدهای بیشتر و اطلاعات اضافی به منابع تخصصی مراجعه کنید:
#Language #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9⚡6🔥4😁3💔2
کداکسپلور | CodeExplore
حالا که اموزش کاربردی گیت و گیت هابمون تموم شده وقتشه بریم سراغ اموزش بعدی، چی دلتون میخاد؟
دوستان طبق نظرسنجی آموزش رو با برنامه نویسی شی گرا ادامه میدیم و بصورت روزانه راجب یک موضوع از OOP پست قرار میدیم.
در ادامه هم بقیه موارد رو با انتخاب خودتون آموزش میدیم 😉🧡
در ادامه هم بقیه موارد رو با انتخاب خودتون آموزش میدیم 😉🧡
🔥13❤🔥7⚡4💔1
This media is not supported in your browser
VIEW IN TELEGRAM
تقریباً از تمام زبان های رایج پشتیبانی میکنه!
#ai #deepseekCoder
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤🔥5⚡4
ساختار برنامه نویسی شیء گرا (OOP):
♾اصول اصلی OOP :
#oop #oop_1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤🔥5⚡4
Ruby , Scala , JADE , Emerald
Java , Python , C++
Visual Basic .NET , PHP , JavaScript
-ماژولار ( Modularity ) : پوشش باعث میشه که شی ها خود کفا بشن و دیباگ و عیب یابی و توسعه همکاری خیلی آسون تر بشه
-قابلیت استفاده مجدد کد ( Reusability ) : کد ها میتونن از طریق ارث بری دوباره استفاده بشن، به این معنی که تیم شما دیگه نیاز نیست یه کد رو چند بار بنویسه.
-بهره وری ( Productivity ) : برنامه نویسا میتونن برنامه های جدید رو سریع تر با استفاده از کتابخونه های متعدد و قابل استفاده مجدد بسازن
-مقیاس پذیر و قابل ارتقا ( Easily upgradable and scalable ) : برنامه نویسا میتونن عملکرد های سیستم برنامه رو به طور مستقل پیاده سازی کنن
-توصیفات رابط ( Interface descriptions ) : سیستم های خارجی ساده هستن و به همین دلیل تکنلیک های ارسال پیام که برای ارتباط شیء ها استفاده میشن.
-امنیت ( Security ) : با استفاده از پوشش و تجرید ، کد پیچیده مخفی میشه و نگهداری نرم افزار آسان تر میشه و علاوه بر اون، پروتکل های اینترنت محافظت میشن.
-انعطاف پذیری ( Flexibility ) : چند ریختی اجازه اینو میده که یک تابع واحد به کلاس که داخل اون قرار داره تنظیم بشه و شیء های مختلف هم از طریق یک رابط یکسان رد بشن.
#oop #oop_2
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
نوشته آل سوئِیگارت: این کتاب مناسب مبتدیهاست و روی پروژههای عملی تمرکز داره. از طریق مثالهای کاربردی، مثل کار با فایلها، ارسال ایمیل و کراول کردن وب، به شما یاد میده که چطور کارهای روزمره رو با پایتون خودکار کنید.
نوشته اریک متیز: این کتاب یک راهنمای جامع و سریع برای مبتدیهاست که شامل دو بخشه؛ بخش اول اصول پایهای پایتون رو پوشش میده و بخش دوم به پروژههای عملی مثل ساخت بازی و توسعه وب اختصاص داره. این کتاب به شما کمک میکنه مهارتهای خودتون رو سریعاً تقویت کنید.
نوشته مارک لوتر: این کتاب بهطور جامع و کامل به اصول پایتون میپردازه و برای کسانی که میخوان عمیقتر به زبان پایتون مسلط بشن مناسبه. با توضیحات دقیق و مثالهای کاربردی، این کتاب شما رو از مفاهیم پایهای تا موضوعات پیشرفتهی پایتون هدایت میکنه.
#book #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤🔥5⚡3
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت اول )
1️⃣ ارور میخوری پنیک نکن. متن ارورتو بخونش، اونو برا آدمیزاد نوشتن. یا خودت میتونی یا گوگل کمک میکنه فیکسش میکنی ولی حداقل بخونش که بفهمی داری چیو فیکس میکنی
2️⃣ کدی که تو اینترنت میبینی رو بهش زیاد مطمئن نباش. شاید داره با نسخه های قدیمتر کار میکنه. اصلا شاید درست کار نکنه. چارتا سایت مختلفو بخون چیزایی که گفتنو بزار رو هم با عقل خودت تصمیم بگیر
3️⃣ داکیومنت رسمی بخون. تنها مرجع هرچیزی داکیومنشن رسمی خودشه. از بلاگا و سایتای کف اینترنت به عنوان مرجع استفاده نکن. اونا کاربردشون برا وقتیه که کلیت قضیه رو فهمیدی. از سر تنبلی اینکارو نمیکنی اخرم مجبور میشی بخونی فقط دهنت سرویس میشه
1/4
🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
منبع :
🖥 https://twitter.com/i/status/1738858138588110859
#developer #programming #advice
☕️ @CodeExplore
1/4
منبع :
#developer #programming #advice
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥26⚡9🔥4
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت اول ) 1️⃣ ارور میخوری پنیک نکن. متن ارورتو بخونش، اونو برا آدمیزاد نوشتن. یا خودت میتونی یا گوگل کمک میکنه فیکسش میکنی ولی حداقل بخونش که بفهمی داری چیو فیکس میکنی 2️⃣ کدی که تو اینترنت میبینی رو…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت دوم )
4️⃣ اول حدس بزن بعد تست کن. برای اینکه یه ارور رو فیکس کنی سرتو ننداز پایین هرچی میبینیو انگول کنی شاید یه فرجی بشه. اصلا گیریم بشه؟ خب حالا چطور میخوای بفهمی چی شد درست شد؟ اول فکر کن یه حدس تو ذهنت درست کن بعد برو تستش کن.
5️⃣ یه لایبرری رو میخوای یاد بگیری نیارش وسط پروژه خر تو الاغ. قشنگ یه محیط تر تمیز درست کن اونجا اروم اروم بالا بیارش حالا دستت راه افتاد با لایبرری های دیگه اینتگریتش کن، ببرش توی انوایرمنت های دیگه. اینطوری خودتم بهتر میفهمی به ولله
6️⃣ استفاده کردن از اوپن سورس رو یاد بگیرید. شما نمیتونید همه ابزارا و لایبرری های اوپن سورس رو قبل اینکه لازم شه تست کنید. پس یاد بگیرید چطور تشخیص بدید کدومشون خوبن کدومشون بد.
حالا چطور تشخیص بدیم؟ بهترین راه بررسی استار و ایشو های گیتهابه بنظرم
2/4
🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
منبع:
🖥 https://twitter.com/i/status/1738858138588110859
#developer #programming #advice
☕️ @CodeExplore
حالا چطور تشخیص بدیم؟ بهترین راه بررسی استار و ایشو های گیتهابه بنظرم
2/4
منبع:
#developer #programming #advice
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥19⚡6🔥3😁1
// 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10🔥6⚡3
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت دوم ) 4️⃣ اول حدس بزن بعد تست کن. برای اینکه یه ارور رو فیکس کنی سرتو ننداز پایین هرچی میبینیو انگول کنی شاید یه فرجی بشه. اصلا گیریم بشه؟ خب حالا چطور میخوای بفهمی چی شد درست شد؟ اول فکر کن یه حدس…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت سوم )
7️⃣ یاد بگیرید حدودا بفهمید! وقتی داری چیزای جدید یاد میگیری یا اصلا سعی میکنی از چیزای جدید استفاده کنی با یه کوهی از ندونسته ها روبرو میشی، اندازه ای که لازمه عمیق شو! اگه عشقشو داری دمت گرم فقط حواست باشه از موضوع اصلی دور شدی جایزه هم به این زودیا نمیگیری
8️⃣ از اول گندش نکن. یاد بگیر مسئله رو کوچیک کنی! کلا نرم افزار های خوب از تیکه های کوچیک ساخته شدن. اینطوری راحت ترم میتونی مشکلای برنامه تو بفهمی و دهنتم سرویس نمیشه هی به بقیه بگی چرا فلان کارو هنوز انجام ندادی
9️⃣ قبل اینکه کامیتش کنی مطمعن شو کار میکنه!
شاید بگی مگه خری پیدا میشه تست نکرده کامیت کنه که باید بگم لطف دارین، من یسری با همین فرمون هوم پیج بلد رو ترکوندم و بعد اینکه عالم و آدم فهمیدن ریورت کردیم
3/4
🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
منبع:
🖥 https://twitter.com/i/status/1738858138588110859
#developer #programming #advice
☕️ @CodeExplore
شاید بگی مگه خری پیدا میشه تست نکرده کامیت کنه که باید بگم لطف دارین، من یسری با همین فرمون هوم پیج بلد رو ترکوندم و بعد اینکه عالم و آدم فهمیدن ریورت کردیم
3/4
منبع:
#developer #programming #advice
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14⚡6🔥4
برای مثال میتونیم یه کلاس 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 اشاره به همون ابجکتمون داره)
برای ساخت شیء از روی کلاس ها توی 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()
#oop #oop_3
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8❤🔥4🔥4
کداکسپلور | CodeExplore
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت سوم ) 7️⃣ یاد بگیرید حدودا بفهمید! وقتی داری چیزای جدید یاد میگیری یا اصلا سعی میکنی از چیزای جدید استفاده کنی با یه کوهی از ندونسته ها روبرو میشی، اندازه ای که لازمه عمیق شو! اگه عشقشو داری دمت…
13 تا نصیحت طلائی که فقط یه دولوپر با تجربه بهت میگه! ( پارت چهارم )
0️⃣ 1️⃣ قبل اینکه شروع کنی ریز کارایی که باید انجام بدی رو در بیار!
اینطوری یدور مسئله رو تو ذهنت حل میکنی و کار برات شفاف میشه. بخصوص برا تسکایی که میبینیشون وحشت میکنی این خیلی بکار میاد.
1️⃣ 1️⃣ قبل اینکه شروع بکنی ایدت رو برای حل مسئله (مورد ۱۰) چکش بزن. اره احتمالا اخرشم میبینی باز جای چکش خوردن داره ولی اینطوری حداقل خیالت از مشکلای ساختاری یکم راحت میشه.
اگه یبار یکی مرج ریکوئستتونو کلوز کنه بگه از اول بزن اینو تجربی هم یاد میگیری :))
2️⃣ 1️⃣ بریز دور از اول بزن!
اینو خیلی سال پیش
3️⃣ 1️⃣ قبل دسکاری کد، پروژه رو بفهم! برای اینکه بتونی توی پروژه کانتریبیوت کنی نیازه اون پروژه رو بشناسی. بدونی استراکچر چیه یوتیلایی که هست چیه اصلا فانکشنالیتی رو درک کنی. همینطور سرتو ننداز پایین بخوای ابروشو درست کنی چششو کور کنی
4/4
🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
منبع :
🖥 https://twitter.com/i/status/1738858138588110859
#developer #programming #advice
☕️ @CodeExplore
اینطوری یدور مسئله رو تو ذهنت حل میکنی و کار برات شفاف میشه. بخصوص برا تسکایی که میبینیشون وحشت میکنی این خیلی بکار میاد.
اگه یبار یکی مرج ریکوئستتونو کلوز کنه بگه از اول بزن اینو تجربی هم یاد میگیری :))
اینو خیلی سال پیش
@hmakme یادم داد. یه تسکی رو هی روش زور میزدم نمیشد زورم کرد اخرش از اول بزنم. با بغض زدم ولی شد! خیلی بهترم شد!۱۳- اگه نمیتونی تو مغزت درکش کنی بیارش رو کاغذ. من یه دورانی اعتیاد داشتم به حل مسئله با کاغذ. باعث میشد تمرکزم بیشتر شه و اشتباهاتم رو ببینم. انشا ننویس. چیزایی که تو مغزت میگزره رو بنویس. اشکال نداره شلخته هم باشه، فقط بنویس. اعتماد به نفست هم بیشتر میکنه اینکار.4/4
منبع :
#developer #programming #advice
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡7❤🔥4
میتونی از دور ببینی و حسرت بخوری؛
میتونی بگی من بدستش میارم و لذتشو ببری🤍
#motivational
☕️ @CodeExplore
میتونی بگی من بدستش میارم و لذتشو ببری
#motivational
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥20⚡7🔥6
سلام به همه دوستان کد اکسپلوری ✌️
قراره امروز در رابطه با underscore در پایتون صحبت کنیم.(که واقعا احتمال میدم طولانی بشه ✨)
شاید underscore برای تازه کارا یکم جدید باشه ولی زیاد به اسمش کار نداشته باشید چون همون آندرلاین خودمونه (_)
بخوام خیلی جامع توضیح بدم کلا ۵ حالت داریم که از underscore توی پایتون استفاده میکنیم.
1️⃣ اولین حالت بصورت استفاده خالی ازشه ، بزارید یه مثال ریز بزنم :
اگه جایی همچین چیزی دیدید ، اولین موردی که باید بدونید ، اینه که خود پایتون همیشه اخرین مقداری که به مفسر میدید رو داخل _ میریزه (به عنوان last variable) و دومین چیزی که باید بدونید اینه که برنامه نویسی که از underscore خالی استفاده میکنه، دنبال یه متغیر موقت میگرده و جای دیگه ایی ازش استفاده نمیکنه (مثلا داخل حلقه خیلی استفادش منطقیه 🙄)
کلا زمانی از underscore خالی استفاده میکنیم که واقعا نیازی به متغیر در جاهای دیگه نداریم و کلا فقط همونجا بکارمون میاد 🫠
حالت دوم تا پنجم استفاده از underscore در واقع میشه گفت به جایگشته !
یعنی یا قبل از اسم میاد یا بعدش یا از هر دو طرفش یا یدونه میاد یا دوتا
احتمالا گیج شدید ☹️
ولی الان مثال میزنم که درک کنیم.
2️⃣حالت دوم زمانیه که شما از یدونه underscore قبل از اسم یا متود استفاده میکنید . مثل زیر :
خب حالا اصلا این اسم گذاری چیکار میکنه؟
اگه زبان دیگه ایی مثل جاوا یا php کار کرده باشید میدونید که اعضا داخل کلاس ها Access Modifiers دارن (خیلی ساده بخوام بهش اشاره کنم ، یعنی تعریف میکنه این متغیر از کجا بهش دسترسی داریم و کجا نداریم)
اگرم فقط پایتون کار کردید میدونید که پایتون اکسس مکسس نمیشناسه 🫡
و نمیتونید براش public , private و ... تعریف کنید . حالا اینارو برای چی گفتم؟ که برسم به underscope قبل از اسم؛ دقیقا یدونه اندرلاین قبل از اسم تابع یا متغیر باعث میشه که ما اون متغیر یا تابع رو private ببینیم و بدونیم که خارج از این کلاس استفاده نمیشه (البته توجه کنید که پایتون اصلا پیگیر اینا نیست! یعنی شما _ هم بزارید و import کنید بازم میتونید به اون متغیر دسترسی داشته باشید! این نوع نام گذاری بیشتر برای مشخص کردن برای خودتون و اعضا تیمه وگرنه خود پایتون کلا اهمیتی بهش نمیده! 😕)
البته نه که کلا اهمیت نده! زیر یه مثال میزنم تا اهمیتشو ببنیم :
Class C1:
فایل بالا رو ایمپورت میکنیم :
Class C2:
حالت سومو من خودم خیلی دوست دارم😄
3️⃣ حالت سوم شما underscore رو بعد از اسم قرار میدید (ولی نه هر اسمی!) یعنی میشه گفت یجور تریک حساب میشه. مثلا شما میخواید یه متغیر تعریف کنید به اسم class ولی class خودش یه کلمه کلیدیه (شاید بگید خب اسمشو عوض میکنیم! اما یه وقتایی دقیقا اون متغیر نیاز به همچین اسمی داره ✅) اینجاست که به عنوان برنامه نویس underscore رو به ته اسم اضافه میکنیم :
#پست_پیشنهادی
#part1
#python #underscore #variable #oop
☕️ @CodeExplore
قراره امروز در رابطه با 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__ رو میخونیم داندر نِیم
حالا جدا از اسمش ، این یکی دقیقا چیکار میکنه برامون؟ اینو کلا باید با مثال برم جلو🤓
فرض کنید ما دوتا کلاس داریم که یکی از کلاس ها از اون یکی ارث بری میکنه :
اگه به کلاس های بالا نگا کنید توی جفتشون یه فیلد name داریم ، و چون کلاس teacher از human ارث بری میکنه و داخل خودش صداش میزنه دوتا فیلد name باهم قاطی میشن🥲
اونوقت ما چجوری میتونیم به جفتشون دسترسی داشته باشیم؟
اینجاست که dunder میاد وسط و مثال بالا رو تغییر میدیم:
شاید بگید خب الانم که اسماشون باز شبیه همه، ولی داندر داره! اینجاست که پایتون میگه من دخالت میکنم و اسامی که به صورت dunder دار نوشته شدن رو تغییر میدم😎
بیاید یه شی بسازیم و ببنیم توش چیه :
میبیند که با اضافه کردن dunder پایتون کلا اسم پراپرتی رو عوض کرد و اسم کلاس رو اولش چسبوند. اینجوری خیلی راحت از هم تفکیک میشن😁
5️⃣ و آخرین حالتم زمانیه که شما یه dunder اول اسم میزارید و یدونه هم اخر اسم
که میشه مثل __init__ که بهش میگن magic method و خود مفسر پایتون کاری به این نوع اسم گذاریتون نداره و فقط برای خوانایی کده! یعنی خودتون تصمیم میگیرد فلان تابع رو اینجوری تعریف کنید برای فلان کار (یعنی برای یه کار خاص رزروش کنید و بدونید خارج از اونجا هم کاری باهاش ندارید و فقط برای یه کاره)
مثلا همین __init__ رو وقتی داخل یه کلاس صدا میزنید یعنی تابع سازنده رو صدا زدید و میدونید که این تابع هم خارج از خود کلاس به کار نمیاد و فقط رزرو شده برای سازنده بودن!
در اخرم باید بگم برای سنیور شدن حتما این چیزا رو رعایت کنید. هم برای درک خودتون خوبه هم برای بقیه برنامه نویسایی که کدتونو نگا میکنن✨
دیگه کوتاه تر از این نمیتونستم بکنم.
روز خوبی داشته باشید💓
#پست_پیشنهادی
#part2
#python #underscope #oop
☕️ @CodeExplore
خب حالت چهارم یکمی از سادگی خارج میشه و وارد بحث شی گرایی میشه! از الان بگم !
حالا جدا از اسمش ، این یکی دقیقا چیکار میکنه برامون؟ اینو کلا باید با مثال برم جلو
فرض کنید ما دوتا کلاس داریم که یکی از کلاس ها از اون یکی ارث بری میکنه :
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 پایتون کلا اسم پراپرتی رو عوض کرد و اسم کلاس رو اولش چسبوند. اینجوری خیلی راحت از هم تفکیک میشن
که میشه مثل __init__ که بهش میگن magic method و خود مفسر پایتون کاری به این نوع اسم گذاریتون نداره و فقط برای خوانایی کده! یعنی خودتون تصمیم میگیرد فلان تابع رو اینجوری تعریف کنید برای فلان کار (یعنی برای یه کار خاص رزروش کنید و بدونید خارج از اونجا هم کاری باهاش ندارید و فقط برای یه کاره)
مثلا همین __init__ رو وقتی داخل یه کلاس صدا میزنید یعنی تابع سازنده رو صدا زدید و میدونید که این تابع هم خارج از خود کلاس به کار نمیاد و فقط رزرو شده برای سازنده بودن!
در اخرم باید بگم برای سنیور شدن حتما این چیزا رو رعایت کنید. هم برای درک خودتون خوبه هم برای بقیه برنامه نویسایی که کدتونو نگا میکنن
دیگه کوتاه تر از این نمیتونستم بکنم.
روز خوبی داشته باشید
#پست_پیشنهادی
#part2
#python #underscope #oop
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13❤🔥9🔥6
تو ابزار زیر می تونین ارائه هاتون رو توی ترمینال داشته باشید.
🌐 https://github.com/jaspervdj/patat/
#presentation #terminal
☕️ @CodeExplore
#presentation #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - jaspervdj/patat: Terminal-based presentations using Pandoc
Terminal-based presentations using Pandoc. Contribute to jaspervdj/patat development by creating an account on GitHub.
❤🔥5⚡4🔥4
سه تابع نسبتا کاربردی در پایتون ⌨️
🔢
این تابع عدد رو به باینری (دو دویی) تبدیل میکنه. یعنی به زبون کامپیوتر که فقط صفر و یک میفهمه. مثلا:
اینجا عدد ۱۰ به باینری شده ۱۰۱۰ که کامپیوتر میفهمه. اون
🔢
این تابع عدد رو به سیستم هشتتایی تبدیل میکنه. یعنی به جای ده تا رقم (۰ تا ۹) از هشت تا رقم (۰ تا ۷) استفاده میکنه. مثلا:
اینجا عدد ۱۰ به هشتتایی شده ۱۲. اون
🔢
این تابع عدد رو به هگزادسیمال (شانزدهتایی) تبدیل میکنه. یعنی از رقمهای ۰ تا ۹ و حروف A تا F استفاده میکنه. مثلا:
اینجا عدد ۲۵۵ به شانزدهتایی شده FF. اون
❓ به چه کاری میان؟
به درد وقتی میخورن که بخوای با سیستمهای عددی مختلف کار کنی یا مثلا وقتی با برنامهنویسی سطح پایین و سختافزار سروکار داری.
#python #bin #oct #hex
☕️ @CodeExplore
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
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13🔥4❤🔥3
امروز قراره به ادامه مباحث OOP و ساختار کلاس ها و ویژگی های اون بپردازیم
بریم یه مثال قشنگ هم باهم ببینیم:
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;متود walk هم میاد یه جمله چاپ میکنه
بعدش از متود walk استفاه کردیم
#oop #oop_4
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7❤🔥4🔥4
تابع ()color-mix به ما این اجازه رو میده تا دو رنگی که می خوایم مخلوط کنیم رو مشخص کنیم و بعدش نتیجه رو خروجی بده. ما می تونیم مقدار هر رنگ در مخلوط رو کنترل کنیم، همچنین فضای تداخل رنگ رو مشخص کنیم که تعیین میکنه چطوری رنگ ها با همدیگه ترکیب میشن.
ما مقدار هر رنگ رو به صورت درصد مشخص می کنیم. اگر درصدهای هر دو رنگ رو حذف کنیم، تابع ()color-mix به طور پیش فرض برای هر کدوم از اونها از 50% حساب میکنه. همونطور که تو کد زیر نشان دادیم ، مخلوط کردن رنگ قرمز و آبی با مقدار برابر، به ما یک سایه بنفش خروجی میده.
.result {
background-color: color-mix(in srgb, blue, red);
}#css #function #color
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤🔥6⚡4