اینجا Teachify است! یک کانال تلگرام برای علاقهمندان به برنامهنویسی و یادگیری فناوری اطلاعات. اگر شما هم میخواهید در دنیای فناوری پا به پا باشید و به یادگیری زبانهای برنامهنویسی مختلف بپردازید، این کانال برای شماست. از اموزشهای تخصصی در زمینه برنامهنویسی تا مقالات جدید و روز، Teachify همراه شما خواهد بود. تیم Teachify تلاش میکند تا با ارائه مطالب مفید و جذاب، شما را در مسیر موفقیت و پیشرفت حرکت کند. ما به شعار "باشه فردا" واقعیت میبخشیم و شما را به تغییرات مثبت و آیندهی روشن هدایت میکنیم. تیم Teachify همیشه در کنار شماست و آماده پاسخگویی به سوالات شماست. برای اطلاعات بیشتر و عضویت در کانال، به لینک زیر مراجعه کنید: https://coffeete.ir/teachify
15 Feb, 19:01
15 Feb, 18:34
14 Feb, 07:15
13 Feb, 13:33
12 Feb, 20:12
12 Feb, 16:31
10 Feb, 05:50
sudo apt install tldr
sudo pacman -S tldr
brew install tldr
scoop install tldr
tldr tar
06 Feb, 14:09
01 Feb, 17:35
28 Jan, 15:40
from functools import lru_cache
@lru_cache(maxsize=100)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(30))
27 Jan, 18:33
24 Jan, 18:34
22 Jan, 17:57
16 Jan, 17:24
16 Jan, 10:03
15 Jan, 04:29
14 Jan, 11:49
pyproject.toml
) poetry new my_project
poetry add requests
poetry shell
poetry run python script.py
poetry build
poetry publish
13 Jan, 22:08
13 Jan, 04:31
08 Jan, 19:35
07 Jan, 19:02
05 Jan, 07:30
04 Jan, 04:31
02 Jan, 08:03
31 Dec, 20:35
30 Dec, 16:03
28 Dec, 04:30
pip install vulture
vulture your_project/
27 Dec, 13:06
26 Dec, 14:47
26 Dec, 06:51
26 Dec, 04:29
24 Dec, 21:18
23 Dec, 14:42
23 Dec, 10:31
23 Dec, 10:04
22 Dec, 15:08
input_list = [2, 5, 1, 2, 3, 5, 1, 2, 4]
output: 2
input_list = [2, 1, 1, 2, 3, 5, 1, 2, 4]
output: 1
input_list = [2, 3, 4, 5]
output: None
20 Dec, 09:15
import datetime
def is_yalda():
today = datetime.datetime.now().date() # Today's date
# Possible dates for the last day of autumn (21st or 22nd December)
last_days_of_autumn = [datetime.date(today.year, 12, 21), datetime.date(today.year, 12, 22)]
for last_day_of_autumn in last_days_of_autumn:
# Finding the last Friday of autumn
days_to_friday = (last_day_of_autumn.weekday() - 4) % 7
last_friday_of_autumn = last_day_of_autumn - datetime.timedelta(days=days_to_friday)
# Checking if today is the last Friday of autumn
if today == last_friday_of_autumn:
return True
return False
def display_message():
if is_yalda():
return "🎉 Hello dear programmer! May your Yalda be as bug-free as your clean code and as sweet as pomegranate! 🍉\n" \
"It's Yalda, so spend time with your family like loops in harmony and have fun! ❤️"
else:
return "It's not Yalda, but always stay happy and code with a warm heart! 😉"
print(display_message())
20 Dec, 07:30
__dict__
دارد که تمام ویژگیهای آن آبجکت را به صورت دیکشنری ذخیره میکند.class User:
def __init__(self, name, age):
self.name = name
self.age = age
self.skills = ["Python", "Django"]
user = User("Yousef", 27)
print(user.__dict__)
{'name': 'Yousef', 'age': 27, 'skills': ['Python', 'Django']}
20 Dec, 04:30
import pprint
data = {
"name": "Yousef",
"age": 27,
"skills": ["Python", "Django", "Git"],
"projects": [
{"name": "Website", "status": "Completed"},
{"name": "Telegram Bot", "status": "In Progress"},
],
}
pprint.pprint(data)
{'age': 27,
'name': 'Yousef',
'projects': [{'name': 'Website', 'status': 'Completed'},
{'name': 'Telegram Bot', 'status': 'In Progress'}],
'skills': ['Python', 'Django', 'Git']}
print
خسته شدهاید، حتماً از این ابزار استفاده کنید! 19 Dec, 14:06
19 Dec, 07:32
17 Dec, 19:46
import time
def timer(func):
def wrapper(*args, **kwargs):
# Record the start time
start_time = time.time()
# Execute the original function
result = func(*args, **kwargs)
# Record the end time
end_time = time.time()
# Print the execution time
print(f"Execution time: {end_time - start_time:.2f} seconds")
return result
return wrapper
@timer
def slow_function():
# Simulate a slow function with sleep
time.sleep(2)
print("Function executed!")
slow_function()
Function executed!
Execution time: 2.00 seconds
17 Dec, 15:02
16 Dec, 16:08
reversed_string = string[::-1]
is_even = lambda x: x % 2 == 0
intersection = list(set(list1) & set(list2))
transpose = list(zip(*matrix))
most_common = max(set(list1), key=list1.count)
merged_dict = {**dict1, **dict2}
is_palindrome = lambda s: s == s[::-1]
sorted_tuples = sorted(tuples, key=lambda x: x[1])
joined_string = ','.join(map(str, my_list))
count_char = string.count('a')
unique_items = list(dict.fromkeys(my_list))
range_list = list(range(10, 51, 5))
reversed_list = my_list[::-1]
lower_case = string.lower()
contains = 'abc' in string
squares = [x**2 for x in range(10)]
trimmed_string = string.strip()
length = len(my_list)
upper_case = string.upper()
minimum = min(my_list)
maximum = max(my_list)
total = sum(my_list)
07 Dec, 15:31
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM myapp_product WHERE price > %s", [100])
results = cursor.fetchall()
for row in results:
print(row)
%s
) بهجای ترکیب مستقیم مقادیر در کوئری استفاده کنید تا از حملات SQL Injection جلوگیری شود.price = input("Enter a price: ")
query = f"SELECT * FROM products WHERE price > {price}"
cursor.execute(query)
0; DROP TABLE products; --
SELECT * FROM products WHERE price > 0; DROP TABLE products; --
07 Dec, 09:58
03 Dec, 18:50
with open("example.txt", "r") as file:
data = file.read()
# The file is automatically closed here.
from contextlib import contextmanager
@contextmanager
def my_context():
print("🔹 Start...")
yield "Some data"
print("🔸 End...")
with my_context() as data:
print(data)
03 Dec, 07:59
02 Dec, 12:04
01 Dec, 20:54
0b
یا 0B
0b11111111
معادل 255 در دهدهی است.0o
یا 0O
0o377
معادل 255 در دهدهی است.0x
یا 0X
0xff
معادل 255 در دهدهی است.x = 255
print(bin(x)) # '0b11111111'
print(oct(x)) # '0o377'
print(hex(x)) # '0xff'
01 Dec, 16:54
30 Nov, 14:31
:=
) معرفی شد که هدف آن سادهتر کردن کدنویسی در شرایط خاص است. این اپراتور به شما اجازه میدهد همزمان یک مقدار را به یک متغیر اختصاص دهید و از آن استفاده کنید. words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if len(word) > 3:
print(word)
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if (length := len(word)) > 3:
print(f"{word} (length: {length})")
length
) محاسبه شده و همزمان در شرط و چاپ استفاده میشود، بدون نیاز به محاسبه مجدد.while (user_input := input("Enter something: ")) != "exit":
print(f"You entered: {user_input}")
with open("data.txt") as file:
while (line := file.readline().strip()):
print(line)
30 Nov, 07:36
29 Nov, 09:57
switch-case
در زبانهای دیگه عمل میکنه، اما با قدرتی فراتر برای مدیریت الگوهای پیچیده.def process_data(data):
match data:
case {"action": "create", "id": id, "content": content}:
print(f"Creating a new item with ID: {id} and content: {content}")
case {"action": "delete", "id": id}:
print(f"Deleting the item with ID: {id}")
case {"action": "update", "id": id, "content": content}:
print(f"Updating the item {id} with content: {content}")
case _:
print("Invalid data")
# Test the function
process_data({"action": "create", "id": 1, "content": "Hello"})
process_data({"action": "delete", "id": 2})
process_data({"action": "update", "id": 3, "content": "Updated content"})
if-else
های تو در تو28 Nov, 10:59
28 Nov, 09:26
28 Nov, 09:02
ManyToManyField
استفاده کنید، جنگو خودش یک جدول واسط (Intermediate Table) برای مدیریت رابطه بین دو مدل ایجاد میکند که در تصویر مدل BookAuthor میباشد.author = Author.objects.create(name="John Doe")
book = Book.objects.create(title="Python for Beginners")
BookAuthor.objects.create(book=book, author=author, publication_date="2024-01-01")
relations = BookAuthor.objects.all()
for relation in relations:
print(f"{relation.author.name} wrote '{relation.book.title}' on {relation.publication_date}")
28 Nov, 04:29
27 Nov, 16:59
import copy
original_list = [1, 2, [3, 4]]
shallow_copy = copy.copy(original_list)
# تغییر در لیست اصلی
original_list[0] = 100
print("Original:", original_list) # [100, 2, [3, 4]]
print("Shallow Copy:", shallow_copy) # [1, 2, [3, 4]]
# تغییر در یک عنصر تو در تو
original_list[2][0] = 300
print("Original:", original_list) # [100, 2, [300, 4]]
print("Shallow Copy:", shallow_copy) # [1, 2, [300, 4]]
deep_copy = copy.deepcopy(original_list)
# تغییر در عنصر تو در تو
original_list[2][0] = 500
print("Original:", original_list) # [100, 2, [500, 4]]
print("Deep Copy:", deep_copy) # [1, 2, [300, 4]]
27 Nov, 08:00
26 Nov, 13:00
my_list = [1, 2, 3, 3, 4]
my_list.append(5) # اضافه کردن عنصر
my_list[0] = 10 # تغییر مقدار
print(my_list) # خروجی: [10, 2, 3, 3, 4, 5]
my_tuple = (1, 2, 3, 3, 4)
# my_tuple[0] = 10 # خطا: تغییرناپذیری
print(my_tuple[1]) # دسترسی به عنصر دوم: 2
my_set = {1, 2, 3, 3, 4}
my_set.add(5) # اضافه کردن عنصر
print(my_set) # خروجی: {1, 2, 3, 4, 5} (بدون تکرار و ترتیب مشخص)
26 Nov, 12:22
26 Nov, 07:37
25 Nov, 22:28
24 Nov, 12:03
24 Nov, 11:56
23 Nov, 16:26
17 Nov, 16:10
13 Nov, 08:29
13 Nov, 01:02
12 Nov, 18:53
12 Nov, 14:47
12 Nov, 06:30
09 Nov, 15:04
__getitem__
و __setitem__
یک شیء رو مثل لیستها و دیکشنریها مدیریت کنید! این متدها امکان دسترسی و تغییر عناصر با اندیسگذاری رو فراهم میکنند.class CustomList:
def __init__(self, data):
self.data = data
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
clist = CustomList([10, 20, 30])
print(clist[1]) # دسترسی به اندیس 1
clist[1] = 50 # تغییر اندیس 1 به 50
09 Nov, 04:29
__call__
در پایتون به شما اجازه میدهد تا یک شیء از کلاس خود را مثل یک تابع فراخوانی کنید. این کار میتواند در سناریوهایی که نیاز به پردازش پیچیده دارید، بسیار مفید باشد.Multiplier
ایجاد کنیم که هر بار شیء آن مثل تابع فراخوانی میشود، ورودیها را با یک مقدار خاصی که در ابتدا تنظیم شده، ضرب کند.class Multiplier:
def __init__(self, factor):
self.factor = factor
def __call__(self, value):
return value * self.factor
# استفاده از کلاس
double = Multiplier(2)
triple = Multiplier(3)
print(double(5)) # خروجی: 10
print(triple(5)) # خروجی: 15
Multiplier
به عنوان یک تابع استفاده کرد و در عین حال از ویژگیهای شیءگرایی بهره برد.08 Nov, 08:00
import requests
response = requests.get('https://api.example.com/data')
if response.status_code == 200:
data = response.json()
print(data)
else:
print("درخواست با شکست مواجه شد!")
08 Nov, 07:30
06 Nov, 18:22
text = " Hello, World! "
cleaned_text = text.strip()
print(cleaned_text) # Output: "Hello, World!"
text = " Learn Python with teachify "
print(text.lstrip()) # Output: "Learn Python with teachify "
print(text.rstrip()) # Output: " Learn Python with teachify"
06 Nov, 12:26
04 Nov, 07:52
04 Nov, 04:29
03 Nov, 21:41
03 Nov, 20:59
03 Nov, 10:53
03 Nov, 04:29
02 Nov, 14:00
02 Nov, 11:30
01 Nov, 11:46
31 Oct, 21:02
31 Oct, 10:22
31 Oct, 04:30
r
آغاز میشوند. این حرف به ما میگوید که این رشته یک رشتهٔ خام (raw string) است. \n
(برای newline) یا \t
(برای tab) به عنوان کاراکترهای خاص شناخته میشوند. اما در رشتههای خام، این کاراکترها به صورت واقعی خودشان در نظر گرفته میشوند.normal_string = "Hello,\nWorld!"
print(normal_string)
Hello,
World!
raw_string = r"Hello,\nWorld!"
print(raw_string)
Hello,\nWorld!
path = r"C:\Users\YourName\Documents\File.txt"
regex = r"\d{3}-\d{2}-\d{4}"
30 Oct, 19:44
_
استفاده کنیم. این رویکرد کد شما را خواناتر و حرفهایتر میکند!numbers = [10, 20, 30]
for _, number in enumerate(numbers):
print(number)
_
بهجای index
استفاده میکنیم چون نیازی به استفاده از آن نداریم._
برای نادیدهگرفتن آنها بهره بگیریم:def get_user_data():
return "yousef", "Vafaei", 28
first_name, _, age = get_user_data()
print(first_name, age)
_
جایگزین متغیری شده که به مقدار نام خانوادگی نیازی نداریم.30 Oct, 16:59
29 Oct, 21:49
29 Oct, 18:29
29 Oct, 13:54
28 Oct, 07:54
28 Oct, 04:29
27 Oct, 21:24
\
) برای جلوگیری از تفسیر خاص یک کوتیشن درون یک رشته استفاده کردهایم. اسکیپ کردن به این دلیل انجام میشود که در پایتون کوتیشنها برای تعریف رشتهها استفاده میشوند و اگر داخل رشتهای به آنها نیاز داشته باشیم، باید به پایتون بفهمانیم که این کوتیشن، پایاندهنده رشته نیست، بلکه بخشی از متن است.text = "He said, \"Hello!\""
\
) قبل از کوتیشنهای داخل متن استفاده کردیم. با این کار، پایتون متوجه میشود که کوتیشنها بخشی از متن هستند و رشته تمام نشده است. در این حالت، نتیجه به شکل زیر خواهد بود:He said, "Hello!"
\'
برای کوتیشن تکی\"
برای کوتیشن دوتایی\\
برای خود بکاسلش27 Oct, 16:07
27 Oct, 05:48
26 Oct, 21:48
25 Oct, 18:52
25 Oct, 14:29
25 Oct, 10:46
24 Oct, 04:29
23 Oct, 20:12
21 Oct, 07:40
18 Oct, 10:49
18 Oct, 09:40
16 Oct, 21:13
bulk_create
میتواند به شما کمک کند. این متد به شما اجازه میدهد تا چندین شیء را تنها با یک کوئری به پایگاه داده اضافه کنید، که این باعث افزایش سرعت و بهینهسازی عملکرد برنامه شما میشود.Student
داریم:from django.db import models
class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField()
bulk_create
اضافه کنیم:from .models import Student
# لیستی از اشیاء Student
students = [
Student(first_name="Ali", last_name="Ahmadi", age=12),
Student(first_name="Sara", last_name="Hosseini", age=11),
Student(first_name="Reza", last_name="Moradi", age=13),
]
# ایجاد تمام اشیاء با یک کوئری
Student.objects.bulk_create(students)
15 Oct, 20:54
12 Oct, 07:59
07 Oct, 13:40
07 Oct, 09:27
06 Oct, 16:03
05 Oct, 17:04
03 Oct, 21:37
03 Oct, 09:44
02 Oct, 07:42
01 Oct, 20:41
26 Sep, 20:56
26 Sep, 06:29
25 Sep, 12:53
23 Sep, 15:01
23 Sep, 13:47