آموزش پایتون
87 subscribers
282 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
آموزش پایتون
try and except (2).rar
در این فایل دستور try و except توضیح داده شده.
اگر نیازی به مرور داشتید میتونید ازش استفاده کنید.
🔆دستور dir
دستور dir() در پایتون یک تابع داخلی است که به اطلاعات مربوط به ویژگی‌ها و متدهای موجود برای یک شی (object) خاص را نمایش می‌دهد. این دستور می‌تواند برای بررسی اشیاء مختلف، از جمله ماژول‌ها، کلاس‌ها و نمونه‌ها استفاده شود.

🔅نحوه استفاده از dir()

استفاده از dir() به شکل زیر است:

dir(object)



مثال‌ها

1. استفاده از dir() برای یک ماژول

import math

# نمایش ویژگی‌ها و متدهای ماژول math
print(dir(math))

2. استفاده از dir() برای یک کلاس

class MyClass:
def __init__(self):
self.attribute = "Hello"

def my_method(self):
return "Method called!"

# ایجاد یک نمونه از کلاس
obj = MyClass()

# نمایش ویژگی‌ها و متدهای نمونه کلاس
print(dir(obj))

3. استفاده از dir() بدون آرگومان
اگر آرگومانی به آن داده نشود، dir() تمام نام‌های موجود در فضای نام فعلی (current namespace) را برمی‌گرداند.
# نمایش نام‌های موجود در فضای نام فعلی
print(dir())


🔅خروجی تابع dir() شامل لیستی از نام‌ها خواهد بود که معمولاً شامل:
- ویژگی‌ها (Attributes)
- متدها (Methods)
- نام کلاس‌ها (Class names)
- و همچنین متدهای خاص (مانند متدهای شروع با دو خط تیره __)

🧩خلاصه
تابع dir() یک ابزار مفید برای بررسی و شناخت اشیاء و ماژول‌های موجود در پایتون است. به شما کمک می‌کند تا بفهمید چه ویژگی‌ها و متدهایی برای یک شی خاص در دسترس است و می‌تواند به درک بهتر کد و ایجاد عمیق‌تر ارتباط با APIها کمک کند.


#dir
dir(int)

👇output:

['abs', 'add', 'and', 'bool', 'ceil', 'class', 'delattr', 'dir', 'divmod', 'doc', 'eq', 'float', 'floor', 'floordiv', 'format', 'ge', 'getattribute', 'getnewargs', 'gt', 'hash', 'index', 'init', 'init_subclass', 'int', 'invert', 'le', 'lshift', 'lt', 'mod', 'mul', 'ne', 'neg', 'new', 'or', 'pos', 'pow', 'radd', 'rand', 'rdivmod', 'reduce', 'reduce_ex', 'repr', 'rfloordiv', 'rlshift', 'rmod', 'rmul', 'ror', 'round', 'rpow', 'rrshift', 'rshift', 'rsub', 'rtruediv', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'truediv', 'trunc', 'xor', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']


#integer_function | #dir
Integer Functions

Here’s a summary of the key functions specifically related to integers, as well as some additional mathematical and numerical functions that may be useful:

در اینجا خلاصه ای از توابع کلیدی مربوط به اعداد صحیح و همچنین برخی از توابع ریاضی و عددی اضافی که ممکن است مفید باشند آورده شده است:

🔐Key Integer Functions ( توابع کلیدی عدد صحیح)


1. Conversion Functions ( توابع تبدیل)
- int()
- float()
- str()
- bin()
- oct()
- hex()
- from_bytes()
- to_bytes()

2. Mathematical Functions ( توابع ریاضی)
- abs()
- pow()
- round()
- max()
- min()
- sum()
- divmod()
- len() (for lists, strings, etc., but can be used with collections of integers)

3. Boolean and Logical Operations (عملیات بولی و منطقی)
- all()
- any()
- isinstance()

4. Iterators and Functional Programming (تکرار کننده ها و برنامه نویسی تابعی)
- filter()
- map()

5. Character Functions (توابع کاراکتری)
- chr()
- ord()

#integer_function | #dir
School='School ' *3
print(School.replace('School', 'Python'))
Anonymous Quiz
57%
Python Python Python
0%
School
43%
School Python Python
0%
Python
0%
Error
💅رشته(string)ای که می‌خواهی را جایگزین کن!

کار با رشته ها در پایتون بسیار راحت است، زیرا روش های داخلی زیادی برای آنها وجود دارد. یکی از روش ها() str.replace است که به شما امکان می دهد قسمت هایی از رشته ها را جایگزین کنید.
Str.replace(Argument1, Argument2, Argument3) 

آرگومان اول رشته ای است که می‌خواهید آن را تغییر دهید و آرگومان دوم چیزی است که می‌خواهید جایگزین شود.

همچنین یک آرگومان سوم(اختیاری) وجود دارد که تعیین می کند چند بار می خواهید زیررشته قدیمی را با زیررشته جدید جایگزین کنید.
نکته: اگر آرگومان سوم را قرار ندهیم، به طور پیش فرض، همه رخدادها جایگزین می شوند.

#String_Functions
👍2
🧐خروجی قطعه کد بالا کدام است؟

#تست_تایم | آموزش پایتون
Output:
Anonymous Quiz
56%
A
0%
B
44%
C
0%
D
تحلیل کد بالا

Tuple1 = (9, 6, 0, 0)
Touple2 = (3, 4, 1, 2)
print(Tuple1 > Touple2)

در پایتون تاپل ها را می‌توان مقایسه کرد. مقایسه از چپ به راست انجام می‌شود؛ به این صورت که ابتدا عدد اول را مقایسه میکند:

👈اگر عدد اول Tuple1 از عدد اول Touple2 کوچکتر باشد، مقدار False را برمی‌گرداند.

👈اگر عدد اول Tuple1 از عدد اول Touple2 بزرگتر باشد، مقدار True را برمی‌گرداند.

👈اگر عدد اول Tuple1 با عدد اول Touple2 برابر باشد، به مقایسه ی عدد بعدی می‌پردازد...

#بدانیم | #tuple | آموزش پایتون
یافتن اشتراک و تفاوت های دو تاپل

#tuple
🔆تفاوت و اشتراک در تاپل

مگه تاپل ها غیرقابل تغییر نیستند؟
پس چطوری میشه تفاوت و اشتراک هاشون و پیدا کرد؟؟

یکی از راه ها برای یافتن اشتراک و تفاوت های دو تاپل تبدیل آنها به set و استفاده از دستورات intersectionو difference می‌باشد.


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

tuple1 = (1, 2, 3, 4, 5)
tuple2 = (4, 5, 6, 7, 8)

🔅یافتن اشتراک
برای یافتن عناصر مشترک بین دو تاپل، می‌توانید از تبدیل هر کدام به مجموعه (Set) استفاده کنید، زیرا مجموعه‌ها عملیات‌های جستجو و اشتراک را سریع‌تر انجام می‌دهند:

tuple1 = (1, 2, 3, 4, 5)
tuple2 = (4, 5, 6, 7, 8)

# تبدیل تاپل‌ها به مجموعه و پیدا کردن اشتراک
intersection = set(tuple1) & set(tuple2)
print("intersection=", intersection)
#Output:
#intersection={4, 5}

🔅یافتن تفاوت
برای یافتن عناصر موجود در یک تاپل که در تاپل دیگر وجود ندارند، می‌توانید از عملگر تفاوت (difference) استفاده کنید:

# تفاوت بین تاپل ۱ و ۲
difference1 = set(tuple1) - set(tuple2)
difference2 = set(tuple2) - set(tuple1)

print(" differences between tuple1, tuple2:", difference1)
print(" differences between Touple2, tuple1:", difference2)

#Output :
#differences between tuple1, tuple2: {1, 2, 3}
#differences between Touple2, tuple1: {8, 6, 7}

🔗توجه:

این روش فقط برای عناصر قابل مقایسه (مثل اعداد، رشته‌ها و ...) قابل استفاده است. اگر عناصر تاپل‌ها شامل نوع داده‌های پیچیده‌تری باشند، باید روش‌های دیگری مد نظر قرار گیرد.
نمایش نمودار دایره‌ای با استفاده از matplotlib در پایتون

#matplotlib
pie chart using matplotlib in python


🔆ساخت نمودار دایره‌ای با matplotlib
در اینجا گام به گام رسم یک نمودار دایره ای توضیح داده شده است.

🔅گام 1: نصب matplotlib
اگر تا به حال آن را نصب نکرده اید، می‌توانید برای نصب آن دستور زیر را در command prompt تایپ کنید.

pip install matplotlib

🔅گام 2: ساخت یک نمودار دایره ای

👇مثال

import matplotlib.pyplot as plt

# Data to plot
labels = ['Python', 'Java', 'C++', 'Ruby']
sizes = [45, 30, 15, 10] # Corresponding sizes for each label
colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen'] # Colors for each slice
explode = (0.1, 0, 0, 0) # explode 1st slice (i.e. 'Python')

# Create a pie chart
plt.figure(figsize=(8, 8)) # Set the figure size
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140)

plt.axis('equal') # Equal aspect ratio ensures that pie chart is a circle.

# Title
plt.title('Programming Language Usage')

# Show the plot
plt.show()


🟣توضیح کد


1. وارد کردن Matplotlib: با استفاده از import matplotlib.pyplot as plt ما ماژول مورد نیاز برای رسم نمودار را وارد می‌کنیم.

2. آماده‌سازی داده‌ها:
- labels:
یک لیست از رشته‌ها است که نمایانگر برچسب‌های هر بخش دایره است.
- sizes:
یک لیست از مقادیر است که اندازه هر بخش دایره را نشان می‌دهد.
- colors:
یک لیست از رنگ‌ها برای هر بخش.
- explode:
برای بیرون آوردن یک بخش از دایره استفاده می‌شود؛ در اینجا، بخش اول (Python) به بیرون آورده شده است.

3. ایجاد نمودار دایره‌ای:
- توابع plt.pie() برای رسم نمودار دایره‌ای استفاده می‌شود و پارامترهای مختلفی شامل sizes، explode، labels، colors و گزینه‌های مختلفی برای زیباسازی مانند autopct برای نشان دادن درصد روی بخش‌های دایره دارد.

4. نسبت نابرابر: plt.axis('equal') اطمینان حاصل می‌کند که نمودار دایره‌ای به صورت کامل نمایش داده می‌شود.

5. عنوان و نمایش نمودار: با استفاده از plt.title() یک عنوان برای نمودار تنظیم می‌کنیم و با plt.show() نمودار را نمایش می‌دهیم.

🔗توجه:
این یک مثال ساده از نمودار دایره‌ای است. شما می‌توانید آن را با تنظیم پارامترهایی مانند shadow، startangle و استفاده از طرح‌های رنگی مختلف سفارشی کنید.
import matplotlib.pyplot as plt
import numpy as np


def midpoints(x):
sl = ()
for _ in range(x.ndim):
x = (x[sl + np.index_exp[:-1]] + x[sl + np.index_exp[1:]]) / 2.0
sl += np.index_exp[:]
return x

# prepare some coordinates, and attach rgb values to each
r, g, b = np.indices((17, 17, 17)) / 16.0
rc = midpoints(r)
gc = midpoints(g)
bc = midpoints(b)

# define a sphere about [0.5, 0.5, 0.5]
sphere = (rc - 0.5)**2 + (gc - 0.5)**2 + (bc - 0.5)**2 < 0.5**2

# combine the color components
colors = np.zeros(sphere.shape + (3,))
colors[..., 0] = rc
colors[..., 1] = gc
colors[..., 2] = bc

# and plot everything
ax = plt.figure().add_subplot(projection='3d')
ax.voxels(r, g, b, sphere,
facecolors=colors,
edgecolors=np.clip(2*colors - 0.5, 0, 1), # brighter
linewidth=0.5)
ax.set(xlabel='r', ylabel='g', zlabel='b')
ax.set_aspect('equal')

plt.show()

#matplotlib | #numpy
Intertools Module


3 ترفند با itertools

امروز ما به چندین عملکرد از یک ماژول نسبتا مفید نگاه خواهیم کرد که به شما امکان می دهد به طور مؤثر با اشیاء تکرار شونده کار کنید. بیایید با یک تابع بسیار ساده شروع کنیم.

تابع accumulate کمی شبیه به reduce است، اما به جای اینکه یک مقدار نهایی به شما بدهد، به طور متوالی تابع مشخص شده در آرگومان دوم (در اینجا min) را به هر عنصر بعدی اعمال می‌کند:
min(45), min(2, 53), min(2,12)
و به همین ترتیب هربار مقایسه می‌شود و مقدار min را برمی‌گرداند و با عدد بعدی مقایسه می‌کند.

برای ایجاد ترکیب‌ها از عناصر یک شئ تکرار شونده انتخاب شده، به تابع combinations نیاز خواهید داشت. آرگومان دوم می‌تواند برای مشخص کردن طول این ترکیب استفاده شود.

تابع chain به شما این امکان را می‌دهد که چندین عنصر تکرار شونده را به یکدیگر "چسبانده" و به عنوان یک دنباله واحد استفاده کنید.

#itertools | #module | learnpythonicy
Stack


استفاده از لیست ها به عنوان پشته

پشته یک نوع داده انتزاعی است که لیستی از عناصر سازماندهی شده بر اساس اصل LIFO (آخرین ورود – اولین خروج) است. (هرکی دیرتر اومده زودتر خارج میشه)

لیست ها در پایتون دارای روش های داخلی مناسبی هستند که برای پیاده سازی چنین ساختار داده ای کافی هستند. برای اضافه کردن یک عنصر به انتهای پشته، از روش append و برای حذف آن از روش pop استفاده کنید.

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

#stack
Tic-Tac-Toe Game In Python

🤩کی دوز بازی دوست داره؟

#tikinter | #game
import tkinter as tk
from tkinter import messagebox

# Initialize the main window
root = tk.Tk()
root.title("Tic-Tac-Toe")
root.configure(bg='lightblue') # Set background color

# Variables to store the state of the game
board = [' ' for _ in range(9)]
player = 'X'
scores = {'X': 0, 'O': 0}

# Function to update the button text and board state
def update_board(index, button):
global player
if board[index] == ' ':
board[index] = player
button.config(text=player, fg='blue' if player == 'X' else 'green', bg='white')
if check_win():
messagebox.showinfo("Tic-Tac-Toe", f"Player {player} wins!")
scores[player] += 1
reset_board()
elif ' ' not in board:
messagebox.showinfo("Tic-Tac-Toe", "No winner!")
reset_board()
else:
player = 'O' if player == 'X' else 'X'

# Function to check for a win
def check_win():
win_conditions = [
(0, 1, 2), (3, 4, 5), (6, 7, 8), # Rows
(0, 3, 6), (1, 4, 7), (2, 5, 8), # Columns
(0, 4, 8), (2, 4, 6) # Diagonals
]
for i, j, k in win_conditions:
if board[i] == board[j] == board[k] != ' ':
return True
return False

# Function to reset the board
def reset_board():
global board, player
board = [' ' for _ in range(9)]
player = 'X'
for button in buttons:
button.config(text='', bg='lightgrey')

# Function to show the scores when closing the game
def on_closing():
messagebox.showinfo("Scores", f"Player X: {scores['X']} wins\nPlayer O: {scores['O']} wins")
root.destroy()

# Create buttons for the Tic-Tac-Toe board
buttons = []
for i in range(9):
button = tk.Button(root, text=' ', width=10, height=5, bg='lightgrey',
command=lambda i=i: update_board(i, buttons[i]))
button.grid(row=i//3, column=i%3, padx=5, pady=5) # Add padding for better spacing
buttons.append(button)

# Bind the closing event to the on_closing function
root.protocol("WM_DELETE_WINDOW", on_closing)

# Run the main loop
root.mainloop()


#tikinter | #game | آموزش پایتون
🍓4
📸Taking photos using your system's webcam in Python

📸گرفتن عکس در پایتون با وبکم سیستم

#opencv_python | #cv2
یلداتون مبارک🍌
👨‍💻4