num = 1
while num <= 20:
if num % 2 == 0:
print(num)
num += 1
توضیح: حلقه
while
تا زمانی که num
کمتر یا برابر با ۲۰ باشد، اجرا میشود. اگر num
زوج باشد، چاپ میشود و سپس num
افزایش مییابد.3. با استفاده از یک حلقه تو در تو، جدول ضرب اعداد ۱ تا ۵ را چاپ کنید.
for i in range(1, 6):
for j in range(1, 6):
print(f"{i} * {j} = {i * j}")
توضیح: دو حلقه
for
تو در تو داریم که هر کدام از ۱ تا ۵ تکرار میشوند. در هر تکرار، حاصل ضرب i
و j
چاپ میشود و جدول ضرب ایجاد میشود.(کانال ما بهترین اموزشات رو داده )
#پایتون #آموزش_پایتون #برنامه_نویسی #حلقه #کدنویسی
👍1
آموزش گرفتن اطلاعات از دیتابیس و پردازش آنها با پایتون 🗄️🐍
در این پارت، به بررسی نحوه گرفتن اطلاعات از دیتابیس و پردازش آنها با استفاده از پایتون میپردازیم. برای این کار از کتابخانههای
۱. نصب و راهاندازی
برای استفاده از دیتابیس SQLite و کتابخانه Pandas، ابتدا باید اطمینان حاصل کنید که این کتابخانهها نصب شدهاند. برای نصب، از دستورهای زیر استفاده کنید:
۲. اتصال به دیتابیس SQLite
ابتدا باید به دیتابیس SQLite متصل شویم. برای این کار از کتابخانه
توضیح: در اینجا به یک دیتابیس به نام
۳. ایجاد جدول و وارد کردن دادهها
در این مرحله، یک جدول نمونه ایجاد کرده و تعدادی داده به آن وارد میکنیم.
توضیح: در اینجا جدولی به نام
۴. خواندن دادهها از دیتابیس
برای خواندن دادهها از دیتابیس، از دستور
توضیح: در اینجا تمام دادههای جدول
خروجی:
۵. پردازش دادهها با Pandas
برای پردازش دادهها از کتابخانه
توضیح: در اینجا دادههای خوانده شده از دیتابیس را به یک DataFrame از pandas تبدیل کرده و چاپ میکنیم.
خروجی:
۶. انجام عملیات پردازش
با استفاده از DataFrame میتوانیم عملیات پردازش مختلفی را انجام دهیم. به عنوان مثال، محاسبه میانگین سن کاربران:
توضیح: در اینجا میانگین سن کاربران را محاسبه و چاپ میکنیم.
خروجی:
۷. بستن اتصال به دیتابیس
پس از اتمام کار، باید اتصال به دیتابیس را ببندیم.
[اموزش های بیشتر توی کانالمون]
#پایتون #آموزش_پایتون #برنامه_نویسی #دیتابیس #پردازش_داده #SQLite #Pandas
در این پارت، به بررسی نحوه گرفتن اطلاعات از دیتابیس و پردازش آنها با استفاده از پایتون میپردازیم. برای این کار از کتابخانههای
sqlite3
و pandas
استفاده خواهیم کرد.۱. نصب و راهاندازی
برای استفاده از دیتابیس SQLite و کتابخانه Pandas، ابتدا باید اطمینان حاصل کنید که این کتابخانهها نصب شدهاند. برای نصب، از دستورهای زیر استفاده کنید:
pip install pandas
۲. اتصال به دیتابیس SQLite
ابتدا باید به دیتابیس SQLite متصل شویم. برای این کار از کتابخانه
sqlite3
استفاده میکنیم.import sqlite3
# اتصال به دیتابیس
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
توضیح: در اینجا به یک دیتابیس به نام
example.db
متصل میشویم. اگر این فایل وجود نداشته باشد، به طور خودکار ایجاد خواهد شد.۳. ایجاد جدول و وارد کردن دادهها
در این مرحله، یک جدول نمونه ایجاد کرده و تعدادی داده به آن وارد میکنیم.
# ایجاد جدول
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
# وارد کردن دادهها
cursor.execute("INSERT INTO users (name, age) VALUES ('Ali', 25)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Sara', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Reza', 22)")
# ذخیره تغییرات
conn.commit()
توضیح: در اینجا جدولی به نام
users
با ستونهای id
، name
و age
ایجاد کردهایم و تعدادی داده به آن اضافه کردهایم.۴. خواندن دادهها از دیتابیس
برای خواندن دادهها از دیتابیس، از دستور
SELECT
استفاده میکنیم.# خواندن دادهها
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
توضیح: در اینجا تمام دادههای جدول
users
را انتخاب کرده و چاپ میکنیم.خروجی:
(1, 'Ali', 25)
(2, 'Sara', 30)
(3, 'Reza', 22)
۵. پردازش دادهها با Pandas
برای پردازش دادهها از کتابخانه
pandas
استفاده میکنیم. ابتدا دادهها را به یک DataFrame تبدیل میکنیم.import pandas as pd
# تبدیل دادهها به DataFrame
df = pd.DataFrame(rows, columns=['id', 'name', 'age'])
print(df)
توضیح: در اینجا دادههای خوانده شده از دیتابیس را به یک DataFrame از pandas تبدیل کرده و چاپ میکنیم.
خروجی:
id name age
0 1 Ali 25
1 2 Sara 30
2 3 Reza 22
۶. انجام عملیات پردازش
با استفاده از DataFrame میتوانیم عملیات پردازش مختلفی را انجام دهیم. به عنوان مثال، محاسبه میانگین سن کاربران:
# محاسبه میانگین سن
average_age = df['age'].mean()
print(f"Average age: {average_age}")
توضیح: در اینجا میانگین سن کاربران را محاسبه و چاپ میکنیم.
خروجی:
Average age: 25.666666666666668
۷. بستن اتصال به دیتابیس
پس از اتمام کار، باید اتصال به دیتابیس را ببندیم.
# بستن اتصال
conn.close()
[اموزش های بیشتر توی کانالمون]
#پایتون #آموزش_پایتون #برنامه_نویسی #دیتابیس #پردازش_داده #SQLite #Pandas
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
❤3
سلام دوستان! 😊 امروز میخوایم دربارهی یکی از الگوریتمهای معروف در حوزهی بهینهسازی و هوش مصنوعی صحبت کنیم: الگوریتم ژنتیک (Genetic Algorithm) 🌱. این الگوریتم از فرآیند تکامل طبیعی الهام گرفته شده و برای حل مسائل پیچیده و بهینهسازی به کار میره.
🧬 الگوریتم ژنتیک چیست؟
الگوریتم ژنتیک با استفاده از مفاهیم تکامل و انتخاب طبیعی، تلاش میکنه تا بهترین راهحل رو برای یک مسئله پیدا کنه. این الگوریتم در اصل بر اساس اصول زیستشناسی تکاملی مانند انتخاب طبیعی، جهش و تقاطع (تولید مثل) عمل میکنه.
📊 مفاهیم کلیدی
- کروموزوم (Chromosome): یک راهحل احتمالی برای مسئله.
- ژن (Gene): کوچکترین واحد اطلاعاتی در کروموزوم.
- جمعیت (Population): مجموعهای از کروموزومها که در هر نسل وجود دارند.
- تابع برازش (Fitness Function): معیاری برای سنجش کیفیت هر کروموزوم. هر چقدر مقدار برازش بیشتر باشه، کروموزوم بهتر است.
- انتخاب (Selection): فرآیند انتخاب کروموزومهای برتر برای تولید نسل بعدی.
- تقاطع (Crossover): ترکیب دو کروموزوم برای تولید فرزندان جدید. این فرآیند باعث میشه تا ویژگیهای والدین به فرزندان منتقل بشه.
- جهش (Mutation): تغییرات تصادفی در ژنهای کروموزوم برای ایجاد تنوع و جلوگیری از گیر افتادن در بهینههای محلی.
🛠️ مراحل اجرای الگوریتم ژنتیک
1. ایجاد جمعیت اولیه: شروع با یک مجموعهای از راهحلهای احتمالی که بهصورت تصادفی ایجاد میشوند. این مجموعه به عنوان جمعیت اولیه شناخته میشود.
2. ارزیابی برازش: هر کروموزوم در جمعیت با استفاده از تابع برازش ارزیابی میشود تا کیفیت آن مشخص شود.
3. انتخاب: کروموزومهایی که بهترین عملکرد را دارند (برازش بیشتری دارند) انتخاب میشوند تا والدین نسل بعدی باشند.
4. تقاطع (Crossover): از دو کروموزوم انتخابشده (والدین) برای تولید کروموزومهای جدید (فرزندان) استفاده میشود. این فرزندان ویژگیهای ترکیبی از والدین خود را به ارث میبرند.
5. جهش (Mutation): بهصورت تصادفی، برخی از ژنهای کروموزومها تغییر میکنند. این فرآیند باعث میشود تا تنوع در جمعیت حفظ شود و از گیر افتادن در بهینههای محلی جلوگیری شود.
6. تکرار مراحل ۲ تا ۵: مراحل ارزیابی، انتخاب، تقاطع و جهش برای چندین نسل تکرار میشود تا بهترین راهحل پیدا شود.
🎯 مزایای استفاده از الگوریتم ژنتیک
- ساده و انعطافپذیر: پیادهسازی و استفاده از الگوریتم ژنتیک نسبتاً ساده است و میتوان آن را برای مسائل مختلف بهینهسازی تطبیق داد.
- پویایی و تنوع: با استفاده از تقاطع و جهش، تنوع جمعیت حفظ میشود که این امر کمک میکند تا از گیر افتادن در بهینههای محلی جلوگیری شود.
- بهینهسازی موازی: این الگوریتم میتواند بهصورت موازی اجرا شود و باعث سرعت بخشیدن به فرآیند بهینهسازی شود.
🏁 نتیجهگیری
الگوریتم ژنتیک یکی از روشهای قدرتمند برای حل مسائل پیچیده و بهینهسازی است که از اصول تکامل طبیعی الهام گرفته شده است. با استفاده از این الگوریتم میتوانیم به راهحلهای بهینه و کارآمدی برای مسائل مختلف دست پیدا کنیم. امیدواریم این آموزش به شما در درک بهتر الگوریتم ژنتیک کمک کرده باشد. برای بهروزرسانیهای بیشتر و آموزشهای جذابتر، کانال تلگرام ما را دنبال کنید!
#الگوریتم_ژنتیک #بهینه_سازی #آموزش #هوش_مصنوعی #برنامه_نویسی
🧬 الگوریتم ژنتیک چیست؟
الگوریتم ژنتیک با استفاده از مفاهیم تکامل و انتخاب طبیعی، تلاش میکنه تا بهترین راهحل رو برای یک مسئله پیدا کنه. این الگوریتم در اصل بر اساس اصول زیستشناسی تکاملی مانند انتخاب طبیعی، جهش و تقاطع (تولید مثل) عمل میکنه.
📊 مفاهیم کلیدی
- کروموزوم (Chromosome): یک راهحل احتمالی برای مسئله.
- ژن (Gene): کوچکترین واحد اطلاعاتی در کروموزوم.
- جمعیت (Population): مجموعهای از کروموزومها که در هر نسل وجود دارند.
- تابع برازش (Fitness Function): معیاری برای سنجش کیفیت هر کروموزوم. هر چقدر مقدار برازش بیشتر باشه، کروموزوم بهتر است.
- انتخاب (Selection): فرآیند انتخاب کروموزومهای برتر برای تولید نسل بعدی.
- تقاطع (Crossover): ترکیب دو کروموزوم برای تولید فرزندان جدید. این فرآیند باعث میشه تا ویژگیهای والدین به فرزندان منتقل بشه.
- جهش (Mutation): تغییرات تصادفی در ژنهای کروموزوم برای ایجاد تنوع و جلوگیری از گیر افتادن در بهینههای محلی.
🛠️ مراحل اجرای الگوریتم ژنتیک
1. ایجاد جمعیت اولیه: شروع با یک مجموعهای از راهحلهای احتمالی که بهصورت تصادفی ایجاد میشوند. این مجموعه به عنوان جمعیت اولیه شناخته میشود.
2. ارزیابی برازش: هر کروموزوم در جمعیت با استفاده از تابع برازش ارزیابی میشود تا کیفیت آن مشخص شود.
3. انتخاب: کروموزومهایی که بهترین عملکرد را دارند (برازش بیشتری دارند) انتخاب میشوند تا والدین نسل بعدی باشند.
4. تقاطع (Crossover): از دو کروموزوم انتخابشده (والدین) برای تولید کروموزومهای جدید (فرزندان) استفاده میشود. این فرزندان ویژگیهای ترکیبی از والدین خود را به ارث میبرند.
5. جهش (Mutation): بهصورت تصادفی، برخی از ژنهای کروموزومها تغییر میکنند. این فرآیند باعث میشود تا تنوع در جمعیت حفظ شود و از گیر افتادن در بهینههای محلی جلوگیری شود.
6. تکرار مراحل ۲ تا ۵: مراحل ارزیابی، انتخاب، تقاطع و جهش برای چندین نسل تکرار میشود تا بهترین راهحل پیدا شود.
🎯 مزایای استفاده از الگوریتم ژنتیک
- ساده و انعطافپذیر: پیادهسازی و استفاده از الگوریتم ژنتیک نسبتاً ساده است و میتوان آن را برای مسائل مختلف بهینهسازی تطبیق داد.
- پویایی و تنوع: با استفاده از تقاطع و جهش، تنوع جمعیت حفظ میشود که این امر کمک میکند تا از گیر افتادن در بهینههای محلی جلوگیری شود.
- بهینهسازی موازی: این الگوریتم میتواند بهصورت موازی اجرا شود و باعث سرعت بخشیدن به فرآیند بهینهسازی شود.
🏁 نتیجهگیری
الگوریتم ژنتیک یکی از روشهای قدرتمند برای حل مسائل پیچیده و بهینهسازی است که از اصول تکامل طبیعی الهام گرفته شده است. با استفاده از این الگوریتم میتوانیم به راهحلهای بهینه و کارآمدی برای مسائل مختلف دست پیدا کنیم. امیدواریم این آموزش به شما در درک بهتر الگوریتم ژنتیک کمک کرده باشد. برای بهروزرسانیهای بیشتر و آموزشهای جذابتر، کانال تلگرام ما را دنبال کنید!
#الگوریتم_ژنتیک #بهینه_سازی #آموزش #هوش_مصنوعی #برنامه_نویسی
❤2
پارت ۹: مدیریت فایلها در پایتون 🗂️🐍
در این پارت، به بررسی نحوه کار با فایلها در پایتون میپردازیم. مدیریت فایلها یکی از قابلیتهای مهم پایتون است که به ما اجازه میدهد تا فایلها را باز کنیم، بخوانیم، بنویسیم و تغییر دهیم.
۱. باز کردن و بستن فایلها
برای کار با فایلها در پایتون از تابع
حالتهای باز کردن فایل
-
-
-
-
باز کردن و بستن فایل
در اینجا فایل
** ۲. خواندن از فایل
برای خواندن محتوای فایل از متدهای
خواندن کل محتوا با
در این مثال، تمام محتوای فایل
خواندن یک خط با
در این مثال، فقط یک خط از فایل خوانده و چاپ میشود.
خواندن تمام خطوط با
در این مثال، تمام خطوط فایل به صورت لیست خوانده و هر خط به طور جداگانه چاپ میشود.
** ۳. نوشتن به فایل
برای نوشتن در فایل از متد
نوشتن در فایل
در این مثال، دو خط متن به فایل
اضافه کردن به فایل
در این مثال، یک خط جدید به انتهای فایل
** ۴. استفاده از
با استفاده از کلمه کلیدی
استفاده از
در این مثال، فایل
**۵. کار با فایلهای CSV
برای کار با فایلهای CSV از کتابخانه
خواندن فایل CSV
در این مثال، فایل
نوشتن به فایل CSV
در این مثال، دادهها به فایل
** ۶. مدیریت فایلهای JSON
برای کار با فایلهای JSON از کتابخانه
خواندن فایل JSON
در این مثال، فایل
نوشتن به فایل JSON
در این مثال، دادهها به فایل
__________
تمرینها
1. یک فایل متنی به نام
در این پارت، به بررسی نحوه کار با فایلها در پایتون میپردازیم. مدیریت فایلها یکی از قابلیتهای مهم پایتون است که به ما اجازه میدهد تا فایلها را باز کنیم، بخوانیم، بنویسیم و تغییر دهیم.
۱. باز کردن و بستن فایلها
برای کار با فایلها در پایتون از تابع
open
استفاده میکنیم. این تابع دو آرگومان اصلی دارد: نام فایل و حالت باز کردن فایل.حالتهای باز کردن فایل
-
r
: باز کردن فایل برای خواندن (پیشفرض)-
w
: باز کردن فایل برای نوشتن (اگر فایل وجود نداشته باشد، ایجاد میشود؛ اگر فایل وجود داشته باشد، محتوای آن پاک میشود)-
a
: باز کردن فایل برای اضافه کردن محتوا (اگر فایل وجود نداشته باشد، ایجاد میشود)-
b
: باز کردن فایل در حالت باینری (برای فایلهای غیر متنی)باز کردن و بستن فایل
# باز کردن فایل
file = open('example.txt', 'r')
# انجام عملیات با فایل
# بستن فایل
file.close()
در اینجا فایل
example.txt
را برای خواندن باز کرده و سپس آن را بستهایم.** ۲. خواندن از فایل
برای خواندن محتوای فایل از متدهای
read
, readline
و readlines
استفاده میکنیم.**خواندن کل محتوا با
read
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()
در این مثال، تمام محتوای فایل
example.txt
خوانده و چاپ میشود.خواندن یک خط با
readline
file = open('example.txt', 'r')
line = file.readline()
print(line)
file.close()
در این مثال، فقط یک خط از فایل خوانده و چاپ میشود.
خواندن تمام خطوط با
readlines
file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
print(line)
file.close()
در این مثال، تمام خطوط فایل به صورت لیست خوانده و هر خط به طور جداگانه چاپ میشود.
** ۳. نوشتن به فایل
برای نوشتن در فایل از متد
write
استفاده میکنیم.**نوشتن در فایل
file = open('example.txt', 'w')
file.write('Hello, World!\n')
file.write('This is a test.\n')
file.close()
در این مثال، دو خط متن به فایل
example.txt
نوشته میشود.اضافه کردن به فایل
file = open('example.txt', 'a')
file.write('Appending a new line.\n')
file.close()
در این مثال، یک خط جدید به انتهای فایل
example.txt
اضافه میشود.** ۴. استفاده از
with
برای مدیریت فایلهابا استفاده از کلمه کلیدی
with
میتوانیم به طور خودکار فایل را پس از اتمام عملیات ببندیم.**استفاده از
with
with open('example.txt', 'r') as file:
content = file.read()
print(content)
در این مثال، فایل
example.txt
برای خواندن باز شده و پس از اتمام عملیات، به طور خودکار بسته میشود.**۵. کار با فایلهای CSV
برای کار با فایلهای CSV از کتابخانه
csv
استفاده میکنیم.**خواندن فایل CSV
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
در این مثال، فایل
data.csv
خوانده شده و هر ردیف آن چاپ میشود.نوشتن به فایل CSV
import csv
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'City'])
writer.writerow(['Ali', 25, 'Tehran'])
writer.writerow(['Sara', 30, 'Mashhad'])
در این مثال، دادهها به فایل
data.csv
نوشته میشوند.** ۶. مدیریت فایلهای JSON
برای کار با فایلهای JSON از کتابخانه
json
استفاده میکنیم.**خواندن فایل JSON
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
در این مثال، فایل
data.json
خوانده شده و محتوای آن چاپ میشود.نوشتن به فایل JSON
import json
data = {
'name': 'Ali',
'age': 25,
'city': 'Tehran'
}
with open('data.json', 'w') as file:
json.dump(data, file)
در این مثال، دادهها به فایل
data.json
نوشته میشوند.__________
تمرینها
1. یک فایل متنی به نام
notes.txt
ایجاد کنید و چند خط متن به آن اضافه کنید. سپس محتوای آن را بخوانید و چاپ کنید.with open('notes.txt', 'w') as file:
file.write('Line 1\n')
file.write('Line 2\n')
with open('notes.txt', 'r') as file:
content = file.read()
print(content)
2. یک فایل CSV به نام
3. یک فایل JSON به نام
(آموزش کامل پایتون توی کانال ما)
#پایتون #آموزش_پایتون #برنامه_نویسی #مدیریت_فایل #فایل_متنی #CSV #JSON
employees.csv
ایجاد کنید که شامل ستونهای Name
, Age
و Department
باشد و چند ردیف داده به آن اضافه کنید. سپس دادههای فایل را بخوانید و چاپ کنید.import csv
with open('employees.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'Department'])
writer.writerow(['Ali', 25, 'IT'])
writer.writerow(['Sara', 30, 'HR'])
with open('employees.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
3. یک فایل JSON به نام
config.json
ایجاد کنید که شامل تنظیمات مختلف یک برنامه باشد. سپس تنظیمات را از فایل خوانده و چاپ کنید.import json
config = {
'setting1': 'value1',
'setting2': 'value2',
'setting3': 'value3'
}
with open('config.json', 'w') as file:
json.dump(config, file)
with open('config.json', 'r') as file:
settings = json.load(file)
print(settings)
(آموزش کامل پایتون توی کانال ما)
#پایتون #آموزش_پایتون #برنامه_نویسی #مدیریت_فایل #فایل_متنی #CSV #JSON
👍4
پارت ۱۰: مدیریت استثناها در پایتون 🛠️🐍
در این پارت، به بررسی مدیریت استثناها در پایتون میپردازیم. استثناها شرایط خاصی هستند که در زمان اجرای برنامه رخ میدهند و میتوانند منجر به خطا شوند. پایتون ابزارهایی برای مدیریت این استثناها فراهم میکند تا برنامهها به طور روانتری اجرا شوند و از برخورد با خطاهای غیرمنتظره جلوگیری شود.
۱. ساختار کلی مدیریت استثناها
پایتون از بلوکهای
بلوک
در این مثال، سعی میکنیم عددی را بر صفر تقسیم کنیم که منجر به خطای
بلوک
در اینجا، اگر هیچ خطایی رخ ندهد، بلوک
بلوک
بلوک
۲. مدیریت چندین نوع استثنا
میتوانیم چندین نوع استثنا را در یک بلوک
در این مثال، هم خطای تقسیم بر صفر و هم خطای ورود داده نامعتبر مدیریت میشود.
۳. ایجاد استثنای سفارشی
میتوانیم استثناهای سفارشی خود را با ایجاد یک کلاس جدید تعریف کنیم.
در اینجا، یک استثنای سفارشی به نام
۴. نمونههای عملی
خواندن فایل و مدیریت استثناها
در این مثال، سعی میکنیم یک فایل را بخوانیم و در صورت عدم وجود فایل، خطای
ورودی کاربر و مدیریت استثناها
در اینجا، ورود کاربر را مدیریت کرده و در صورت ورود داده نامعتبر یا تقسیم بر صفر، خطاها را مدیریت میکنیم.
تمرینها
1. یک برنامه بنویسید که از کاربر دو عدد بگیرد و نتیجه تقسیم آنها را نمایش دهد. اگر عدد دوم صفر باشد یا داده نامعتبر وارد شود، خطا را مدیریت کنید.
2. یک فایل متنی باز کنید و محتوای آن را بخوانید. اگر فایل وجود نداشته باشد، خطا را مدیریت کنید. سپس تعداد خطوط فایل را چاپ کنید.
3. یک استثنای سفارشی ایجاد کنید که زمانی که کاربر سنی کمتر از ۱۸ سال وارد میکند، آن را مدیریت کند.
در این پارت، به بررسی مدیریت استثناها در پایتون میپردازیم. استثناها شرایط خاصی هستند که در زمان اجرای برنامه رخ میدهند و میتوانند منجر به خطا شوند. پایتون ابزارهایی برای مدیریت این استثناها فراهم میکند تا برنامهها به طور روانتری اجرا شوند و از برخورد با خطاهای غیرمنتظره جلوگیری شود.
۱. ساختار کلی مدیریت استثناها
پایتون از بلوکهای
try
, except
, else
و finally
برای مدیریت استثناها استفاده میکند.بلوک
try
و except
try:
# کد اصلی که ممکن است خطا ایجاد کند
x = 1 / 0
except ZeroDivisionError:
# کد مدیریت خطا
print("خطا: تقسیم بر صفر غیرمجاز است.")
در این مثال، سعی میکنیم عددی را بر صفر تقسیم کنیم که منجر به خطای
ZeroDivisionError
میشود. در بلوک except
، این خطا را مدیریت کرده و پیام خطا را چاپ میکنیم.بلوک
else
try:
x = 10 / 2
except ZeroDivisionError:
print("خطا: تقسیم بر صفر غیرمجاز است.")
else:
print(f"نتیجه تقسیم: {x}")
در اینجا، اگر هیچ خطایی رخ ندهد، بلوک
else
اجرا میشود و نتیجه عملیات چاپ میشود.بلوک
finally
try:
x = 10 / 0
except ZeroDivisionError:
print("خطا: تقسیم بر صفر غیرمجاز است.")
finally:
print("این بلوک همیشه اجرا میشود.")
بلوک
finally
همیشه، چه خطایی رخ دهد و چه رخ ندهد، اجرا میشود.۲. مدیریت چندین نوع استثنا
میتوانیم چندین نوع استثنا را در یک بلوک
except
مدیریت کنیم.try:
x = int(input("یک عدد وارد کنید: "))
y = 10 / x
except ZeroDivisionError:
print("خطا: تقسیم بر صفر غیرمجاز است.")
except ValueError:
print("خطا: لطفا یک عدد صحیح وارد کنید.")
در این مثال، هم خطای تقسیم بر صفر و هم خطای ورود داده نامعتبر مدیریت میشود.
۳. ایجاد استثنای سفارشی
میتوانیم استثناهای سفارشی خود را با ایجاد یک کلاس جدید تعریف کنیم.
class MyCustomError(Exception):
pass
try:
raise MyCustomError("این یک استثنای سفارشی است.")
except MyCustomError as e:
print(e)
در اینجا، یک استثنای سفارشی به نام
MyCustomError
ایجاد کردهایم و از آن استفاده میکنیم.۴. نمونههای عملی
خواندن فایل و مدیریت استثناها
try:
with open('example.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("خطا: فایل یافت نشد.")
else:
print(content)
finally:
print("پایان عملیات فایل.")
در این مثال، سعی میکنیم یک فایل را بخوانیم و در صورت عدم وجود فایل، خطای
FileNotFoundError
را مدیریت میکنیم.ورودی کاربر و مدیریت استثناها
try:
number = int(input("یک عدد وارد کنید: "))
result = 10 / number
except ValueError:
print("خطا: لطفا یک عدد صحیح وارد کنید.")
except ZeroDivisionError:
print("خطا: تقسیم بر صفر غیرمجاز است.")
else:
print(f"نتیجه: {result}")
finally:
print("پایان عملیات.")
در اینجا، ورود کاربر را مدیریت کرده و در صورت ورود داده نامعتبر یا تقسیم بر صفر، خطاها را مدیریت میکنیم.
تمرینها
1. یک برنامه بنویسید که از کاربر دو عدد بگیرد و نتیجه تقسیم آنها را نمایش دهد. اگر عدد دوم صفر باشد یا داده نامعتبر وارد شود، خطا را مدیریت کنید.
try:
a = int(input("عدد اول را وارد کنید: "))
b = int(input("عدد دوم را وارد کنید: "))
result = a / b
except ValueError:
print("خطا: لطفا یک عدد صحیح وارد کنید.")
except ZeroDivisionError:
print("خطا: تقسیم بر صفر غیرمجاز است.")
else:
print(f"نتیجه تقسیم: {result}")
finally:
print("پایان عملیات.")
2. یک فایل متنی باز کنید و محتوای آن را بخوانید. اگر فایل وجود نداشته باشد، خطا را مدیریت کنید. سپس تعداد خطوط فایل را چاپ کنید.
try:
with open('data.txt', 'r') as file:
lines = file.readlines()
except FileNotFoundError:
print("خطا: فایل یافت نشد.")
else:
print(f"تعداد خطوط فایل: {len(lines)}")
finally:
print("پایان عملیات فایل.")
3. یک استثنای سفارشی ایجاد کنید که زمانی که کاربر سنی کمتر از ۱۸ سال وارد میکند، آن را مدیریت کند.
class UnderageError(Exception):
pass
try:
age = int(input("سن خود را وارد کنید: "))
if age < 18:
raise UnderageError("خطا: شما زیر ۱۸ سال هستید.")
except ValueError:
print("خطا: لطفا یک عدد صحیح وارد کنید.")
except UnderageError as e:
print(e)
finally:
print("پایان بررسی سن.")
🔗لینک کانال ما 👇
(https://t.iss.one/hamidpython123)
#پایتون #آموزش_پایتون #برنامه_نویسی #مدیریت_استثنا #مدیریت_خطا #Exception_Handling
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍4
📝 نکتهای که شاید ندانید: استفاده از Memory-Mapped Files در پایتون
Memory-Mapped Files یا فایلهای نگاشت شده به حافظه، یک تکنیک پیشرفته برای دسترسی به محتوای فایلها است که به شما اجازه میدهد تا به بخشهای مختلف یک فایل بزرگ بدون نیاز به خواندن کل آن، دسترسی پیدا کنید. این تکنیک میتواند در بهینهسازی عملکرد و کاهش مصرف حافظه موثر باشد.
پایتون با استفاده از ماژول
💻 مثال: خواندن و نوشتن در فایل با استفاده از Memory-Mapped Files
توضیح:
1. باز کردن فایل: ابتدا فایل را در حالت خواندن و نوشتن باینری باز میکنیم (
2. ایجاد memory-map: یک
3. خواندن از فایل: میتوانیم مانند یک فایل عادی از
4. نوشتن در فایل: میتوانیم محتوای فایل را تغییر دهیم بدون نیاز به بارگذاری کل فایل در حافظه. ✏️
5. بستن memory-map: پس از انجام عملیات، memory-map را میبندیم. 🗄️
این روش به خصوص برای فایلهای بزرگ بسیار کارآمد است و میتواند به بهینهسازی برنامههای شما کمک کند.
💡 نکته خیلی خیلی مهم: استفاده از memory-mapped files میتواند به شدت به بهبود عملکرد و کارایی برنامههای شما در مواقعی که نیاز به دسترسی سریع به بخشهای خاصی از فایل دارید، کمک کند. 🚀
این تکنیک کمتر شناخته شده است، اما میتواند در بسیاری از موارد بسیار مفید باشد.
(نکته ها اموزشای بیشتر اینجا کلیک کن)
#پایتون #برنامه_نویسی #فایل_ها #بهینه_سازی #حافظه
Memory-Mapped Files یا فایلهای نگاشت شده به حافظه، یک تکنیک پیشرفته برای دسترسی به محتوای فایلها است که به شما اجازه میدهد تا به بخشهای مختلف یک فایل بزرگ بدون نیاز به خواندن کل آن، دسترسی پیدا کنید. این تکنیک میتواند در بهینهسازی عملکرد و کاهش مصرف حافظه موثر باشد.
پایتون با استفاده از ماژول
mmap
این قابلیت را فراهم میکند. در اینجا یک مثال ساده برای استفاده از mmap
آورده شده است:💻 مثال: خواندن و نوشتن در فایل با استفاده از Memory-Mapped Files
import mmap
# باز کردن فایل 📂
with open("example.txt", "r+b") as f:
# ایجاد یک memory-map به اندازه کل فایل 📜
mm = mmap.mmap(f.fileno(), 0)
# خواندن اولین خط فایل 📖
first_line = mm.readline()
print("First Line:", first_line.decode('utf-8'))
# جایگزینی محتوای خاص در فایل ✏️
mm.seek(0) # برگشت به ابتدای فایل
mm.write(b'New content that replaces old content\n')
# بستن memory-map 🗄️
mm.close()
توضیح:
1. باز کردن فایل: ابتدا فایل را در حالت خواندن و نوشتن باینری باز میکنیم (
r+b
). 📂2. ایجاد memory-map: یک
mmap
ایجاد میکنیم که به کل فایل نگاشت میشود. 📜3. خواندن از فایل: میتوانیم مانند یک فایل عادی از
mmap
بخوانیم. 📖4. نوشتن در فایل: میتوانیم محتوای فایل را تغییر دهیم بدون نیاز به بارگذاری کل فایل در حافظه. ✏️
5. بستن memory-map: پس از انجام عملیات، memory-map را میبندیم. 🗄️
این روش به خصوص برای فایلهای بزرگ بسیار کارآمد است و میتواند به بهینهسازی برنامههای شما کمک کند.
💡 نکته خیلی خیلی مهم: استفاده از memory-mapped files میتواند به شدت به بهبود عملکرد و کارایی برنامههای شما در مواقعی که نیاز به دسترسی سریع به بخشهای خاصی از فایل دارید، کمک کند. 🚀
این تکنیک کمتر شناخته شده است، اما میتواند در بسیاری از موارد بسیار مفید باشد.
(نکته ها اموزشای بیشتر اینجا کلیک کن)
#پایتون #برنامه_نویسی #فایل_ها #بهینه_سازی #حافظه
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍5
ساخت یک مفسر ساده در پایتون 🚀
مرحله ۱: تعریف زبان برنامهنویسی 📜
ابتدا باید قواعد و دستورات زبان برنامهنویسی خودتون رو تعریف کنید. برای این آموزش، ما یک زبان ساده به نام "MiniLang" با دستورات پایهای تعریف میکنیم:
1. دستور
2. دستور
3. دستور
مرحله ۲: نوشتن Lexer 🔍
Lexer یا تجزیهکننده لغوی، متن برنامه را به توکنها (قطعات کوچکتر) تقسیم میکند.
مرحله ۳: نوشتن Parser 🔍
Parser یا تجزیهکننده نحوی، توکنها را به دستورات قابل اجرا تبدیل میکند.
مرحله ۴: اجرای دستورات 🏃♂️
Interpreter یا مفسر، دستورات را اجرا میکند.
مرحله ۵: استفاده از مفسر 📟
حالا کد کامل برای مفسر خودمون رو داریم. میتونیم یک برنامه MiniLang رو اجرا کنیم.
این کد مقدار ۱۵ را چاپ خواهد کرد چون ابتدا مقدار ۵ به متغیر
[آموزش ساخت مفسر]
#Python #Programming #CodingTips #LearnPython #Interpreter #MiniLang
مرحله ۱: تعریف زبان برنامهنویسی 📜
ابتدا باید قواعد و دستورات زبان برنامهنویسی خودتون رو تعریف کنید. برای این آموزش، ما یک زبان ساده به نام "MiniLang" با دستورات پایهای تعریف میکنیم:
1. دستور
PRINT
برای چاپ متن.2. دستور
SET
برای تعریف متغیرها.3. دستور
ADD
برای جمع کردن مقادیر.مرحله ۲: نوشتن Lexer 🔍
Lexer یا تجزیهکننده لغوی، متن برنامه را به توکنها (قطعات کوچکتر) تقسیم میکند.
import re
def lexer(code):
tokens = []
for line in code.splitlines():
line = line.strip()
if line:
if line.startswith("PRINT"):
tokens.append(("PRINT", line[6:]))
elif line.startswith("SET"):
match = re.match(r"SET (\w+) (.+)", line)
if match:
tokens.append(("SET", match.group(1), match.group(2)))
elif line.startswith("ADD"):
match = re.match(r"ADD (\w+) (\w+)", line)
if match:
tokens.append(("ADD", match.group(1), match.group(2)))
return tokens
مرحله ۳: نوشتن Parser 🔍
Parser یا تجزیهکننده نحوی، توکنها را به دستورات قابل اجرا تبدیل میکند.
def parser(tokens):
commands = []
for token in tokens:
if token[0] == "PRINT":
commands.append(("PRINT", token[1]))
elif token[0] == "SET":
commands.append(("SET", token[1], token[2]))
elif token[0] == "ADD":
commands.append(("ADD", token[1], token[2]))
return commands
مرحله ۴: اجرای دستورات 🏃♂️
Interpreter یا مفسر، دستورات را اجرا میکند.
def interpreter(commands):
variables = {}
for command in commands:
if command[0] == "PRINT":
print(command[1])
elif command[0] == "SET":
variables[command[1]] = eval(command[2], {}, variables)
elif command[0] == "ADD":
if command[1] in variables and command[2] in variables:
variables[command[1]] += variables[command[2]]
return variables
مرحله ۵: استفاده از مفسر 📟
حالا کد کامل برای مفسر خودمون رو داریم. میتونیم یک برنامه MiniLang رو اجرا کنیم.
code = """
SET x 5
SET y 10
ADD x y
PRINT x
"""
tokens = lexer(code)
commands = parser(tokens)
interpreter(commands)
این کد مقدار ۱۵ را چاپ خواهد کرد چون ابتدا مقدار ۵ به متغیر
x
و مقدار ۱۰ به متغیر y
اختصاص داده شده و سپس این دو مقدار با هم جمع شده و نتیجه چاپ میشود.[آموزش ساخت مفسر]
#Python #Programming #CodingTips #LearnPython #Interpreter #MiniLang
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2
👇نمونش کامل 👇
import re
# Lexer: تبدیل کد به توکنها
def lexer(code):
tokens = []
for line in code.splitlines():
line = line.strip()
if line:
if line.startswith("PRINT"):
tokens.append(("PRINT", line[6:]))
elif line.startswith("SET"):
match = re.match(r"SET (\w+) (.+)", line)
if match:
tokens.append(("SET", match.group(1), match.group(2)))
elif line.startswith("ADD"):
match = re.match(r"ADD (\w+) (\w+)", line)
if match:
tokens.append(("ADD", match.group(1), match.group(2)))
return tokens
# Parser: تبدیل توکنها به دستورات قابل اجرا
def parser(tokens):
commands = []
for token in tokens:
if token[0] == "PRINT":
commands.append(("PRINT", token[1]))
elif token[0] == "SET":
commands.append(("SET", token[1], token[2]))
elif token[0] == "ADD":
commands.append(("ADD", token[1], token[2]))
return commands
# Interpreter: اجرای دستورات
def interpreter(commands):
variables = {}
for command in commands:
if command[0] == "PRINT":
if command[1] in variables:
print(variables[command[1]])
else:
print(command[1])
elif command[0] == "SET":
variables[command[1]] = eval(command[2], {}, variables)
elif command[0] == "ADD":
if command[1] in variables and command[2] in variables:
variables[command[1]] += variables[command[2]]
return variables
# کد نمونه MiniLang
code = """
SET x 5
SET y 10
ADD x y
PRINT x
"""
# اجرای مراحل Lexer، Parser و Interpreter
tokens = lexer(code)
commands = parser(tokens)
interpreter(commands)
👍6
🔴اینو جواب بدید دیگه خدایش میخام برای منظم شدن چنل
Anonymous Poll
76%
تازه کار هستم 🥺
24%
کهنه کار و حرفه ای🤫😏
سلام دوستان ❤️
ادمین جدید هستم
امیدوارم از من خوشتون بیاد 😅
قراره چالش ها و دانستنی های زیادی درباره پایتون داشته باشیم✔️
ریاکشن بیشتر = حمایت از ما ❤️ 👇
ادمین جدید هستم
امیدوارم از من خوشتون بیاد 😅
قراره چالش ها و دانستنی های زیادی درباره پایتون داشته باشیم✔️
ریاکشن بیشتر = حمایت از ما ❤️ 👇
❤5👍2
Python3
🔴اینو جواب بدید دیگه خدایش میخام برای منظم شدن چنل
برای بهتر شدن پست های چنل ، لطفاً جواب این نظرسنجی رو بدید 🥰
👍6
🌟 ۷ خبر مهم امروز از دنیای پایتون 🌟
📰 #1: گوگل سرویس جدید Cloud AI Notebooks را با پشتیبانی از پایتون عرضه کرد ☁️🤖
امروز گوگل سرویس Cloud AI Notebooks را معرفی کرد. این سرویس به طور ویژه برای پروژههای هوش مصنوعی و یادگیری ماشین طراحی شده و از پایتون پشتیبانی میکند. گوگل اعلام کرده که این ابزار جدید به توسعهدهندگان کمک میکند تا سریعتر و کارآمدتر کار کنند.
📰 #2: انتشار نسخه جدید FastAPI 0.70 🚀
کتابخانه محبوب FastAPI نسخه 0.70 خود را منتشر کرد. این نسخه شامل بهبودهایی در مستندات و رفع برخی باگها است. توسعهدهندگان میتوانند از این بهروزرسانیها برای ساخت APIهای سریع و کارآمدتر بهره ببرند.
📰 #3: معرفی ابزار جدید Poetry برای مدیریت وابستگیها 📦
ابزار Poetry به عنوان یک ابزار قدرتمند برای مدیریت وابستگیها و بستهبندی پروژههای پایتون معرفی شده است. این ابزار با استفاده آسان و ویژگیهای متنوع خود، جایگزین مناسبی برای pip و virtualenv محسوب میشود.
📰 #4: پیشرفتهای جدید در Pandas 1.3.3 🧮
کتابخانه Pandas نسخه 1.3.3 خود را منتشر کرد. این نسخه شامل بهبودهایی در عملکرد و افزایش قابلیتهای جدید برای تجزیه و تحلیل دادهها میباشد. اگر با دادهها کار میکنید، حتماً به این بهروزرسانی نگاهی بیاندازید.
📰 #5: معرفی دوره جدید "Machine Learning with Python" توسط Coursera 📚
پلتفرم آموزشی Coursera دوره جدیدی با عنوان "Machine Learning with Python" را معرفی کرد. این دوره توسط متخصصان برجسته طراحی شده و برای تمامی سطوح مناسب است. اگر به یادگیری ماشین علاقه دارید، این دوره را از دست ندهید.
📰 #6: برگزاری کنفرانس PyCon 2024 در آمستردام 🇳🇱
خبر هیجانانگیز برای علاقهمندان به پایتون! کنفرانس سالانه PyCon 2024 در آمستردام برگزار خواهد شد. این رویداد فرصتی عالی برای شبکهسازی و آشنایی با آخرین پیشرفتها و ابزارهای پایتون فراهم میکند.
📰 #7: بهروزرسانی افزونه VSCode برای توسعهدهندگان پایتون 🛠️
افزونه VSCode برای توسعهدهندگان پایتون بهروز شده و امکانات جدیدی از جمله تکمیل خودکار کد و دیباگینگ پیشرفته به آن افزوده شده است. این بهروزرسانی تجربه توسعه با پایتون را بهبود میبخشد و کار را برای برنامهنویسان راحتتر میکند.
📢 با دنبال کردن کانال تلگرام ما، از آخرین اخبار و بهروزرسانیهای دنیای پایتون مطلع شوید!
(اینجا کلیک کن تا از اخبار مهم پایتون با خبر باشی)
#Python #Google #AI #FastAPI #Python #Poetry #DependencyManagement #MachineLearning #Python
#VSCode #IDE #Python
#PythonNews #TelegramChannel
📰 #1: گوگل سرویس جدید Cloud AI Notebooks را با پشتیبانی از پایتون عرضه کرد ☁️🤖
امروز گوگل سرویس Cloud AI Notebooks را معرفی کرد. این سرویس به طور ویژه برای پروژههای هوش مصنوعی و یادگیری ماشین طراحی شده و از پایتون پشتیبانی میکند. گوگل اعلام کرده که این ابزار جدید به توسعهدهندگان کمک میکند تا سریعتر و کارآمدتر کار کنند.
📰 #2: انتشار نسخه جدید FastAPI 0.70 🚀
کتابخانه محبوب FastAPI نسخه 0.70 خود را منتشر کرد. این نسخه شامل بهبودهایی در مستندات و رفع برخی باگها است. توسعهدهندگان میتوانند از این بهروزرسانیها برای ساخت APIهای سریع و کارآمدتر بهره ببرند.
📰 #3: معرفی ابزار جدید Poetry برای مدیریت وابستگیها 📦
ابزار Poetry به عنوان یک ابزار قدرتمند برای مدیریت وابستگیها و بستهبندی پروژههای پایتون معرفی شده است. این ابزار با استفاده آسان و ویژگیهای متنوع خود، جایگزین مناسبی برای pip و virtualenv محسوب میشود.
📰 #4: پیشرفتهای جدید در Pandas 1.3.3 🧮
کتابخانه Pandas نسخه 1.3.3 خود را منتشر کرد. این نسخه شامل بهبودهایی در عملکرد و افزایش قابلیتهای جدید برای تجزیه و تحلیل دادهها میباشد. اگر با دادهها کار میکنید، حتماً به این بهروزرسانی نگاهی بیاندازید.
📰 #5: معرفی دوره جدید "Machine Learning with Python" توسط Coursera 📚
پلتفرم آموزشی Coursera دوره جدیدی با عنوان "Machine Learning with Python" را معرفی کرد. این دوره توسط متخصصان برجسته طراحی شده و برای تمامی سطوح مناسب است. اگر به یادگیری ماشین علاقه دارید، این دوره را از دست ندهید.
📰 #6: برگزاری کنفرانس PyCon 2024 در آمستردام 🇳🇱
خبر هیجانانگیز برای علاقهمندان به پایتون! کنفرانس سالانه PyCon 2024 در آمستردام برگزار خواهد شد. این رویداد فرصتی عالی برای شبکهسازی و آشنایی با آخرین پیشرفتها و ابزارهای پایتون فراهم میکند.
📰 #7: بهروزرسانی افزونه VSCode برای توسعهدهندگان پایتون 🛠️
افزونه VSCode برای توسعهدهندگان پایتون بهروز شده و امکانات جدیدی از جمله تکمیل خودکار کد و دیباگینگ پیشرفته به آن افزوده شده است. این بهروزرسانی تجربه توسعه با پایتون را بهبود میبخشد و کار را برای برنامهنویسان راحتتر میکند.
📢 با دنبال کردن کانال تلگرام ما، از آخرین اخبار و بهروزرسانیهای دنیای پایتون مطلع شوید!
(اینجا کلیک کن تا از اخبار مهم پایتون با خبر باشی)
#Python #Google #AI #FastAPI #Python #Poetry #DependencyManagement #MachineLearning #Python
#VSCode #IDE #Python
#PythonNews #TelegramChannel
👍2
دانستی مخفی درباره پایتون 🐍
صبح بخیر دوستان! 🌞 آیا میدانستید که در پایتون، میتوانید از توابعی استفاده کنید که درون خودشان صدا زده میشوند، به این حالت توابع بازگشتی میگویند (Recursion)!؟ شاید این ویژگی برای بسیاری ناشناخته باشد، اما با استفاده از این روش، میتوانید مسائل پیچیده را به سادگی حل کنید.
یک مثال ساده از توابع بازگشتی، محاسبه فاکتوریل یک عدد است:
روز خوبی داشته باشید! ☀️
[اینم لینک کانال ما ]
#Python #Recursion #CodingTips #ProgrammingSecrets #صبح_بخیر #پایتون #نکته_پایتون
صبح بخیر دوستان! 🌞 آیا میدانستید که در پایتون، میتوانید از توابعی استفاده کنید که درون خودشان صدا زده میشوند، به این حالت توابع بازگشتی میگویند (Recursion)!؟ شاید این ویژگی برای بسیاری ناشناخته باشد، اما با استفاده از این روش، میتوانید مسائل پیچیده را به سادگی حل کنید.
یک مثال ساده از توابع بازگشتی، محاسبه فاکتوریل یک عدد است:
def factorial(n):در این مثال، تابع factorial خودش را برای مقدارهای کوچکتر از n صدا میزند تا به مقدار نهایی برسد. این نکته کوچک میتواند برای بسیاری از مسائل ریاضی و الگوریتمی، کد شما را بسیار کوتاهتر و کارآمدتر کند. 🌟
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
روز خوبی داشته باشید! ☀️
[اینم لینک کانال ما ]
#Python #Recursion #CodingTips #ProgrammingSecrets #صبح_بخیر #پایتون #نکته_پایتون
👍1
نظرتون چیه یه چالش یهویی برگذار کنیم😅🏆
توجه : چالش جایزه خاصی نداره فقط برای اندازه گیری توان شما در کدنویسی هست ❗️
توجه : چالش جایزه خاصی نداره فقط برای اندازه گیری توان شما در کدنویسی هست ❗️
👍5