Pythonism
Відкрити в Telegram
We use Python in various industries. SXL : https://www.linkedin.com/in/amirakbarisxl-py
Показати більше2 236
Підписники
Немає даних24 години
-67 днів
-4230 днів
Архів дописів
2 236
امروز 11 آذر ماه تعداد عضو کامیونیتی #پایتونیزم به بیش از 1500 نفر رسید.:)
Congratulations on reaching 1.5k :]
#SXL
#FXL
#pythonism
@Pythonism
2 236
انواع دیتا در پایتون رو کشیدم براتون توضیحات هم بزودی میزارم)قبلا توضیحاتشون رو دادیم.(
#Sxl
2 236
چند وقتی بود خیلی جاها میدیدم دوستان زیادی سوال میکردن یا دنبال تحقیق بودن که اصلا چه دلیلی داره ما وارد زبان #پایتون بشیم؟
تو این چند روز میخواستم در جواب به این سوال این متن رو آماده کنم که زیاد وقت نمیکردم اما الان میخوام نظر خودم رو بگم.
اولا اینکه دوستان انتخاب زبان نباید به گفته بقیه یا رسانه ها باشه حتما باید بر اساس نیاز و علاقه خود شخص شما باشه. چرا که شما بر اساس حوزه کاری تون زبان مناسب رو انتخاب میکنید.
اگر بخوام مثال بزنم زبان #انگلیسی در دنیا زبان اول هست هرکس این زبانو بلد باشه قطعا تو هیچ کشوری گیر نمیکنه ولی یسری شرایط هستن که مجبور میکنه شما از زبان دیگه ای استفاده کنید مثلا روسیه، آلمان یا نوروژ و... شرطی که دارن برای اقامت تحصیلی و کاری حتما باید زبان محلی اون کشور رو بلد باشید.
این یعنی شما مجبور میشید به غیر از انگلیسی زبان دیگری رو نیز یاد بگیرید.
حالا این امر توی برنامه نویسی هم هست اگر علاقه شما به هر دلیلی پایتون هست و ورود کردید ادامه بدید تا آخر ول نکنید از این شاخه به اون شاخه نپرید بعد که حداقل به جایی رسیدید اونجا تصمیم بگیرید که میخواید تغیر بدید یا نه حالت چرا باید تا ته بریم؟
پایتون یک زبان شی گرا، راحت، مفسری و دارای کتابخونه های گسترده و همچنین زبان سطح بالا هست.
پایتون تو حوزه های مختلفی استفاده میشه مثل هوش مصنوعی، دیتا، وب و... اما این نیاز یک #بیزینس هست که تکنولوژی رو انتخاب میکنه که با #جنگو) یکی از فریم ورکای پایتون برای بکند وب هست(بره جلو یا با فریم ورک دیگه یا با #پایتون جلو بره یا زبان دیگه.
پس اگر وارد یک حوزه یا زبانی میشید سعی کنید اول تمامش کنید تمام کننده یک راهی که شروع کردید خیلی مهم و موثر هست بعد ببینید شا قراره تو اون حوزه بمونید یا نه.
برای برنامه نویسی قطعا برای شروع شما باید اول از زبان های راحتی مثل پایتون، سی شارپ)حالا شاید فکر کنید سی شارپ راحت نیست ولی برای شروع مثل پایتون خوبه(شروع کنید سپس بریم سراغ زبان های پیچیده مثل سی و....
پس سعی نکنید وسط راه مسیرتون رو عوض کنید. و درنهایت برای اینکه خبره بشید تو اون حوزه سعی کنید شورشو دربیاری انقد بخونید، مطالعه کنید تمرین کنید که صاحب نظر اون حوزه بشید. یادتون باشه همه چی با خوندن نیست بعضی جاها ممکنه با 10 تا کتاب خوندن هم نتونید یه مورد رو درک کنید خیلی چیزا به تمرین و تجربه هم بستگی دارن تا شما تجربه نکنید تمرین نکنید نمیتونید اون مسئله رو حل کنید.
قبل از همه اینا که دوس داشتم آخر این متن بنویسم تقویت زبان انگلیسی تون هست که حتما حتما باید منابع رو به زبان اصلی بخونید و این خیلی کمک کننده هست براتون.
پس اگر یکی میگه پایتون بدرد نمیخوره مطمئن باشید تو بیزینس اون شخص بدردش نخورده و ممکنه بالعکس باشه و در بیزینس شما زبان دیگه ای بدرد نخوره!
و اینم بگم خیلیا میگن چرا خیلی از بیزینس ها با زبان های دیگه ای نوشته شده.
دوستان اکثر بیزینس ها چون در زمان های گذشته نوشته شدن یا قدیمین دیگه نمیصرفه بیان تکنولوژی عوض کنن یا هزینه کنن حتی میتونه ریسک هم باشه و جرات نمیکنن این کار رو بکنن پس اینم مقایسه نکنید چرا فلان بیزینس که مربوط میشه به 20 سال پیش با فلان زبان نوشته شده!
#SXL
2 236
توی #GEEKSFORGEEKS داشتم میچرخیدم)یه مصاحبه تو حوزه #پایتون قرار گذاشتیم با یه شرکتی دعا کنید قبول شم😀(برای مطالعه بیشتر توی کامیونیتی یه کدی گذاشته بودن با این عنوان:
چگونه میتوانیم توسط پایتون فایل پی دی اف رو به سند)ورد( تبدیل کنیم؟
کدی که استفاده کرده بود تقریبا کد ساده ای بود دوس داشتم اینجا بزارم یه الگویی بگیرید ولی دیدم تجزیه و تحلیل و توضیحاتش خوبه گفتم لینکشو بزارم نگاه کنید
https://www.geeksforgeeks.org/how-to-convert-a-pdf-to-document-using-python/
#Sxl
@pythonism_xl
2 236
بحث شیرین #Strings و در میان #رشته ها مبحث #Indexing هم از نوع Reverse و هم Forwarding رو از اینجا میتونید بخونید تا بخوبی رشته ها و ایندکس هارو درک کنید
https://realpython.com/python-strings/#:~:text=String%20Indexing,-Often%20in%20programming&text=Individual%20characters%20in%20a%20string,index%201%20%2C%20and%20so%20on.
#Sxl
2 236
دررابطه با Python OOP اینجارو بخونید مفاهیم #شیگرا رو واضح توضیح داده
https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/Python1a_OOP.html
#Sxl
@Pythonism_xl
2 236
دوستان این لینک رو بخونید بهتون گفته که از جنگو)یکی از فریم ورک های پایتون هست که برای بکند وب استفاده میشه و در آینده باهاش سروکار داریم(در چه پروژه هایی استفاده شده.
نمیتونم کل گفته هاشو 100 درصد تایید کنم و بگم کاملا درسته چون بعضی پروژه ها به صراحت نگفتن بکندشون چی بوده ولی درکل جالبه بخونید منبع مطرح و معروفی هم هست.
https://www.geeksforgeeks.org/top-10-django-apps-and-why-companies-are-using-it/
#SXL
@pythonism
2 236
#class
در پایتون، کلمه کلیدی class برای تعریف یک کلاس جدید استفاده میشه.
با استفاده از
class، میتونیم یک الگو برای ایجاد شیءها و تعریف رفتار و خصوصیات اونهارو ایجاد کنیم.
مثال:
class Person:
def init(self, name):
self.name = name
def say_hello(self):
print(f"Hello, my name is {self.name}")
john = Person("John")
john.say_hello()
نتیجه:
Hello, my name is John
در این مثال، با استفاده از کلمه کلیدی class، یک کلاس جدید به نام Person تعریف کردیم که دارای ویژگی name و متد say_hello هست.
سپس با استفاده از تعریف کلاس Person، یک شیء به نام john ایجاد کرده و متد say_hello رو روی اون فراخوانی کردیم.
#FXL
#Super
#Class
#init
#new2 236
#Super
در پایتون،
super یک تابع ست که میتونه برای دسترسی به ویژگیها و متدهای یک کلاس والد (سوپرکلاس) در یک زنجیره وراثت استفاده بشه.
با استفاده از super، میتونیم به طور مستقیم به ویژگیها و متدهای کلاس والد دسترسی داشته باشیم و از اونها استفاده کنیم.
این به ما امکان میده که عملکرد کلاس والد رو بهخوبی تکرار و گسترش بدیم.
مثال:
class Parent:
def init(self):
self.parent_attr = "Parent Attribute"
def parent_method(self):
print("Parent Method")
class Child(Parent):
def init(self):
super().init()
self.child_attr = "Child Attribute"
def child_method(self):
print("Child Method")
child = Child()
print(child.parent_attr) # دسترسی به ویژگی از طریق super()
child.parent_method() # فراخوانی متد از طریق super()
نتیجه:
Parent Attribute
Parent Method
تو این مثال، کلاس Child، از کلاس Parent ارث بری کرده .
با استفاده از تابع super() در متد init کلاس Child، به init کلاس Parent دسترسی مییابیم و میتونیم ویژگیها و متدهای کلاس والد رو در کلاس فرزند استفاده کنیم.
#FXL
#Super
#Class
#init
#new2 236
#مثال1
در زیر یک مثال ساده با استفاده از تابع
init و new در پایتون رو براتون طرح کردم .
تو این مثال، یک کلاس ساده به نام Person تعریف میکنیم که نام و سن فرد رو دریافت کرده و اونهارو را در ویژگیهای name و age ذخیره میکنه.
کد مثال:
class Person:
def new(cls, name, age):
print("Creating instance using new")
instance = super().new(cls)
return instance
def init(self, name, age):
print("Initializing instance using init")
self.name = name
self.age = age
person = Person("John", 25)
print(person.name)
print(person.age)
نتیجه:
Creating instance using new
Initializing instance using init
John
25
در این مثال، وقتی یک شیء از کلاس Person ایجاد میشه، تابع new ابتدا فراخوانی میشه و سپس تابع init فراخوانی میشه.
تابع new مشابه با کانستراکتور در زبانهای دیگه ست و برای ایجاد و بازگشت شیء کلاس استفاده میشه.
تابع init برای اولیهسازی خصوصیات شیء استفاده میشه.
#FXL
#init
#new
#name
#age
#person2 236
وقتی یک شیء از یک کلاس ایجاد میشه، دو متد به نامهای new و init استفاده میشن.
متد new ابتدا فراخوانی میشه و وظیفهاش ایجاد یک شیء جدید از کلاس مورد نظر هست.
این متد ممکنه برای ایجاد شیء اصلی یا یک شیء مشتق (که از کلاس دیگری ارث بری کرده است) استفاده بشه.
سپس، متد init فراخوانی میشه.
این متد برای انجام مقداردهی اولیه به ویژگیهای شیء استفاده میشه.
در این متد، میتونید مقادیر اولیه برای ویژگیها را تعیین کنید.
به عنوان مثال، در کد زیر، متد new یک شیء از کلاس MyChildClass ایجاد میکنه و سپس متد init مقداردهی اولیه رو برای ویژگیها انجام میده:
class MyParentClass:
def init(self):
self.property1 = 0
claas MyChildClass(MyParentClass):
def new(cls):
# ایجاد یک شیء جدید از کلاس MyChildClass
return super().new(cls)
def init(self):
super().init()
self.property2 = "Hello"
my_object = MyChildClass()
print(my_object.property1) # 0
print(my_object.property2) # Hello
در این مثال، ابتدا متد new اجرا میشه و یک شیء از کلاس MyChildClass ایجاد میشه.
سپس متد init فراخوانی میشه و ویژگیها property1 و property2 به ترتیب مقداردهی اولیه میشوند.
#FXL
#init
#constructor
#initializer
#new
#name
#age
#def
#object
2 236
در پایتون، اصطلاح "constructor" به تابعی اشاره داره که وقتی یک شیء از یک کلاس ایجاد میشه، فراخوانی میشه.
در پایتون، constructor با نام init معرفی میشه و معمولاً برای تنظیم و مقداردهی اولیه ویژگیهای شیء استفاده میشه.
به عنوان مثال، در کد زیر، init به عنوان constructor کلاس Person عمل میکنه:
python
class Person:
def init(self, name, age):
self.name = name
self.age = age
به عنوان مقابل، initializer در پایتون به معنای یک تابع برای مقداردهی اولیه ویژگیهای یک کلاس استفاده میشه.
با استفاده از initializer، میتونید مقادیر اولیه برای ویژگیهای کلاس رو به صورت دلخواه تنظیم کنید.
python
class Person:
def init(self):
self.name = "John Doe"
self.age = 30
def initialize(self, name, age):
self.name = name
self.age = age
person = Person()
person.initialize("Alice", 25)
به طور خلاصه :
constructor(
init)
برای ایجاد شئ و مقدار دهی اولیه ویژگی ها استفاده میشه ، در حالی که initializer یک تابع جداگانه ست که مقدار دهی اولیه رو انجام میده.
#FXL
#init
#constructor
#initializer
#new
#name
#age
#def2 236
این عبارت در برنامه نویسی اشاره به همین شی داره.
مثلا self.name به متغیر name شی ایجاد شده اشاره داره.
معمولا در کلاسهای برای مقدار دهی و گرفتن مقدار متغیرها توابع setter و getter تعریف میشه که تابع setter برای مقدار دهی متغیرها استفاده میشه و به عنوان ورودی مقادیری را که قصد داریم در متغیرهای کلاس قرار بدیم دریافت میکنه.
تابع getter برای گرفتن مقادیر متغیرهای کلاس در زمان مورد نیاز استفاده میشه.
#FXL
#class
#person
#object
#variable
#new
#name
#setter
#شی_گرایی
2 236
⚜فصل اول - برنامه نویسی شی گرا
🔹شی گرایی در پایتون
در این بخش به جزئیات بیشتری از شی گرایی در پایتون پیشرفته میپردازیم.
در پایتون برای ایجاد یک کلاس از عبارت class استفاده میشه.
به عنوان مثال قصد داریم کلاسی به نام person ایجاد کنیم.
در مبحث شی گرایی می تونیم از دو نوع متغیر استفاده کنیم.
نوع اول متغیر کلاس یا class variable ها هستند که برای تمامی اشیا ساخته شده از یک کلاس ثابت اند.
نوع دوم متغیرهای مربوط به اشیا هستند یا object variableها هستند که مربوط به خود objectها هستند.
در ابتدای یک کلاس پس از معرفی متغیرها اولین تابع، سازنده کلاس یا constructor کلاس هست که به صورت متد (____init) تعریف میشه.
این متد هنگام ساخت شی از کلاس به صورت اتوماتیک اجرا میشه.
برای ساخت object از یک کلاس، از واژه new استفاده میشه.
هنگام استفاده از کلمه new تابع سازنده کلاس اجرا شده و دستورات داخل سازنده اجرا میشه.
کلیدواژه مهم دیگری در بحث شی گرایی ر پایتون پیشرفته، عبارت self هست که معادل عبارت this در سایر زبانهای برنامه نویسی است .
#FXL
#class
#person
#object
#variable
#new
#name
#شی_گرایی
2 236
این اشیا دارای یک سری متغیر هستند که مانند ویژگی های یک فرد هست (مثل سن، قد ، اسم و....)
به این ویژگی ها در شی گرایی Class attribute میگن.
همچنین این اشیا در پایتون دارای رفتارهایی مخصوص به خود هستند که به صورت توابعی به این اشیا نسبت داده میشوند.
در شیگرایی به این توابع متد (method) گفته میشه.
این فیلدها و متدها در داخل ساختاری به نام کلاس قرار میگیرند ، کلاسها دربرارنده اطلاعات مربوط به اشیا هستند و به کمک آنها میتوان اشیا را ساخته و از آنها استفاده کرد.
در برنامه نویسی شیگرا ابتدا باید یک شی از یک کلاس ایحاد کنیم.
پس از ایجاد این شی میتوان از متغیرهای مخصوص کلاس و متدهای آن روی این شی استفاده کرد.
شی گرایی به برنامه نویسان کمک میکنه تا مسائل خود را به اجزای کوچک تر تقسیم کنند و سرعت و دقت برنامه نویسی را افزایش داده و جلوی تکرارهای غیر ضروری را میگیرد.
#FXL
#object
#procedural
#Class_attribute
#method
#مفهوم_شی_گرا
2 236
⚜فصل اول - برنامه نویسی شی گرا
🔹مفهوم شی گرایی
در این بخش درباره مفهوم شی گرایی پیشرفته بحث میکنم.
در برنامهنویسی شی گرا تمام مقادیر و رفتارها در موجودی به نام شی (object) قرار میگیره.
روش برنامه نویسی شیگرا در مقابل روش برنامه نویسی تابعی یا procedural قرار میگیره که به صورت توابعی و بلوک های برنامه ای است که به صورت ترتیبی اجرا میشوند.
در شی گرایی این امکان به برنامه نویسی داده شد تا موارد شبیه به هم را داخل یک کلاس قرار داده و به تعداد دلخواه اشیا با ویژگی های یکسان از آن کلاس ایجاد کند.
#FXL
#object
#procedural
#Class_attribute
#method
#مفهوم_شی_گرا
2 236
تفاوت return با yield اینه که در هنگام استفاده از return کل تابع متوقف میشه ولی در حالتی که از عبارت yield استفاده کنیم.
تابع مورد نظر pause شده و مقادیرو state ها رو نگهداری و بعدا در صورت فراخوانی از ادامه حالت ها شروع به اجرای تابع میکنه.
این قابلیت به برنامه های ما کمک میکنه تا سریع تر اجرا بشن و حافظه مصرفی برای برنامه ها را نیز بهینه تر مصرف میکنه.
#FXL
#generator
#iteration
#return
#yield
#state
2 236
⚜فصل اول - برنامه نویسی شی گرا
🔹generator function yield در پایتون
در این بخش درباره انواعی از توابع پیشرفته در پایتون صحبت میکنم.
یکی از این توابع ، توابع سازنده یا generator هستند.
این توابع برای تکرار یا iteration کاربرد داره.
این توابع شباهت زیادی به توابع عادی در پایتون دارند ، از جمله تفاوت های این توابع استفاده از عبارت yield به جای return در هنگام گرفتن خروجی از توابع است.
#FXL
#generator
#iteration
#return
#yield
#state
