💚 سلام دوستان عزیزم 💚

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

#Basic
#Practical

برنامه‌هایی که Tag ای به نام Basic دارند، برنامه‌های ساده‌ای هستند که لزوما کاربردی و هیجان‌انگیز نیستند، و صرفا برنامه‌هایی هستند که مناسب کسانی است که تازه‌کار بوده و می‌خواند با اصول اولیه و دیسیپلین‌های زبان پایتون آشنا شوند، و در ضمن برنامه‌هایی هستند که وظیفه زیرسازی ذهن شما را برعهده داشته و شما را برای مشاهده یک برنامه کاربردی / هیجان‌انگیز که در آینده منتشر خواهد شد، آماده می‌کند.

برنامه‌هایی که Tag ای به نام Practical دارند، معمولا برنامه‌های کاربردی / هیجان‌انگیزی هستند که البته برای یادگیری آن‌ها باید حداقل دانش اولیه پایتون را داشته باشید، و باید قبلا برنامه‌های Basic مرتبط با آن برنامه را مشاهده کرده باشید، ولی اگر دارای یک ذهن استقرایی باشید، می‌توانید کد آن‌ها را درک کرده و عنداللزوم کد آن‌ها را تغییر داده و به سلیقه خود، آن‌ها را بومی‌سازی نمایید.

با تشکر و احترام
داریوش تصدیقی 🌺🌺👍👍🙏🙏🌸🌸
5👍4
📌 عنوان برنامه: برنامه‌ای بنویسید که از کاربر، نام، نام خانوادگی و سن وی را گرفته و به کاربر نمایش دهد؟

نکته: معمولا کدهایی که نوشته شده و Comment می‌شوند، کدهایی هستند که شاید بعضی از برنامه‌نویسان آماتور آن‌ها را می‌نویسند و اصولا جزء Best Practice ها در نظر گرفته نمی‌شوند!

نکته: به ""f، اصطلاحا String Format می‌گویند که اساسا روشی شیک‌تر و مناسب‌تر برای کنار هم قرار دادن رشته‌ها می‌باشد!

# **************************************************
first_name = input("What is your first name: ")
last_name = input("What is your last name: ")

# age = input("How old are you? ")
# age = int(age)

age = int(input("How old are you? "))

# full_name = "You are " + first_name + " " + last_name + " and " + str(age) + " years old."

# full_name = (
# "You are " + first_name + " " + last_name + " and " + str(age) + " years old."
# )

full_name = f"You are {first_name} {last_name} and {age} years old."

print(full_name)
# **************************************************

#SourceCode #SourceCode10023 #Basic
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
👍53
📌 عنوان برنامه: برنامه‌ای بنویسید که در محیط Console، پنج بار عبارت Hello, World را بنویسد؟

نکته: این برنامه را به شش روش مختلف خواهیم نوشت، ولی هدف از این تمرین، روش ششم است که از ماژول time و تابع sleep استفاده می‌نماییم. تابع sleep، در دو برنامه آتی خیلی هیجان‌انگیز خواهد بود!

راه‌حل اول: راه‌حلی که با هر سطح دانشی از برنامه‌نویسی، احمقانه به نظر می‌رسد!

# ********************
# *** Solution (1) ***
# ********************
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
# ********************

راه‌حل دوم: استفاده از حلقه تکرار (while). به جای استفاده از دستور index = index + 1، هوشمندانه آن است که از دستور index += 1 استفاده نماییم:

# ********************
# *** Solution (2) ***
# ********************
index = 1
while index <= 5:
print("Hello, World!")
index += 1
# index = index + 1
# ********************

راه‌حل سوم / چهارم: استفاده از حلقه تکرار (for). اگر دقت نمایید، متغیر index، در راه‌حل ذیل بلااستفاده است! لذا به جای استفاده از index، در راه‌حل چهارم، از _ (Underscore) استفاده می‌کنیم:

# ********************
# *** Solution (3) ***
# ********************
for index in range(5):
print("Hello, World!")
# ********************

# ********************
# *** Solution (4) ***
# ********************
for _ in range(5):
print("Hello, World!")
# ********************

راه‌حل پنجم: اگر متغیر index، به درد ما بخورد، از آن استفاده می‌کنیم! در راه‌حل پنجم، می‌خواهیم قبل از عبارت Hello, World، اندیس از یک تا پنج نمایش داده شود. نکته مهم: در زمان چاپ از عبارت index + 1 استفاده می‌کنیم، چرا که index در این حلقه تکرار، از صفر تا چهار تغییر می‌کند:

# ********************
# *** Solution (5) ***
# ********************
for index in range(5):
print(f"{index + 1}: Hello, World!")
# ********************

راه‌حل ششم: می‌خواهیم پنج بار عبارت Hello, World در صفحه چاپ شود و هر بار، یک ثانیه مکث (sleep) صورت گیرد. به عبارت ساده‌تر، می‌خواهیم هر یک ثانیه یک‌بار، عبارت Hello, World در صفحه چاپ شود:

# ********************
# *** Solution (6) ***
# ********************
import time

for _ in range(5):
print("Hello, World!")
time.sleep(1)
# ********************

#SourceCode #SourceCode10028 #Basic
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
5👍2
📌 عنوان برنامه شماره یک: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را با استفاده از متغیر کمکی تغییر دهد؟
- راهنمایی: در سه خط

# ********************
x = 10
y = 15

z = x
x = y
y = z
# ********************

📌 عنوان برنامه شماره دو: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را بدون! استفاده از متغیر کمکی تغییر دهد؟
- راهنمایی: در سه خط

# ********************
x = 10
y = 15

x = x + y
y = x - y
x = x - y
# ********************

📌 عنوان برنامه شماره سه: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را بدون! استفاده متغیر کمکی، و صرفا در یک خط تغییر دهد؟

# ********************
x = 10
y = 15

x, y = y, x
# ********************

نکته مهم: پاسخ هیجان‌انگیز برنامه شماره سه، صرفا در زبان برنامه‌نویسی پایتون امکان‌پذیر است! و نمونه آن (تا جایی که در جریان هستم) در زبان‌های برنامه‌نویسی دیگر وجود ندارد!

نکته: دستور ذیل:

x, y = y, x

در واقع معادل دستور ذیل می‌باشد (Tupple) که با یک عملیات Unzip، ما را به نتیجه می‌رساند:

x, y = (y, x)

#SourceCode #SourceCode10035 #Basic

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
7👍3
📌 عنوان برنامه: برنامه‌ای بنویسید که متنی (sentence) که برای آن تعریف شده است را بررسی کرده، و حرف (حروفی) که بیشترین تکرار را دارد(ند) را به ما نمایش دهد:

# ********************
sentence = "This is a common interview question"
# ********************

نکته: با توجه به متن فوق، پاسخ صحیح حروف i و فضای خالی، با پنج‌بار تکرار می‌باشد.

نکته مهم:
این سوالی است که معمولا در اکثر مصاحبه‌های استخدامی پایتون، از عزیزان پرسیده می‌شود!

# ********************
sentence = "This is a common interview question"

char_frequency = {}
for char in sentence:
if not char in char_frequency:
char_frequency[char] = 1
else:
char_frequency[char] += 1

items = char_frequency.items()
sorted_char_frequency = sorted(items, key=lambda item: item[1], reverse=True)

max_count = sorted_char_frequency[0][1]
print(f"Max Count: {max_count}")

for item in sorted_char_frequency:
if item[1] == max_count:
print(f"[{item[0]}]")
else:
break
# ********************

#SourceCode #SourceCode10036 #Basic

🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
👍62
🟢 آموزش

هر کدام از ساختمان داده‌های پایتون، چه قابلیت‌هایی دارند!

#Python #Learning #Basic

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117
📌 عنوان برنامه: برنامه‌ای بنویسید که نسبت به شرایط و علاقه‌مان، رنگ قلم و رنگ زمینه خروجی تغییر کند؟

نکته: تا امروز، تمام برنامه‌هایی که نوشته‌ایم، برنامه‌های اصطلاحا Console Application بوده و نتیجه آن‌ها در محیط Console / Terminal به صورت سفید (رنگ قلم) روی سیاه (رنگ زمینه) اجرا می‌شدند. این دو رنگ (سفید/سیاه) شاید در دراز مدت، حس خوبی از نظر ظاهری به ما ندهند! ضمن آن‌که در برنامه‌های جدی، خصوصا در برنامه‌های مربوط به Ethical Hacking، شاید بخواهیم اتفاقات خاص و یا نامطلوب را مثلا با رنگ قلم / زمینه قرمز (برای تاکید یا توجه بیشتر) به کاربر نمایش دهیم! برای این منظور نصب Module ذیل، و استفاده از دستورات و پارامترهای مربوط به آن، نتیجه (ظاهر) مناسب‌تری ایجاد می‌کند:

# ********************
# pip install colorama
# https://github.com/tartley/colorama
# ********************
from colorama import Fore, Back

print(f"{Fore.RED}Hello, World (1)!")
print(f"{Fore.YELLOW}Hello, World (2)!{Fore.RESET}")
print(f"{Back.GREEN}Hello, World (3)!{Back.RESET}")
print(f"{Fore.MAGENTA}Hello, World (4)!")
print(f"Hello, World (5)!")
print(f"{Fore.RESET}Hello, World (6)!")
# ********************

#SourceCode #SourceCode10038 #Basic #General

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
5👍2
🟢 معرفی سایت

❤️ سلام دوستان عزیزم ❤️

یک وقت‌هایی پیش می‌آید که ما می‌خواهیم، یک سورس‌کد (مثلا به زبان برنامه‌نویسی پایتون) را از ابتدا نوشته و یا آن‌را ویرایش نماییم، و امکان و یا زمان کافی، برای نصب Visual Studio Code را نداریم و در ضمن نیاز به یک IntelliSense هوشمند داریم تا بتوانیم کد خودمان را مرتب و مطمئن بنویسیم. در این شرایط می‌توانیم وارد سایت ذیل شده و به صورت آنلاین، و در محیط Visual Studio Code Online، کد بزنیم!

🔴 نکته: در این محیط، متاسفانه هنوز امکان اجرای پنجره Terminal و یا اجرای برنامه وجود ندارد! ولی چون همه فایل‌ها به صورتی فیزیکی بر روی سیستم خودمان قرار دارد، می‌توانیم صرفا با نصب برنامه Python، در سیستم خودمان، نسبت به اجرای برنامه‌ها اقدام نماییم.

🔴 نکته: سایت‌های زیادی وجود دارند که امکان نوشتن برنامه‌های پایتون و حتی اجرای آن‌ها در خود را محیا کرده‌اند، ولی خیلی‌ها (مانند خود من) با محیط Visual Studio Code راحت‌تر بوده و امکانات آن‌را بیشتر می‌پسندند.

https://vscode.dev

#Site #Basic #General

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94
🔴 یک تابع ارزشمند و کاربردی: تابعی بنویسید که یک path یا مسیر را به عنوان ورودی دریافت کرده و اجزای آن‌را تکه‌تکه کرده و به صورت یک Tuple سه قسمتی برگرداند!

نکته: عزیزانی که در هر سطحی، با زبان برنامه‌نویسی پایتون آشنایی داشته و یا با آن به طور جدی کار می‌کنند، قطعا قدر این تابع را می‌دانند!

نکته: در این Tuple سه قسمتی، اولین قسمت از سمت چپ، Location یا مسیر، دومین قسمت از سمت چپ، file_name یا نام فایل و سومین قسمت از سمت چپ، Extension یا پسوند فایل (با نقطه) برمی‌گردد.

نکته: اگر برای بدست آوردن اجزای یک مسیر، در کل اینترنت جستجو نمایید، قطعا چرندیات و کدهای نادقیقی خواهید دید که امیدوارم از این کد کمال استفاده را کرده و از آن لذت ببرید!

نکته: در صورتی که ورودی این تابع None یا "" و یا رشته‌ای فقط با Space باشد، خروجی این تابع None خواهد بود!

نکته: این کدها و آموزش‌ها، قطعا یک ارتباط معنوی با یکدیگر دارند، و انشاءالله با فیلم‌های آموزشی آتی، ارتباط و استفاده از آن‌ها در یک پروژه نسبتا بزرگ و جدی قابل روئت و استفاده خواهد بود!

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

# ********************
import os

def get_path_parts(path: str):
if path == None:
return None

path = path.strip()

if path == "":
return None

location, tail = os.path.split(p=path)

items = os.path.splitext(p=tail)

file_name = items[0]
file_extension = items[1]

parts = (location, file_name, file_extension)

return parts
# ********************

#SourceCode #SourceCode10039 #Basic #General

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53
🔴 یک تابع ارزشمند و کاربردی: تابعی بنویسید که یک path یا مسیر را به عنوان ورودی دریافت کرده و اجزای آن‌را تکه‌تکه کرده و به صورت یک Tuple سه قسمتی برگرداند!

در این مطلب، می‌خواهیم به جای آن‌که برنامه (تابع) مذکور را بارها!!! اجرا کرده!!! و با ورود پارامترهای مختلف، به صورت دستی، برنامه را تست نماییم، همه مواردی را که می‌خواهیم تست نماییم را یک‌بار نوشته و تا حد زیادی از صحت تابع اطمینان حاصل کنیم، یعنی به گونه‌ای یک Unit Test برای این تابع بنویسیم! این کار باعث می‌شود که حداقل شما عزیزان، به عنوان خواننده این تابع، متوجه شوید که نویسنده این تابع، با توجه به چه ورودی‌هایی، توقع چه خروجی‌هایی را داشته است!

# ********************
path = None
parts = get_path_parts(path=path)
if parts != None:
print(f"[!] Path Parsing Error! - '{path}'")

path = ""
parts = get_path_parts(path=path)
if parts != None:
print(f"[!] Path Parsing Error! - '{path}'")

path = " "
parts = get_path_parts(path=path)
if parts != None:
print(f"[!] Path Parsing Error! - '{path}'")

path = "Alaki"
parts = get_path_parts(path=path)
if ("", "Alaki", "") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = "Alaki.txt"
parts = get_path_parts(path=path)
if ("", "Alaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = "Alaki.Dolaki.txt"
parts = get_path_parts(path=path)
if ("", "Alaki.Dolaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = " Alaki.Dolaki.txt "
parts = get_path_parts(path=path)
if ("", "Alaki.Dolaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

# In Windows

path = "C:\\A\\"
parts = get_path_parts(path=path)
if ("C:\\A", "", "") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = "C:\\A\\Alaki.Dolaki.txt"
parts = get_path_parts(path=path)
if ("C:\\A", "Alaki.Dolaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

# In Linux / Mac

path = "/A/"
parts = get_path_parts(path=path)
if ("/A", "", "") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = "/A/Alaki.Dolaki.txt"
parts = get_path_parts(path=path)
if ("/A", "Alaki.Dolaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")

path = "/Alaki.Dolaki.txt"
parts = get_path_parts(path=path)
if ("/", "Alaki.Dolaki", ".txt") != parts:
print(f"[!] Path Parsing Error! - '{path}'")
# ********************

#SourceCode #SourceCode10039 #Basic #General

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2