پایتون | python | برنامه‌نویسی | comma.code
2.61K subscribers
18 photos
47 videos
7 files
57 links
به ⭐️کانال پایتونِ ما⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته

حرفی سخنی انتقادی: @ir_379
Download Telegram
پایتون | python | برنامه‌نویسی | comma.code
سلام به اعضای جدید . خیلی خوش اومدین ❤️❤️ #چالش #جایزه 💵⚡️ خوب طبق قولی که دادم یه چالش جایزه دار داریم شما باید یک ورودی عددی دریافت کنید و مثلث خیام(پاسکال) رو به تعداد سطر ورودی تون+۱ بسازید سورس کدی که بهینه تر باشه و زیبا تر پیاده سازی کنه برنده میشه.…
جواب چالش قبل
#comma_code_python
x=int(input())
r_list=[[1]]
for i in range(x):
r=[1]
for j in range(len(r_list[i])):
try:
v=r_list[i][j]+r_list[i][j+1]
except:
v=1
r.append(v)
r_list.append(r)


for i in r_list:
s=" "*(len(r_list[-1])-len(i))+"".join([f"{j:6}" for j in i])
print(s)

توضیحاتش رو وقتی جای ساکتی پیدا کردم به شکل ویس ارسال میکنم


دوتا چالش ۱۵۰ تومن دیگه داریم که بعد ارسالش کلا با رای گیری و... هر کدوم ۵ روز فرصت خواهند داشت

🙏❤️
@comma_code_python1
@comma_code_python
👍6🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
اینم خیلی وقت پیش زمان کرونا زدم گفتم بزارم براتون(ویروس کرونا😅)

ماژول turtle# یه ماژول گرافیکی هستش که میتونید باهاش اشکال و موارد مختلفی رو طراحی یا بکشید و همینطور یکی از ماژول های جذاب برای آموزش پایتون برای افراد با سنین پایین هستش

اینم سورسش:
#comma_code_python
from turtle import *
hideturtle()
bgcolor("black")
color("red")
speed(-1)
pensize(1.5)
penup()
goto(0,400)
pendown()
b=0
while b<400:
right(b/2)
forward(b*3.5)
b+=1
done()
#comma_code_python

لطفا در صورت استفاده منبع هم ذکر بشه🙏🙏

@comma_code_python
@comma_code_python1
🔤🔤🔤🔤🔤 🔤🔤🔤🔤🇮🇷
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2🤯1
سلام
داشتم یه نکته ای رو در جایی میخوندم که دیدم جالبه و خواستم بگم. این نکته بهتون کمک میکنه در اکثر مواقع حجم استفاده برنامه شما از حافظه در چیزی حدود ۶۰ درصد کمتر بشه.

شما میدونید که وقتی دارید یک کلاس می‌سازید هر شی یه دیکشنری __dict__ داره که ویژگی ها و مقادیر اون ویژگی ها رو نگهداری میکنه. باید بدونید این دیکشنری برای ساده ترین اشیا سربار حافظه قابل توجهی تولید میکنه .
نمونه این چنین کلاس ها:
class N_user:
def __init__(self,name,age,loc):
self.name=name
self.age=age
self.loc=loc

در مقابل ما میتونم با __slots__ پیشاپیش ویژگی ها رو اعلام کنیم تا برای هر شی یک ساختار آرایه ای در نظر گرفته بشه که فقط فضا برای نگهداری ویژگی هایی که تعریف کردیم رو داشته باشه.این کار باعث میشه سربار حافظه مربوط به دیکشنری کامل حذف بشه
نمونه چنین کلاسی:
class S_user:
__slots__=["name","age","loc"]
def __init__(self,name,age,loc):
self.name=name
self.age=age
self.loc=loc

🔰تفاوت ها:

روش اول و حالت عادی
در این حالت نمونه ما کاملا پویا هستش و میتونیم ویژگی هایی بهش اضافه کنیم ولی حافظه بیشتری اشغال میکنه و همینطور جستجو کردن هم در ین مورد کندتر هستش

روش دوم و استفاده از slots
در این حالت نمونه ما پویا نیست و نمیشه بهش ویژگی اضافه کرد ولی از حافظه کمتری استفاده میکنه و همینطور سرعت جستجو بالاتر هستش. باید اضافه کنیم اگر ارث بری اتفاق افتاد و نیاز بود که کلاس فرزند ویژگی جدید داشته باشه باید slots خودش رو تعریف کنه همچنین در این حالت اگر به قابلیت های خاص مثل dict یا weakref نیاز دارید میتونید اونها رو به slots اضافه کنید.

نکته: تفاوت حجم استفاده از حافظه در ساخت نمونه در تعداد پایین زیاد نیست و در این حالت پیشنهاد نمیکنم که از slots استفاده کنید ولی در ساخت تعداد نمونه زیاد برای مثال ۱۰۰۰۰ عددی این تفاوت کاملا حس میشه.

📊حالا بریم با یه اسکریپت تفاوت میزان فضای اشغالی این دو حالت رو در تعداد 100,000 عدد نمونه برسی کنیم.
from sys import getsizeof as size

class N_user:
def __init__(self,name,age,loc):
self.name=name
self.age=age
self.loc=loc
def age_up(self):
self.age+=1


class S_user:
__slots__=["name","age","loc"]
def __init__(self,name,age,loc):
self.name=name
self.age=age
self.loc=loc
def age_up(self):
self.age+=1

range=range(100000)
N_users=[N_user("name",10,(10,10)) for _ in range]
S_users=[S_user("name",10,(10,10)) for _ in range]

n_memory=sum(size(i)+size(i.__dict__) for i in N_users)
s_memory=sum(size(i) for i in S_users)

print(f"n_users= {n_memory/1024/1024} MB")
print(f"s_users= {s_memory/1024/1024} MB")
print(f"frugality= {(1 - s_memory / n_memory) * 100:.1f}%")



امیدوارم براتون مفیده بوده باشه🙏😘

نظرات خودتون رو حتما کامنت کنید👌📝


#python #programing #memory_optimization #programming_tips #comma_code #comma_code_python
#پایتون #برنامه_نویسی #حافظه #بهینه_سازی #نکته #کاما_کد

📱 کانال تلگرام
📱 پیج اینستاگرام
📱 چنل یوتیوب

🔤🔤🔤🔤🔤 🔤🔤🔤🔤
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32