برای موفق شدن 🌱 با این عبارت خداحافظی کن: "باشه فردا"🍃 💻 برای دسترسی راحت تر به مطالب به "لیست پین شده" برو🙃 👩💻 Support: @narges_madhi 🪧 ads: @teachifyads 💁♀️ instagram : instagram.com/teachify_ir
✔️ خطا ها در زبان پایتون
▪️در زبان پایتون، خطاها به دو دسته تقسیم میشوند: خطاهای معمولی (Exceptions) و خطاهای زمان اجرا (Runtime Errors). اینجا چند خطا اصلی همراه با معانیشان آمده است:
1. خطای (SyntaxError): زمانی رخ میدهد که کد نوشته شده با قواعد زبان پایتون مغایرت داشته باشد.
2. خطای فاصله گذاری (IndentationError): وقتی فاصلهگذاری در کد ناقص یا نادرست باشد.
3. خطای (NameError): وقتی یک نام متغیر یا فراخوانی وجود نداشته باشد.
4. خطای (TypeError): وقتی عملیاتی روی نوع اشیاء نامناسب باشد.
5. خطای (IndexError): وقتی شاخصی برای دسترسی به یک عنصر در یک لیست یا رشته وجود نداشته باشد.
6. خطای (ValueError): زمانی اتفاق میافتد که یک عملیات با یک مقدار نامناسب انجام شود.
7. خطای (KeyError): وقتی یک کلید در یک دیکشنری وجود نداشته باشد.
8. خطای (FileNotFoundError): وقتی یک پرونده مورد نظر برای عملیات فایل مورد نظر پیدا نشود.
9. خطای (ModuleNotFoundError): وقتی یک ماژولی که قرار استفاده شود پیدا نشود.
10. خطای (ZeroDivisionError): وقتی تلاش برای تقسیم عددی بر صفر انجام شود.
@Teachify | برنامه نویسی
وقتی موقع وارد کردن پسورد جوگیر میشی :))
#fun
@Teachify | برنامه نویسی
✔️ یادگیری کد vs فراموش کردن کد!
#fun
@Teachify | برنامه نویسی
✔️ قبول دارید اینجوریه؟😂
➖➖➖➖➖➖
🆔 @kaliboys | کالی بویز
✔️ متد split و join در پایتون
فانکشن split برای تکه تکه کردن یک string بر اساس یک کاراکتر خاص استفاده میشه. در کد پایین میبینید که با استفاده از یک string خالی یا همون فاصله جمله sayhello رو تکه تکه کردیم. نتیجه به شکل یک لیست برگشت داده میشه:
sayhello = 'Hello teachify members'
sp = sayhello.split(' ')
print(sp)
# ['Hello', 'teachify', 'members']
my_list = ['Hello', 'teachify', 'members']
j = ' '.join(my_list)
print(j)
# Hello teachify members
✔️ استفاده از علامت / و * در توابع پایتون
علامت های اسلش و ستاره مشخص کننده نوع آرگومانی است که میتوانید به توابع خود ارسال کنید. پارامترهایی که بعد از علامت ستاره قرار میگیرند باید به شکل کلید-واژه (keyword-argument) ارسال شوند. همچنین پارامترهایی که قبل از علامت اسلش قرار میگیرند باید براساس موقعیت (positional-argument) ارسال شوند.
به عنوان مثال، به تابع زیر دقت کنید:
def show(fn, *, ln):
print(f"your name is {fn} {ln}...")
>>> show('sepehr', ln='vafaei')
your name is sepehr vafaei...
def show(fn, /, ln):
print(f"your name is {fn} {ln}...")
>>> show('sepehr', ln='vafaei')
your name is sepehr vafaei...
✔️ نام ایران ترند اول جهان شد!
@Teachify | برنامه نویسی
✔️ کامندهای کاربردی گیت
@Teachify | برنامه نویسی
✔️ الگوریتم چک کردن اینکه ایا 2 تا استرینگ با هم هم شکل هستند یا نه؟
Example 1:
Input: s = "egg", t = "add"
Output: true
Example 2:
Input: s = "foo", t = "bar"
Output: false
Example 3:
Input: s = "paper", t = "title"
Output: true
def is_isomorphic(s, t):
if len(s) != len(t):
return False
dict = {}
set_value = set()
for i in range(len(s)):
if s[i] not in dict:
if t[i] in set_value:
return False
dict[s[i]] = t[i]
set_value.add(t[i])
else:
if dict[s[i]] != t[i]:
return False
return True
✔️ یک نمونه مثال ترکیبی و کامل از List Comprehension:
def limit(arr, min=None, max=None):
min_check = lambda val : True if min is None else (val>=min)
max_check = lambda val : True if max is None else (val<=max)
return [val for val in arr if min_check(val) and max_check(val)]
print(limit([1,2,3,4,5], min=3)) # [3, 4, 5]
print(limit([1,2,3,4,5], max=3)) # [1, 2, 3]
✔️ توابع داخلی یا همان Built-in پایتون
لازمه حتما حداقل یک بار باهاشون کار کرده باشید، چون ممکنه توی مصاحبه های کاری ازتون سوال بپرسن. بعضی از این توابع ورودی اینا میگیرن که دونستنش خالی از لطف نیست.
🌐 https://docs.python.org/3/library/functions.html
@Teachify | برنامه نویسی
هییییچ وقت :/
#fun
@Teachify | برنامه نویسی
فروشگاه ساز پرتال استخدام میکند.🔥
پرتال در حال کار روی یک پلتفرم مرتبط با زمینه کاری e-commerce هست. این پلتفرم به خیلی از فروشندههای اینترنتی کمک میکنه که کسب درآمد کنن و کارهای مرتبط با اون رو به راحتی انجام بدن. بنابراین، اگه علاقه دارین در رشد یک محصول تاثیرگذار در کسب و کار افراد جامعه نقش داشته باشین، از حضورتون استقبال میکنیم.
⭕️ چه تواناییهایی نیاز هست
🔶تسلط به روشهای ساخت سایت
🔶تسلط به CMS های مختلف و نحوه کار با آنها
🔶تسلط به Html و مباحث Semantic Web
🔶تسلط به CSS و Bootstrap
🔶آشنا با JavaScript
🔶آشنا با گوگل آنالیتیکس
🔶آشنا با اصول اولیه سئو و سرچ کنسول
🔶آشنا با مباحث eCommerce مانند درگاه پرداخت، لجستیک، کانالهای فروش و...
برای ارسال رزومه در جابینجا روی لینک زیر کلیک کنید.
portal.ir/jobinja-support
✔️ کاربرد پوشههای مختلف در لینوکس
@Teachify | برنامه نویسی
✔️ اگه تو هر بار کار با داکر و pull گرفتن ایمیجها بخاطر تحریمها سرویس اذیت میشید، میتونید از سرویس پراکسی focker استفاده کنید. فقط کافیه موقع پول گرفتن به جای اسم ایمیج، به صورت زیر عمل کنیدdocker pull focker.ir/{imageName}
@Teachify | برنامه نویسی
✔️ یه برنامه نویس واقعی هیچ جا کدها و کارش رو ول نمیکنه :))
#fun
@Teachify | برنامه نویسی
✔️ یک مثال برای مدیریت خطا در پایتون
مدیریت خطا بخش مهمی از برنامه نویسی است که به شما امکان می دهد با خطاها و مشکلات غیر منتظره ای که در حین اجرای برنامه شما رخ می دهد، برخورد کنید. در پایتون، از کلمات کلیدی try، except، else و finally برای مدیریت خطا استفاده می شود.
کلمه کلیدی try بلوکی از کد را مشخص می کند که ممکن است خطایی ایجاد کند.
کلمه کلیدی except برای مشخص کردن نوع خطایی که می خواهید catch کنید و کدی که می خواهید در صورت وقوع آن خطا اجرا شود، استفاده می شود.
کلمه کلیدی else برای اجرای کدی در صورتی که هیچ خطایی در بلوک try رخ ندهد، استفاده می شود.
کلمه کلیدی finally برای اجرای کدی صرف نظر از اینکه خطایی رخ داده باشد یا خیر، استفاده می شود.
try:
age = int(input("سن خود را وارد کنید: "))
if age < 18:
raise ValueError("شما باید حداقل 18 سال سن داشته باشید.")
print(f"شما {age} سال سن دارید.")
except ValueError as e:
print(f"خطا: {e}")
except Exception as e:
print(f"خطای غیرمنتظره: {e}")
finally:
print("برنامه به پایان رسید.")
✔️ این دیگه اخرشه 😂😂
#fun
➖➖➖➖➖➖
🆔 @kaliboys | کالی بویز
✔️ یکم قوانین کلین کد پایتون بخونیم ... PEP 8
1. اسم متغییر ها و تابع ها باید از حروف کوچیک باشد.
# Correct:2. اگر متغییری دارید که قرار است هیچوقت مقدارش را تغییر ندهید، از حروف بزرگ استفاده کنید. ( بهش میگیم constant )
user_email = ...
def find_me(): ...
def go_home(): ...
# Wrong:
UserEmail = ...
def findMe(): ...
def GoHome(): ...
# Correct:3. اسم کلاس هارو با به صورت CapWord بنویسید(اول کلمات حرف بزرگ):
NO_CHANGE = 5
# Wrong:
NoChange = 5
no_change = 5
# Correct:4. سعی نکنید همه چیز را در یک خط جا دهید.
class MyClassName: ...
# Wrong:
class my_class_name: ...
# Correct:5. وقتی میخواید خالی بودن لیستی چیزی رو چک کنین، از len استفاده نکنید.
if foo == 'blah':
do_blah_thing()
do_one()
do_two()
# Wrong:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()
# Correct:
if not seq:
if seq:
# Wrong:
if len(seq):
if not len(seq):
❌ امن ترین دارایی در جنگ طلا هست ...
❓ می دونستی بدون سرمایه هم می تونی یه طلا فروشی آنلاین داشته باشی؟
🔰 وبینار رایگان: چگونه بدون سرمایه، گالری آنلاین طلا بزنیم ؟ + چک لیست عملی
ثبت نام سریع از لینک👇
http://url.aramehacademy.com/webinar
⏰ سه شنبه 28 فروردین ساعت 20
⚠️ظرفیت محدود
🔴 میدونی ریموت جاب remote job چیه؟
🟠 فکرشو بکن که سرجات نشستی و برای یک شرکت در یک کشور دیگه کار میکنی و حقوقتو ماهیانه به پول اون کشور میتونی دریافت کنی.
🔴 اینکه چجوری میتونی اینکارو بکنی؟
🔴 به چه چیزهایی احتیاج داری؟
🔴 چه مهارتهایی لازمه؟
☑️ جواب همشو میتونی فردا توی وبینار رایگان ریموت جاب آکادمی تکانش بگیری و با صفر تا صد این موضوع آشنا بشی.
📎 لینک ثبت نام:
🪐 httb.ir/biciQ ◀️
👩🏻💻 مدرس: زهره معینی
☁️ پشتیبانی اکادمی تکانش:@Tekanesh_support
⚠️ تعطیلات بسه ⚠️
📝 الان وقتشه که برای امسال برنامه ریزی کنی
🗺 نقشه راه فریلنسری
✨ این فرصت و از دست نده!!! ✨
➕ فریلنسری بین المللی چیست؟
➕ منتور کیه؟
➕ چقدر طول میکشه تا به درامد برسیم؟
➕ هزینه کافی برای ورود به این صنعت چقدره؟
➕ آیا من مهارت کافی برای ورود رو دارم؟
💡 جواب به همه این سوال ها فردا 📆 سه شنبه ۱۴۰۳/۰۱/۲۶ ⏰ساعت ۱۹:۰۰ در وبینار رایگان آکادمی تکانش داده میشود.
🔔 فقط کافیه به لینک زیر برید و زودی ثبت نام کنید.
📌 لینک ثبت نام:
🌎 httb.ir/Azcgq ◀️
👨💻 مدرس: علیرضا قیمتی
🛒 پشتیبانی: @Tekanesh_support
✔️ تک خطی های پایتون
@Teachify | برنامه نویسی
چطوری به این خروجی برسیم؟
میخواییم وقتی یک لیست به ما دادن، تعداد بیشترین تکرارها رو از داخلش در بیاریم که در مثال زیر عدد 1 نسبت به بقیه بیشتر تکرار شده
Top : [1, 2, 1, 1, 3, 4, 2] > [1]
def top(arr):
values = {}
result = []
f_val = 0
for i in arr:
if i in values:
values[i] += 1
else:
values[i] = 1
print(values) # {1: 3, 2: 2, 3: 1, 4: 1}
f_val = max(values.values()) # 3
for i in values.keys():
if values[i] == f_val:
result.append(i)
else:
continue
return result
print(top([1, 2, 1, 1, 3, 4, 2])) # [1]
✔️ درک لیست یا List Comprehension در پایتون
درک لیست یک ابزار قدرتمند در زبان برنامه نویسی پایتون برای ایجاد لیست های جدید بر اساس لیست های موجود است.
نحو کلی:
[<expression> for <item> in <iterable> if <condition>]
<expression>
: محاسباتی که برای هر عنصر در لیست جدید انجام می شود.<item>
: متغیر موقتی که هر بار یک عنصر از لیست را نشان میدهد.<iterable>
: لیست یا هر نوع داده قابل پیمایش که می خواهید از آن لیست جدید را ایجاد کنید.<condition>
: شرطی که عناصر لیست جدید را مشخص میکند.fruits
شامل نام میوه ها به صورت زیر باشد:fruits = ["apple", "banana", "orange", "grape", "mango"]
uppercase_fruits = [fruit.upper() for fruit in fruits]
fruits
دریافت می کندuppercase_fruits = ["APPLE", "BANANA", "ORANGE", "GRAPE", "MANGO"]
long_fruits = [fruit for fruit in fruits if len(fruit) > 5]
fruits
دریافت می کندlong_fruits = ["banana", "orange", "mango"]
✔️ اصول و قواعد برنامهنویسی
1. YAGNI (You Aren't Gonna Need It):
این اصل بیان میکند که نباید ویژگیها یا قابلیتهای اضافی به نرمافزار اضافه شوند مگر این که واقعاً نیاز به آنها باشد. بنابراین، توسعهدهندگان باید از اضافه کردن قابلیتها یا کدهایی که احتمالاً استفاده نخواهند شد خودداری کنند.
2. DRY (Don't Repeat Yourself):
این اصل میگوید که هر قطعه کد باید فقط یک بار وجود داشته باشد، به این معنی که اگر نیاز به تغییر آن وجود داشته باشد، باید فقط یک مکان برای اعمال تغییر وجود داشته باشد. این کمک میکند که کدها قابلیت نگهداری و تغییر راحتتری داشته باشند.
3. KISS (Keep It Simple, Stupid):
این اصل به توسعهدهندگان یادآوری میکند که حتی اگر یک مسئله به نظر پیچیده بیاید، باید راهحل را به سادگی و در حداقل پیچیدگی ارائه دهند. هدف این است که کد قابل فهم و قابل نگهداری باشد.
4. SoC (Separation of Concerns):
این اصل به تفکیک مسائل مختلف نرمافزار اشاره دارد، به طوری که هر بخش از نرمافزار مسئولیت خاص خود را داشته باشد و به مسائل دیگر دخالت نکند. این کمک میکند که کد مرتب و قابل مدیریتتری داشته باشد.
5. POLA (Principle Of Least Astonishment):
این اصل میگوید که رفتار یک نرمافزار باید به کاربران کمترین میزان شگفتزدهای را ایجاد کند، به این معنی که رفتار نرمافزار باید قابل پیشبینی و متناسب با انتظارات کاربران باشد.
6. DIP (Dependency Inversion Principle):
این اصل میگوید که برنامهها باید به گونهای طراحی شوند که وابستگی به جزئیات اجزای سیستم کمینه شود و به جای آن، بر روی اصول وابستگی به واسطه (مانند رابطها) تاکید شود.
7. LoD (Law Of Demeter):
این اصل به توسعهدهندگان یادآوری میکند که هر ماژول فقط باید با اجزای خود یا اجزایی که مستقیماً به آنها وابستهاند تعامل داشته باشد. این کمک میکند که تغییرات در یک قسمت از کد اثر کمتری بر سایر بخشها داشته باشد.
8. TDD (Test-Driven Development):
این اصل به توسعهدهندگان توصیه میکند که قبل از نوشتن کد، تستهای واحدی برای آن نوشته شود و سپس کد بهگونهای تولید شود که این تستها را پاسخ دهد. این کمک میکند که کد پایدارتر و کمتر حاوی باگ باشد.
9. SOLID Principles:
این مجموعه اصول شامل پنج اصل است که شامل Single Responsibility Principle، Open/Closed Principle، Liskov Substitution Principle، Interface Segregation Principle، و Dependency Inversion Principle میشود. این اصول به توسعهدهندگان کمک میکند تا کدهای خود را سازماندهی و تکامل پذیرتر کنند.
10. CI/CD (Continuous Integration/Continuous Deployment):
این اصل به مفهوم یک فرایند خودکار برای ادغام تغییرات جدید در کد و ارسال آنها به محیط تولید میپردازد. این فرایند به توسعهدهندگان کمک میکند تا تغییرات را به سرعت و با اطمینان به محیط تولید ارسال کنند و باعث افزایش توسعه و ارتقاء پروژه میشود.
@Teachify | برنامه نویسی
✔️ یک مثال خوب و مشخص از ارثبری در Python:
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def start(self):
return "The vehicle is starting."
def stop(self):
return "The vehicle is stopping."
class Car(Vehicle):
def __init__(self, make, model, year, color):
super().__init__(make, model, year)
self.color = color
def drive(self):
return "The car is driving."
def stop(self):
return "The car is stopping."
vehicle = Vehicle("Toyota", "Camry", 2021)
car = Car("Ford", "Mustang", 2022, "Red")
print(vehicle.make, vehicle.model, vehicle.year) # Output: "Toyota Camry 2021"
print(vehicle.start()) # Output: "The vehicle is starting."
print(vehicle.stop()) # Output: "The vehicle is stopping."
print(car.make, car.model, car.year, car.color) # Output: "Ford Mustang 2022 Red"
print(car.start()) # Output: "The vehicle is starting." (inherited from Vehicle class)
print(car.drive()) # Output: "The car is driving."
print(car.stop()) # Output: "The car is stopping." (overrides the stop method in Vehicle class)
✔️ بچه ها راستی دقت کردین که سال جدید، سال داکره!!
#fun
@Teachify | برنامه نویسی
✔️ یه ستاپ خوشگل ببینیم 🥲
@Teachify | برنامه نویسی
✔️ توی اداره های چین به این صورت دوربین نصب شده که هر وقت یکی از کارمندها از جاش بلند میشه، دوربین سریعا تشخیص میده و اون تایمی که توی صندلی خوش نبوده رو حساب میکنه و از حقوقش کنم میکنه :))
@Teachify | برنامه نویسی