@Academy_Raha
آموزش پایتون با رها یک کانال تلگرامی است که به تدریس و آموزش زبان برنامه نویسی پایتون میپردازد. اگر به دنبال یادگیری یکی از زبانهای برنامه نویسی محبوب و کارآمد هستید، این کانال مناسب شماست. در اینجا به صورت جامع و ساده نحوه نوشتن کدها، توسعه نرم افزارها و حل مسائل با استفاده از پایتون آموزش داده میشود. کانال @academy_raha توسط متخصصان مجرب تشکیل شده است که دارای تجربه و دانش کافی در زمینه این زبان برنامه نویسی هستند. آموزشهای ارائه شده در این کانال به دانشجویان، دانش آموزان، و هر کسی که علاقهمند به یادگیری پایتون است، مناسب است. اگر به دنبال یادگیری یک زبان برنامه نویسی مفید و کاربردی هستید، حتما این کانال را دنبال کنید و از آموزشهای با کیفیت آن بهرهمند شوید.
10 Nov, 11:51
05 Oct, 14:09
05 Oct, 13:59
02 Oct, 08:37
01 Oct, 12:02
01 Oct, 11:53
18 Sep, 17:31
Thread
از ماژول threading
:import threading
def my_function():
print("Hello from thread")
thread = threading.Thread(target=my_function)
thread.start()
threading
:lock = threading.Lock()
with lock:
# critical section
Lock
و RLock
چیست؟RLock
(Reentrant Lock) اجازه میدهد که یک ترد چندین بار قفل را بگیرد، در حالی که Lock
این امکان را نمیدهد.open
:file = open('example.txt', 'r')
read
:content = file.read()
write
:file = open('example.txt', 'w')
file.write('Hello, World!')
readlines
:lines = file.readlines()
'rb'
در تابع open
:file = open('example.bin', 'rb')
with
:with open('example.txt', 'r') as file:
content = file.read()
os.path.exists
:import os
exists = os.path.exists('example.txt')
os.remove
:os.remove('example.txt')
os.path.getsize
:size = os.path.getsize('example.txt')
os.rename
:os.rename('old_name.txt', 'new_name.txt')
shutil.copy
:import shutil
shutil.copy('source.txt', 'destination.txt')
aiofiles
:import aiofiles
async with aiofiles.open('example.txt', mode='r') as file:
content = await file.read()
csv
:import csv
with open('example.csv', mode='r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
json
:import json
with open('example.json', mode='r') as file:
data = json.load(file)
xml.etree.ElementTree
:import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
15 Sep, 08:43
01 Sep, 11:33
def longest_zero_sum_sublist(nums):
prefix_sum = 0
max_length = 0
start_index = -1
sum_indices = {0: -1} # دیکشنری برای ذخیره مجموعهای پیشوندی
for i, num in enumerate(nums):
prefix_sum += num
if prefix_sum in sum_indices:
length = i - sum_indices[prefix_sum]
if length > max_length:
max_length = length
start_index = sum_indices[prefix_sum] + 1
else:
sum_indices[prefix_sum] = i
if max_length == 0:
return []
return nums[start_index:start_index + max_length]
👌🏻مثال:
nums = [1, 2, -3, 3, 1, -4, 2, 2, -2]
print(longest_zero_sum_sublist(nums)) # خروجی: [3, 1, -4]
prefix_sum
برای ذخیره مجموع عناصر از ابتدای لیست تا نقطه فعلی استفاده میشود.sum_indices
: این دیکشنری مجموعهای پیشوندی را به اندیسهای مربوطه نگاشت میکند. اگر مجموع پیشوندی تکراری پیدا شود، به این معنی است که زیرلیستی با مجموع صفر بین دو نقطه وجود دارد.14 Aug, 12:59
Animal
تعریف کنید که دارای متد speak
باشد. سپس کلاسی به نام Dog
ایجاد کنید که از Animal
ارثبری کند و متد speak
را بازنویسی کند.class Animal:
def speak(self):
return "Animal sound"
class Dog(Animal):
def speak(self):
return "Bark"
# مثال
dog = Dog()
print(dog.speak()) # خروجی: Bark
Person
تعریف کنید که دارای ویژگیهای name
و age
باشد. سپس کلاسی به نام Student
ایجاد کنید که از Person
ارثبری کند و ویژگی student_id
را اضافه کند.class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Student(Person):
def __init__(self, name, age, student_id):
super().__init__(name, age)
self.student_id = student_id
# مثال
student = Student("Ali", 20, "S12345")
print(student.name, student.age, student.student_id) # خروجی: Ali 20 S12345
Shape
تعریف کنید که دارای متد area
باشد. سپس کلاسی به نام Rectangle
ایجاد کنید که از Shape
ارثبری کند و متد area
را بازنویسی کند.class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
# مثال
rect = Rectangle(4, 5)
print(rect.area()) # خروجی: 20
Vehicle
تعریف کنید که دارای ویژگی speed
باشد. سپس کلاسی به نام Car
ایجاد کنید که از Vehicle
ارثبری کند و ویژگی brand
را اضافه کند.class Vehicle:
def __init__(self, speed):
self.speed = speed
class Car(Vehicle):
def __init__(self, speed, brand):
super().__init__(speed)
self.brand = brand
# مثال
car = Car(120, "Toyota")
print(car.speed, car.brand) # خروجی: 120 Toyota
Employee
تعریف کنید که دارای ویژگیهای name
و salary
باشد. سپس کلاسی به نام Manager
ایجاد کنید که از Employee
ارثبری کند و ویژگی department
را اضافه کند.class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
class Manager(Employee):
def __init__(self, name, salary, department):
super().__init__(name, salary)
self.department = department
# مثال
manager = Manager("Sara", 5000, "HR")
print(manager.name, manager.salary, manager.department) # خروجی: Sara 5000 HR
BankAccount
تعریف کنید که دارای متدهای deposit
و withdraw
باشد. سپس کلاسی به نام SavingsAccount
ایجاد کنید که از BankAccount
ارثبری کند و متد withdraw
را بازنویسی کند تا اطمینان حاصل شود که موجودی حساب منفی نمیشود.class BankAccount:
def __init__(self, balance=0):
self.balance = balance
def deposit(self, amount):
self.balance += amount
def withdraw(self, amount):
self.balance -= amount
class SavingsAccount(BankAccount):
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
else:
print("Insufficient funds")
# مثال
account = SavingsAccount(100)
account.withdraw(50)
print(account.balance) # خروجی: 50
account.withdraw(60) # خروجی: Insufficient funds
10 Aug, 18:12
def sort_ascending(lst):
return sorted(lst)
10 Aug, 18:12
def reverse_string(s):
return s[::-1]
def count_words(s):
return len(s.split())
def int_to_binary(n):
return bin(n)[2:]
def sum_list(lst):
return sum(lst)
def max_in_list(lst):
return max(lst)
def spiral_order(matrix):
result = []
while matrix:
result += matrix.pop(0)
if matrix and matrix[0]:
for row in matrix:
result.append(row.pop())
if matrix:
result += matrix.pop()[::-1]
if matrix and matrix[0]:
for row in matrix[::-1]:
result.append(row.pop(0))
return result
def merge_sorted_lists(lst1, lst2):
return sorted(lst1 + lst2)
def is_palindrome(s):
return s == s[::-1]
def sum_of_digits(n):
return sum(int(digit) for digit in str(n))
def unique_elements(lst):
return list(set(lst))
def count_vowels(s):
vowels = 'aeiouAEIOU'
return sum(1 for char in s if char in vowels)
def even_numbers(lst):
return [num for num in lst if num % 2 == 0]
def count_uppercase(s):
return sum(1 for char in s if char.isupper())
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**2) + 1):
if n % i == 0:
return False
return True
def prime_numbers(lst):
return [num for num in lst if is_prime(num)]
def unique_words_count(s):
words = s.split()
return len(set(words))
def sort_descending(lst):
return sorted(lst, reverse=True)
def count_lowercase(s):
return sum(1 for char in s if char.islower())
def odd_numbers(lst):
return [num for num in lst if num % 2 != 0]
def count_alphabets(s):
return sum(1 for char in s if char.isalpha())
08 Aug, 09:46
def calculate_average(numbers):
return sum(numbers) / len(numbers)
def count_words(s):
return len(s.split())
def sum_of_digits(n):
return sum(int(digit) for digit in str(n))
def reverse_list(numbers):
return numbers[::-1]
def swap_case(s):
return s.swapcase()
def reverse_list_recursive(numbers):
if len(numbers) == 0:
return []
return [numbers[-1]] + reverse_list_recursive(numbers[:-1])
from itertools import permutations
def all_string_combinations(s):
return [''.join(p) for p in permutations(s)]
def second_largest(numbers):
unique_numbers = list(set(numbers))
unique_numbers.sort()
return unique_numbers[-2]
def is_perfect_number(n):
return n == sum(i for i in range(1, n) if n % i == 0)
def max_subarray_product(numbers):
max_product = float('-inf')
current_product = 1
for num in numbers:
current_product *= num
max_product = max(max_product, current_product)
if current_product == 0:
current_product = 1
return max_product
07 May, 13:24
23 Apr, 16:48
21 Apr, 10:46
21 Apr, 10:44
20 Apr, 14:21