برنامه‌نویسی comma.code | computer| کاما کد|
2.67K subscribers
23 photos
64 videos
9 files
93 links
به ⭐️کانال کاما کد⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته

حرفی سخنی انتقادی: @ir_379
Download Telegram
برید سایت زیر و تصویرتون رو وارد کنید و افکت ها و ستینگ های مختلف رو روی تصاویرتون پیاده کنید

grainrad.com


ری اکشن ها خیلی کم شده😔
❤‍🔥5
🐍 آموزش دیکشنری در پایتون | Dictionary

دیکشنری یکی از مهم‌ترین ساختارهای داده در پایتون است که اطلاعات را به صورت کلید و مقدار (Key : Value) ذخیره می‌کند.

━━━━━━━━━━━━━━━━━━

🔹 1. ساخت دیکشنری
student = {
"name": "Ali",
"age": 20,
"major": "Computer Science"
}

در اینجا:

"name" → کلید (Key)
"Ali" → مقدار (Value)

━━━━━━━━━━━━━━━━━━

🔹 2. دسترسی به مقدار

برای دسترسی به یک مقدار، کلید آن را داخل "[]" قرار می‌دهیم:

print(student["name"])

📤 خروجی:

Ali

━━━━━━━━━━━━━━━━━━

🔹 3. اضافه کردن عضو جدید

student["city"] = "Isfahan"

حالا دیکشنری شامل "city" نیز می‌شود.

━━━━━━━━━━━━━━━━━━

🔹 4. تغییر مقدار

اگر کلید از قبل وجود داشته باشد، مقدار آن تغییر می‌کند:

student["age"] = 21

━━━━━━━━━━━━━━━━━━

🔹 5. حذف یک عضو

با "del" می‌توان یک عضو را حذف کرد:

del student["city"]

یا با "pop()":

student.pop("age")

━━━━━━━━━━━━━━━━━━

🔹 6. بررسی وجود یک کلید

if "name" in student:
print("کلید وجود دارد")

━━━━━━━━━━━━━━━━━━

🔹 7. متدهای مهم Dictionary

🔸 "keys()" → دریافت کلیدها

student.keys()

🔸 "values()" → دریافت مقادیر

student.values()

🔸 "items()" → دریافت کلید و مقدار

student.items()

🔸 "get()" → دریافت مقدار یک کلید

student.get("name")

🔸 "update()" → اضافه یا بروزرسانی چند مقدار

student.update({
"age": 22,
"city": "Tehran"
})

━━━━━━━━━━━━━━━━━━

💡 یک مثال کاربردی

user = {
"username": "iliya",
"age": 20,
"is_active": True
}
print(user["username"])
print(user["age"])
print(user["is_active"])

📤 خروجی:

iliya
20
True

━━━━━━━━━━━━━━━━━━

🎯 نکته مهم:

در Dictionary:

Key → باید یکتا باشد
Value → می‌تواند تکراری باشد

مثلاً:
users = {
"user1": "Ali",
"user2": "Reza",
"user3": "Ali"
}

اینجا مقدار ""Ali"" می‌تواند چند بار وجود داشته باشد، اما کلیدها باید یکتا باشند.

━━━━━━━━━━━━━━━━━━

🔥 تمرین


یک دیکشنری به نام "book" بسازید که شامل اطلاعات زیر باشد:

عنوان کتاب
نویسنده
سال انتشار
قیمت

سپس:

1️⃣ قیمت کتاب را چاپ کنید.
2️⃣ سال انتشار را تغییر دهید.
3️⃣ یک کلید جدید به نام "publisher" اضافه کنید.
4️⃣ نویسنده را حذف کنید.

💬 جوابتون رو بنویسید و بفرستید!

#Python
#پایتون
#Dictionary
#برنامه_نویسی
#کاما_کد
❤‍🔥2❤1
🐍 آموزش توابع | (Functions)

💡 یکی از مهم‌ترین مفاهیم در پایتون، تابع (Function) است. تابع به ما کمک می‌کند کدهای خود را یک‌بار بنویسیم و هر چند بار که نیاز داریم از آن‌ها استفاده کنیم! 🚀

━━━━━━━━━━━━━━━━━━

🔹 ۱. تابع چیست؟

تابع مجموعه‌ای از دستورات است که برای انجام یک کار مشخص نوشته می‌شود.

🔹 ۲. تعریف تابع با "def"

برای تعریف تابع در پایتون از کلمه کلیدی "def" استفاده می‌کنیم.

def say_hello():
print("Hello, Python! 🐍")

📌 تعریف تابع به‌تنهایی باعث اجرای آن نمی‌شود.

برای اجرای تابع باید آن را صدا بزنیم:

say_hello()

━━━━━━━━━━━━━━━━━━

🔹 ۳. پارامترها و آرگومان‌ها

با استفاده از پارامترها می‌توانیم اطلاعات مختلفی را به تابع بدهیم.

def greet(name):
print(f"سلام {name} عزیز! ")
greet("علی")
greet("سارا")

خروجی:

سلام علی عزیز!
سلام سارا عزیز!

🔸 "name" پارامتر تابع است.

🔸 ""علی"" و ""سارا"" آرگومان‌هایی هستند که هنگام فراخوانی به تابع داده‌ایم.

━━━━━━━━━━━━━━━━━━

🔹 ۴. دستور "return" چیست؟


دستور "return" برای برگرداندن نتیجه از تابع استفاده می‌شود.

def add(a, b):
return a + b
result = add(10, 20)
print(result)

خروجی:

30

📌 تفاوت مهم:

- "print()"
فقط مقدار را نمایش می‌دهد.
- "return"
مقدار را به محل فراخوانی برمی‌گرداند تا بتوانیم از آن استفاده کنیم.

━━━━━━━━━━━━━━━━━━

🔹 ۵. پارامتر پیش‌فرض (Default Parameter)


می‌توانیم برای پارامترهای تابع مقدار پیش‌فرض تعیین کنیم.
def greet(name="دوست من"):
print(f"سلام {name}!")
greet()
greet("علی")

خروجی:

سلام دوست من!
سلام علی!

━━━━━━━━━━━━━━━━━━

🔹 ۶. تابع بدون "return"


اگر تابعی مقدار مشخصی را با "return" برنگرداند، نتیجه فراخوانی آن به‌صورت پیش‌فرض "None" است.
def show_message():
print("Learning Python!")
result = show_message()
print(result)

خروجی:

Learning Python!
None

━━━━━━━━━━━━━━━━━━

🧠 تمرین‌های امروز

۱️⃣ تابعی بنویس که نام کاربر را دریافت کند و به او سلام کند.

۲️⃣ تابعی بنویس که دو عدد را دریافت کند و حاصل‌ضرب آن‌ها را با "return" برگرداند.

۳️⃣ تابعی بنویس که یک عدد دریافت کند و مربع آن را برگرداند.

۴️⃣ تابعی به نام "calculate_average" بنویس که سه عدد دریافت کند و میانگین آن‌ها را برگرداند.

━━━━━━━━━━━━━━━━━━

#آموزش_پایتون
#برنامه_نویسی
#توابع_پایتون
#کاما_کد
همین الان یه نکته جالبی از cpp به ذهنم رسید


میدونستید در cpp میتونید چندین فانکشن با یک اسم داشته باشید؟

به اصطلاح بهش Function overloading میگن

اینجوریه که کامپایلر بر اساس نوع و تعداد پارامتر ورودی میدونه که کدوم فانکشن رو باید اجرا کنه

و با ساز و کار Name mangling که میاد اسم فانکشن ها رو در سطح باینری تغییر میده میتونیم چندین فانکشن با یک اسم داشته باشیم (در واقع در پشت صحنه دوباره فانکشن ها رو اسم گذاری میکنه)

حالا اینجا یه نمونه می‌بینیم که نوع پارامتر ها متفاوته و کمک کرده چند فانکشن با یک اسم داشته باشیم.
void print(int x)    { std::cout << "int: "    << x << std::endl; }

void print(double x) { std::cout << "double: " << x << std::endl; }

void print(char x) { std::cout << "char: " << x << std::endl; }


int main() {
print(42); // int: 42
print(3.14); // double: 3.14
print('A'); // char: A
}


اینجا هم تعداد پارامتر ها متفاوته:
void greet()                { std::cout << "Hi!"    << std::endl; }

void greet(std::string n) { std::cout << "Hi, " + n << std::endl; }

void greet(std::string n, int age) {
std::cout << "Hi " + n + ", age " + std::to_string(age) << std::endl;
}

البته که میتونیم هم این دوتا مورد باهم ترکیب کنیم
یعنی فانکشن ها هم از نظر تعداد پارامتر و هم از نظر نوع پارامتر متفاوت باشن

خیلی خوب تا حالا این مورد رو گفتیم فقط موند بحث اولویت ها که احیانا با مشکل ابهام مواجه نشید
که اونم به این شکله
1.Exact Match
2.Promotion
3.Standard
4.User-defined
5.Variadic

امید وارم براتون مفید بوده باشه
ممنونم که روی پست ها ری اکشن می‌زنید 🙏

#کاما_کد #سی_پلاس_پلای #برنامه_نویسی #نکته
#comma_code #cpp #programming #hint

@comma_code
@comma_code1
❤4👍3🔥3
🐍 آموزش آرگومان‌های "*args" و "**kwargs"

━━━━━━━━━━━━━━━━━━

🔹 ۱. آرگومان‌های "*args"

با استفاده از "*args" می‌تونیم تعداد دلخواهی آرگومان موقعیتی به تابع ارسال کنیم.
def calculate_sum(*args):
return sum(args)
print(calculate_sum(10, 20))
print(calculate_sum(1, 2, 3, 4, 5))

خروجی:

30
15

━━━━━━━━━━━━━━━━━━

🔹 ۲. آرگومان‌های "**kwargs"

با "**kwargs" می‌تونیم تعداد دلخواهی آرگومان کلیدواژه‌ای به تابع بدیم.
def show_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
show_info(name="Ali", age=20, city="Tehran")

خروجی:

name: Ali
age: 20
city: Tehran

📌 نکته: داخل تابع، "kwargs" یک دیکشنری (Dictionary) خواهد بود.

━━━━━━━━━━━━━━━━━━

🔹 ۳. استفاده هم‌زمان از هر دو

می‌تونیم در یک تابع، هم "*args" داشته باشیم و هم "**kwargs".
def display_data(*args, **kwargs):
print("Arguments:", args)
print("Keywords:", kwargs)
display_data(10, 20, 30, name="Sara", age=22)

خروجی:

Arguments: (10, 20, 30)
Keywords: {'name': 'Sara', 'age': 22}

━━━━━━━━━━━━━━━━━━

🔹 ۴. باز کردن لیست و دیکشنری هنگام فراخوانی

علامت‌های "*" و "**" هنگام فراخوانی تابع هم کاربرد دارن.
numbers = [10, 20, 30]
user = {"name": "Ali", "age": 21}
def add(a, b, c):
return a + b + c
def introduce(name, age):
print(f"{name} is {age} years old.")
print(add(*numbers))
introduce(**user)

خروجی:

60
Ali is 21 years old.

━━━━━━━━━━━━━━━━━━

🧠 تمرین‌های امروز

۱️⃣ تابعی بنویس که با "*args" هر تعداد عدد دریافت کنه و بزرگ‌ترین عدد رو برگردونه.

۲️⃣ تابعی بنویس که با "**kwargs" مشخصات یک کاربر رو دریافت و نمایش بده.


💬 پاسخ تمرین‌ها رو در کامنت‌ها بنویس!

━━━━━━━━━━━━━━━━━━


#آموزش_پایتون
#توابع_پایتون
#برنامه_نویسی
#کاما_کد
❤1
🐍 آموزش متغیرهای Local و Global


🔹 متغیر Local چیست؟

متغیری که داخل یک تابع تعریف می‌شه، معمولاً یک متغیر محلی یا "Local" محسوب می‌شه.
def show_message():
message = "Hello Python!"
print(message)
show_message()

خروجی:

Hello Python!

📌 متغیر "message" داخل تابع تعریف شده و خارج از اون مستقیماً قابل دسترسی نیست.

━━━━━━━━━━━━━━━━━━

🔹 متغیر Global چیست؟

متغیری که در سطح اصلی برنامه تعریف می‌شه، متغیر سراسری یا "Global" نام داره.
name = "Ali"
def greet():
print(f"Hello {name}!")
greet()
print(name)

خروجی:

Hello Ali!
Ali

✅ تابع می‌تونه مقدار متغیر سراسری رو بخونه؛ حتی اگر اون متغیر داخل تابع تعریف نشده باشه.

━━━━━━━━━━━━━━━━━━

🔹 تغییر متغیر Global داخل تابع

اگر بخوایم مقدار یک متغیر سراسری رو مستقیماً از داخل تابع تغییر بدیم، می‌تونیم از کلمهٔ کلیدی "global" استفاده کنیم.
counter = 0
def increase():
global counter
counter += 1
increase()
increase()
print(counter)

خروجی:

2

📌 دستور "global counter" مشخص می‌کنه که منظورمون متغیر سراسری "counter" هست، نه یک متغیر محلی جدید.

⚠️ استفادهٔ بیش‌ازحد از "global" می‌تونه مدیریت و عیب‌یابی برنامه رو سخت‌تر کنه؛


━━━━━━━━━━━━━━━━━━

🔹 یک نکتهٔ مهم دربارهٔ متغیرهای هم‌نام

اگر داخل تابع متغیری با نام یک متغیر سراسری تعریف کنیم، متغیر محلی می‌تونه آن متغیر سراسری رو تحت‌الشعاع قرار بده.
number = 100
def show_number():
number = 50
print(number)
show_number()
print(number)

خروجی:

50
100

💡 تغییر متغیر محلی "number" باعث تغییر متغیر سراسری هم‌نام اون نشد.

━━━━━━━━━━━━━━━━━━

🧠 تمرین‌

1️⃣ متغیری به نام "username" در سطح اصلی برنامه تعریف کن و مقدارش رو داخل یک تابع نمایش بده.

2️⃣ تابعی بنویس که یک متغیر محلی تعریف کنه و مقدارش رو با "return" برگردونه.

━━━━━━━━━━━━━━━━━━

#آموزش_پایتون
#برنامه_نویسی
#کاما_کد
🔥1
🐍 آموزش توابع Lambda

💡 توابعی در پایتون که در یک خط تعریف می‌شوند....
به این تابع‌ها Lambda می‌گیم

━━━━━━━━━━━━━━━━━━

🔹 ۱. تابع Lambda چیست؟

تابع Lambda یک تابع کوچک و بی‌نام است که با کلمه کلیدی "lambda" تعریف می‌شه.

ساختار کلی:

lambda arguments: expression

مثال:
square = lambda x: x ** 2
print(square(5))
print(square(8))

خروجی:

25
64

📌 این تابع یک عدد دریافت می‌کنه و مربع اون رو برمی‌گردونه.

━━━━━━━━━━━━━━━━━━

🔹 ۲. چند مثال کاربردی

✅ جمع دو عدد:
add = lambda a, b: a + b
print(add(10, 20))

خروجی:

30

✅ بررسی زوج بودن عدد:
is_even = lambda n: n % 2 == 0
print(is_even(8))
print(is_even(7))

خروجی:

True
False

✅ تبدیل دما از سانتی‌گراد به فارنهایت:
to_fahrenheit = lambda c: (c * 9 / 5) + 32
print(to_fahrenheit(25))

خروجی:

77.0

━━━━━━━━━━━━━━━━━━

🔹 ۳. تفاوت Lambda با تابع معمولی

یک تابع معمولی:

def multiply(a, b):
return a * b


همین تابع با Lambda:

multiply = lambda a, b: a * b

━━━━━━━━━━━━━━━━━━

🔹 ۴. استفاده از Lambda با "sorted()"

یکی از کاربردهای جالب Lambda، مرتب‌سازی داده‌ها بر اساس یک ویژگی خاصه.
students = [
("Ali", 18),
("Sara", 20),
("Reza", 15)
]
students.sort(key=lambda student: student[1])
print(students)

خروجی:

[('Reza', 15), ('Ali', 18), ('Sara', 20)]

📌 در این مثال، دانشجوها بر اساس نمره‌شون از کم به زیاد مرتب شدن.

عبارت "student[1]" به نمره هر دانشجو اشاره می‌کنه.

━━━━━━━━━━━━━━━━━━

🔹 ۵. استفاده از Lambda با "map()"

تابع "map()" یک تابع رو روی تک‌تک عناصر یک مجموعه اعمال می‌کنه.
numbers = [1, 2, 3, 4, 5]
result = list(map(lambda x: x * 2, numbers))
print(result)

خروجی:

[2, 4, 6, 8, 10]

📌 هر عدد در ۲ ضرب شده و نتیجه داخل یک لیست قرار گرفته.

━━━━━━━━━━━━━━━━━━

🧠 تمرین‌های امروز

1️⃣ با Lambda تابعی بساز که مکعب یک عدد رو محاسبه کنه.
2️⃣ تابعی بنویس که دو عدد دریافت کنه و عدد بزرگ‌تر رو برگردونه.


#آموزش_پایتون
#Python
#برنامه_نویسی
#کاما_کد
🐍 آموزش ماژول‌ها (Modules) در پایتون

🔹 ۱. ماژول چیست؟

ماژول در پایتون فایلی با پسوند .py هست که می‌تونه شامل تابع‌ها، متغیرها و کلاس‌ها باشه.

با استفاده از ماژول‌ها می‌تونیم کدهای خودمون رو به بخش‌های کوچک‌تر تقسیم کنیم و دوباره از اون‌ها استفاده کنیم

🔹 ۲. استفاده از ماژول‌های آماده

پایتون ماژول‌های مختلفی داره که بدون نیاز به نصب جداگانه می‌تونیم ازشون استفاده کنیم.

مثلاً ماژول math برای محاسبات ریاضی کاربرد داره.

import math
print(math.sqrt(25))
print(math.pi)
print(math.factorial(5))

خروجی:

5.0
3.141592653589793
120


━━━━━━━━━━━━━━━━━━

🔹 ۳. وارد کردن بخش مشخصی از ماژول

اگر فقط به یک تابع نیاز داشته باشیم، می‌تونیم مستقیماً اون رو وارد کنیم.

from math import sqrt
print(sqrt(49))

خروجی:

7.0

📌 در این روش دیگه نیازی نیست قبل از sqrt() بنویسیم math

━━━━━━━━━━━━━━━━━━

🔹 ۴. استفاده از نام مستعار

با کلمه کلیدی as می‌تونیم یک نام کوتاه‌تر برای ماژول انتخاب کنیم.

import math as m
print(m.sqrt(81))

خروجی:

9.0

━━━━━━━━━━━━━━━━━━

🔹 ۵. ساخت ماژول اختصاصی خودمون

فرض کن دو فایل پایتون داریم.

📁 فایل اول: calculator.py

def add(a, b):
return a + b
def multiply(a, b):
return a * b

📁 فایل دوم: main.py

import calculator
print(calculator.add(10, 5))
print(calculator.multiply(4, 3))

خروجی:

15
12

📌 برای اجرای این مثال، هر دو فایل رو داخل یک پوشه قرار بده و فایل main.py رو اجرا کن

━━━━━━━━━━━━━━━━━━

🔹 ۶. ماژول random

این ماژول برای تولید مقادیر تصادفی کاربرد داره.

import random
number = random.randint(1, 10)
print(number)

خروجی نمونه:

7

⚠️ عدد خروجی ممکنه هر بار متفاوت باشه؛ randint(1, 10) هر دو عدد ۱ و ۱۰ رو هم شامل می‌شه.

━━━━━━━━━━━━━━━━━━
تمرین‌

۱️⃣ با استفاده از ماژول math، جذر عدد ۱۴۴ رو محاسبه کن.

۲️⃣ با استفاده از ماژول random، یک عدد تصادفی بین ۱ تا ۱۰۰ تولید کن.

━━━━━━━━━━━━━━━━━

#آموزش_پایتون
#Python
#ماژول_پایتون
#برنامه_نویسی
#کاما_کد
❤2
سلام دوستان یه تعداد اکانت اوکی کردیم کسی اگر خواست بهم پیام بده
@ir_379
✏️RRT?
مخفف Rapidly-exploring Random Tree هستش به فارسی میشه "درختی که شاخه هاش تصادفی و تند رشد میکنن" .

درواقع یک الگوریتم برای مسیر یابی هستش ولی این الگوریتم زمانی استفاده میشه که روش های معمول کم بیارن .
مثلا یک بازوی رباتیک ۶ مفصل رو در نظر بگیرید (البته داخل ویدیو ۲ مفصل هستش) اگر این بازو بخواد با وجود موانع در یک نقطه خاص قرار بگیره باید زاویه هر ۶ مفصل درست باشه و این یعنی تعداد حالت های ممکن که باید تست بشن، یک دفعه میلیون ها برابر بزرگتر میشه .
اینجاست که RRT وارد عمل میشه .✅

🔰این الگوریتم بجای اینکه همه جا رو بگرده فقط همون جاهایی رو میگرده که احتمال داره راهی ازشون بیرون بیاد البته این باعث میشه بهترین مسیر لزوما انتخاب نشه ولی بلاخره راهی پیدا میشه.

🔬روش کارش چطوریه؟

از نقطه شروع یه درخت میسازه و هزاران بار یه تکرار ساده رو انجام میده :

یه نقطه تصادفی از فضای خالی برمیدار ، میگرده ببینه کدوم گره موجود درخت به اون نقطه نزدیک تره و از همون گره یه شاخه کوتاه و با اندازه مشخص به سمتش دراز میکنه ، اگر مسیر این شاخه به مانع نخورده باشه گره جدید رو به درخت اضافه میکنه و اگر به مانع خورده باشه همونجا ولش میکنه و از نقطه قبلی یه شاخه تازه امتحان میکنه. همین چرخه هزاران بار پشت سر هم و با شانس فضا رو پویا میکنه و درخت پیوسته از همه‌ی طرف ها پهن میشه .
✨البته یه ترفند کوچیک هم توی کارشه، حدود ۵ درصد مواقع به جای نقطه‌ی تصادفی مستقیم خود هدف رو نشونه میزنه تا الگوریتم توی مرحله آخر توی فضا سردرگم نمونه .
وقتی یکی از شاخه ها به اندازه کافی به هدف نزدیک شد مسیر رو از روی همون شاخه پیدا میکنه(از گره آخر شروع میکنه و مرحله به مرحله میره سراغ والدش تا به نقطه شروع برسه)

حالا ما مسیر رو داریم و اگر بخوایم بهینه ترش بکنیم از RRT* استفاده می‌کنیم تا اگر امکان کوتاه تر کردن مسیر وجود داشت این کار رو انجام بدیم

💠باید اضافه کنم این یکی از الگوریتم هایی هست که خودرو های خود ران یا بازو های هوشمند یا مسیر یاب ها و..‌‌. ازش استفاده میکنن تا بفهمن باید از کدوم میسر حرکت کنن.

@comma_code
@comma_code1

#کاما_کد #برنامه_نویسی #الگوریتم #مسیر_یابی
#comma_code #programming #algorithm #routing
❤1
جدیدا دوتا آسیب پذیری خیلی جدی در php کشف شده برید حتما بخونید و یه فکری راجب جاهایی که از php استفاده کردین بکنید .
#CVE-2026-109618
#CVE-2026-109619
🐍 آموزش مدیریت خطاها با try و except در پایتون

🔹 ۱. ساختار try و except

با استفاده از این دو دستور می‌تونیم خطاهای احتمالی رو مدیریت کنیم و اجازه ندیم برنامه به‌صورت ناگهانی متوقف بشه.
try:
number = int(input("Enter a number: "))
print(number)
except ValueError:
print("Please enter a valid number!")

📌 این کد چطور کار می‌کنه؟

- "try":
کدی که ممکنه خطا ایجاد کنه.
- "except":
کدی که هنگام رخ دادن خطای مشخص اجرا می‌شه.
- "ValueError":
خطایی که مثلاً هنگام تبدیل یک متن نامعتبر به عدد رخ می‌ده.

🔹 ۲. مدیریت تقسیم بر صفر
try:
a = int(input("Enter a: "))
b = int(input("Enter b: "))
print(a / b)
except ZeroDivisionError:
print("Cannot divide by zero!")

اگر کاربر برای "b" عدد صفر وارد کنه، به‌جای متوقف شدن برنامه، پیام مناسب نمایش داده می‌شه.

🔹 ۳. استفاده از چند except


می‌تونیم خطاهای مختلف رو جداگانه مدیریت کنیم:
try:
a = int(input("Enter a: "))
b = int(input("Enter b: "))
print(a / b)
except ValueError:
print("Invalid number!")
except ZeroDivisionError:
print("Division by zero!")

🔸 ۴. دستور finally

بخش "finally" چه خطایی رخ بده و چه رخ نده، پس از پایان اجرای ساختار "try" اجرا می‌شه؛ حتی اگر خطا مدیریت شده باشه.
try:
print(10 / 2)
except ZeroDivisionError:
print("Error!")
finally:
print("Program finished.")

📌 خروجی:

5.0
Program finished.

🎯 تمرین شما:

برنامه‌ای بنویسید که دو عدد از کاربر بگیره و حاصل تقسیم اون‌ها رو نمایش بده.
اگر کاربر متن وارد کرد، پیام مناسب نمایش داده بشه و اگر عدد دوم صفر بود، برنامه خطای تقسیم بر صفر رو مدیریت کنه.


جوابتون رو در کامنت‌ها بنویسید!

#Python
#برنامه_نویسی
#آموزش_پایتون
#کاما_کد
❤1
🐍 آموزش کار با فایل‌ها (File Handling) در پایتون !

📌 ۱. باز کردن فایل با open()

برای کار با فایل‌ها از تابع "open()" استفاده می‌کنیم.

file = open("data.txt", "r")

در این مثال، فایل "data.txt" برای خواندن باز می‌شه.

🔹 ۲. حالت‌های مختلف باز کردن فایل

- "r" :
خواندن اطلاعات فایل
- "w" :
نوشتن در فایل؛ محتوای قبلی رو پاک می‌کنه.
- "a" :
اضافه کردن اطلاعات به انتهای فایل
- "x" :
ساخت فایل جدید؛ اگر فایل از قبل وجود داشته باشه، خطا می‌ده.

🔹 ۳. خواندن محتوای فایل با read()


with open("data.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)

متد "read()"
تمام محتوای فایل رو می‌خونه و نمایش می‌ده.

استفاده از "with"
باعث می‌شه فایل بعد از پایان بلوک به‌صورت خودکار بسته بشه.

🔹 ۴. نوشتن در فایل با write()

with open("data.txt", "w", encoding="utf-8") as file:
file.write("Hello Python!")

این کد عبارت "Hello Python!" رو داخل فایل می‌نویسه..

🔹 ۵. اضافه کردن متن به فایل

with open("data.txt", "a", encoding="utf-8") as file:
file.write("\nLearning Python")

در این حالت، متن جدید به انتهای فایل اضافه می‌شه و محتوای قبلی باقی می‌مونه.

🎯 تمرین امروز:


برنامه‌ای بنویسید که:

۱. نام کاربر رو دریافت کنه.

۲. نام رو داخل فایلی به نام "users.txt" ذخیره کنه.

۳. در اجرای بعدی، نام‌های جدید رو بدون پاک شدن نام‌های قبلی به فایل اضافه کنه.

۴. در پایان، تمام نام‌های ذخیره‌شده رو بخونه و نمایش بده.

#Python
#آموزش_پایتون
#برنامه_نویسی
#فایل_ها
#کاما_کد
❤2
Forwarded from جادی | Jadi
به عیعای گفتم فلان فیچر ساده رو ایمپلمنت کن. کرد و گفتم تست کردی؟ گفت آره. تنبلی کردم گفتم بهش اعتماد کنم و بدون تست پوش کردم. بعد دیدم یکسری ارور می ده رو سرور. به عیعای می گم من این ارورها رو می بینم! مگه نگفتی تست کردی؟ چی جواب بده خوبه؟ گفت: آره اتفاقا منم که تست کردم همین ارورها رو می داد (:

#واقعی
😁1
🐍 آموزش لیست‌سازی حرفه‌ای در پایتون

این قابلیت کاربردی پایتون، List Comprehension نام دارد....

━━━━━━━━━━━━━━━━━━

🔹 ۱. روش معمول ساخت لیست

فرض کن می‌خوای مربع اعداد ۱ تا ۵ رو داخل یک لیست ذخیره کنی.

روش معمول:
squares = []
for number in range(1, 6):
squares.append(number ** 2)
print(squares)

خروجی:

[1, 4, 9, 16, 25]

🔹 ۲. همین کار با List Comprehension
squares = [number ** 2 for number in range(1, 6)]
print(squares)

خروجی دقیقاً یکسانه ما کد کوتاه‌تر شده.

ساختار کلی:

[expression for item in iterable]


━━━━━━━━━━━━━━━━━━

🔹 ۳. استفاده از شرط "if"

فرض کن فقط اعداد زوج یک لیست رو می‌خوایم.
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = [
number for number in numbers
if number % 2 == 0
]
print(even_numbers)

خروجی:

[2, 4, 6, 8]

📌 شرط "if" تعیین می‌کنه کدوم عناصر وارد لیست جدید بشن.

━━━━━━━━━━━━━━━━━━

🔹 ۴. تغییر مقدار عناصر با شرط

می‌تونیم علاوه بر فیلتر کردن، مقدار عناصر رو هم تغییر بدیم.

مثلاً اگر عدد زوج بود، اون رو در ۲ ضرب کنیم و اگر فرد بود، همون عدد رو نگه داریم.
numbers = [1, 2, 3, 4, 5, 6]
result = [
number * 2 if number % 2 == 0 else number
for number in numbers
]
print(result)

خروجی:

[1, 4, 3, 8, 5, 12]

━━━━━━━━━━━━━━━━━━

🔹 ۵. کار با رشته‌ها


با List Comprehension می‌تونیم روی رشته‌ها هم کار کنیم.
words = ["python", "java", "javascript", "go"]
long_words = [
word for word in words
if len(word) > 4
]
print(long_words)

خروجی:

['python', 'javascript']

━━━━━━━━━━━━━━━━━━

🔹 ۶. ساخت لیست تو در تو

حتی می‌تونیم از حلقه‌های تو در تو استفاده کنیم.
pairs = [
(x, y)
for x in [1, 2]
for y in [3, 4]
]
print(pairs)

خروجی:

[(1, 3), (1, 4), (2, 3), (2, 4)]

━━━━━━━━━━━━━━━━━━

🧠 تمرین‌های امروز

۱️⃣ با List Comprehension، لیستی از مربع اعداد ۱ تا ۱۰ بساز.

۲️⃣ از لیست زیر فقط اعداد بزرگ‌تر از ۱۰ رو انتخاب کن:

numbers = [4, 12, 7, 18, 3, 25, 10]

۳️⃣ تمام کلمات یک لیست رو به حروف بزرگ تبدیل کن.

━━━━━━━━━━━━━━━━━

#آموزش_پایتون
#Python
#برنامه_نویسی

#کاما_کد
❤2