💚 سلام دوستان عزیزم 💚
برنامههایی که در این کانال منتشر میشوند، از یک دیدگاه، به دو دسته تقسیم میشوند:
#Basic
#Practical
برنامههایی که Tag ای به نام Basic دارند، برنامههای سادهای هستند که لزوما کاربردی و هیجانانگیز نیستند، و صرفا برنامههایی هستند که مناسب کسانی است که تازهکار بوده و میخواند با اصول اولیه و دیسیپلینهای زبان پایتون آشنا شوند، و در ضمن برنامههایی هستند که وظیفه زیرسازی ذهن شما را برعهده داشته و شما را برای مشاهده یک برنامه کاربردی / هیجانانگیز که در آینده منتشر خواهد شد، آماده میکند.
برنامههایی که Tag ای به نام Practical دارند، معمولا برنامههای کاربردی / هیجانانگیزی هستند که البته برای یادگیری آنها باید حداقل دانش اولیه پایتون را داشته باشید، و باید قبلا برنامههای Basic مرتبط با آن برنامه را مشاهده کرده باشید، ولی اگر دارای یک ذهن استقرایی باشید، میتوانید کد آنها را درک کرده و عنداللزوم کد آنها را تغییر داده و به سلیقه خود، آنها را بومیسازی نمایید.
با تشکر و احترام
داریوش تصدیقی 🌺🌺👍👍🙏🙏🌸🌸
برنامههایی که در این کانال منتشر میشوند، از یک دیدگاه، به دو دسته تقسیم میشوند:
#Basic
#Practical
برنامههایی که Tag ای به نام Basic دارند، برنامههای سادهای هستند که لزوما کاربردی و هیجانانگیز نیستند، و صرفا برنامههایی هستند که مناسب کسانی است که تازهکار بوده و میخواند با اصول اولیه و دیسیپلینهای زبان پایتون آشنا شوند، و در ضمن برنامههایی هستند که وظیفه زیرسازی ذهن شما را برعهده داشته و شما را برای مشاهده یک برنامه کاربردی / هیجانانگیز که در آینده منتشر خواهد شد، آماده میکند.
برنامههایی که Tag ای به نام Practical دارند، معمولا برنامههای کاربردی / هیجانانگیزی هستند که البته برای یادگیری آنها باید حداقل دانش اولیه پایتون را داشته باشید، و باید قبلا برنامههای Basic مرتبط با آن برنامه را مشاهده کرده باشید، ولی اگر دارای یک ذهن استقرایی باشید، میتوانید کد آنها را درک کرده و عنداللزوم کد آنها را تغییر داده و به سلیقه خود، آنها را بومیسازی نمایید.
با تشکر و احترام
داریوش تصدیقی 🌺🌺👍👍🙏🙏🌸🌸
❤5👍4
📌 عنوان برنامه: برنامهای بنویسید که از کاربر، نام، نام خانوادگی و سن وی را گرفته و به کاربر نمایش دهد؟
✅ نکته: معمولا کدهایی که نوشته شده و Comment میشوند، کدهایی هستند که شاید بعضی از برنامهنویسان آماتور آنها را مینویسند و اصولا جزء Best Practice ها در نظر گرفته نمیشوند!
✅ نکته: به ""f، اصطلاحا String Format میگویند که اساسا روشی شیکتر و مناسبتر برای کنار هم قرار دادن رشتهها میباشد!
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
✅ نکته: معمولا کدهایی که نوشته شده و Comment میشوند، کدهایی هستند که شاید بعضی از برنامهنویسان آماتور آنها را مینویسند و اصولا جزء Best Practice ها در نظر گرفته نمیشوند!
✅ نکته: به ""f، اصطلاحا String Format میگویند که اساسا روشی شیکتر و مناسبتر برای کنار هم قرار دادن رشتهها میباشد!
# **************************************************#SourceCode #SourceCode10023 #Basic
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)
# **************************************************
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
👍5❤3
📌 عنوان برنامه: برنامهای بنویسید که در محیط Console، پنج بار عبارت Hello, World را بنویسد؟
✅ نکته: این برنامه را به شش روش مختلف خواهیم نوشت، ولی هدف از این تمرین، روش ششم است که از ماژول time و تابع sleep استفاده مینماییم. تابع sleep، در دو برنامه آتی خیلی هیجانانگیز خواهد بود!
✅ راهحل اول: راهحلی که با هر سطح دانشی از برنامهنویسی، احمقانه به نظر میرسد!
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
✅ نکته: این برنامه را به شش روش مختلف خواهیم نوشت، ولی هدف از این تمرین، روش ششم است که از ماژول time و تابع sleep استفاده مینماییم. تابع sleep، در دو برنامه آتی خیلی هیجانانگیز خواهد بود!
✅ راهحل اول: راهحلی که با هر سطح دانشی از برنامهنویسی، احمقانه به نظر میرسد!
# ********************✅ راهحل دوم: استفاده از حلقه تکرار (while). به جای استفاده از دستور index = index + 1، هوشمندانه آن است که از دستور index += 1 استفاده نماییم:
# *** Solution (1) ***
# ********************
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
# ********************
# ********************✅ راهحل سوم / چهارم: استفاده از حلقه تکرار (for). اگر دقت نمایید، متغیر index، در راهحل ذیل بلااستفاده است! لذا به جای استفاده از index، در راهحل چهارم، از _ (Underscore) استفاده میکنیم:
# *** Solution (2) ***
# ********************
index = 1
while index <= 5:
print("Hello, World!")
index += 1
# index = index + 1
# ********************
# ********************✅ راهحل پنجم: اگر متغیر index، به درد ما بخورد، از آن استفاده میکنیم! در راهحل پنجم، میخواهیم قبل از عبارت Hello, World، اندیس از یک تا پنج نمایش داده شود. نکته مهم: در زمان چاپ از عبارت index + 1 استفاده میکنیم، چرا که index در این حلقه تکرار، از صفر تا چهار تغییر میکند:
# *** Solution (3) ***
# ********************
for index in range(5):
print("Hello, World!")
# ********************
# ********************
# *** Solution (4) ***
# ********************
for _ in range(5):
print("Hello, World!")
# ********************
# ********************✅ راهحل ششم: میخواهیم پنج بار عبارت Hello, World در صفحه چاپ شود و هر بار، یک ثانیه مکث (sleep) صورت گیرد. به عبارت سادهتر، میخواهیم هر یک ثانیه یکبار، عبارت Hello, World در صفحه چاپ شود:
# *** Solution (5) ***
# ********************
for index in range(5):
print(f"{index + 1}: Hello, World!")
# ********************
# ********************#SourceCode #SourceCode10028 #Basic
# *** Solution (6) ***
# ********************
import time
for _ in range(5):
print("Hello, World!")
time.sleep(1)
# ********************
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
❤5👍2
📌 عنوان برنامه شماره یک: برنامهای بنویسید که محتوای دو متغیر عددی (x, y) را با استفاده از متغیر کمکی تغییر دهد؟
- راهنمایی: در سه خط
- راهنمایی: در سه خط
✅ نکته: دستور ذیل:
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
- راهنمایی: در سه خط
# ********************📌 عنوان برنامه شماره دو: برنامهای بنویسید که محتوای دو متغیر عددی (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 = 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) که برای آن تعریف شده است را بررسی کرده، و حرف (حروفی) که بیشترین تکرار را دارد(ند) را به ما نمایش دهد:
✅ نکته مهم: این سوالی است که معمولا در اکثر مصاحبههای استخدامی پایتون، از عزیزان پرسیده میشود!
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
# ********************✅ نکته: با توجه به متن فوق، پاسخ صحیح حروف i و فضای خالی، با پنجبار تکرار میباشد.
sentence = "This is a common interview question"
# ********************
✅ نکته مهم: این سوالی است که معمولا در اکثر مصاحبههای استخدامی پایتون، از عزیزان پرسیده میشود!
# ********************#SourceCode #SourceCode10036 #Basic
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
# ********************
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
👍6❤2
✅ هر کدام از ساختمان دادههای پایتون، چه قابلیتهایی دارند!
#Python #Learning #Basic
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7
📌 عنوان برنامه: برنامهای بنویسید که نسبت به شرایط و علاقهمان، رنگ قلم و رنگ زمینه خروجی تغییر کند؟
✅ نکته: تا امروز، تمام برنامههایی که نوشتهایم، برنامههای اصطلاحا Console Application بوده و نتیجه آنها در محیط Console / Terminal به صورت سفید (رنگ قلم) روی سیاه (رنگ زمینه) اجرا میشدند. این دو رنگ (سفید/سیاه) شاید در دراز مدت، حس خوبی از نظر ظاهری به ما ندهند! ضمن آنکه در برنامههای جدی، خصوصا در برنامههای مربوط به Ethical Hacking، شاید بخواهیم اتفاقات خاص و یا نامطلوب را مثلا با رنگ قلم / زمینه قرمز (برای تاکید یا توجه بیشتر) به کاربر نمایش دهیم! برای این منظور نصب Module ذیل، و استفاده از دستورات و پارامترهای مربوط به آن، نتیجه (ظاهر) مناسبتری ایجاد میکند:
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
✅ نکته: تا امروز، تمام برنامههایی که نوشتهایم، برنامههای اصطلاحا Console Application بوده و نتیجه آنها در محیط Console / Terminal به صورت سفید (رنگ قلم) روی سیاه (رنگ زمینه) اجرا میشدند. این دو رنگ (سفید/سیاه) شاید در دراز مدت، حس خوبی از نظر ظاهری به ما ندهند! ضمن آنکه در برنامههای جدی، خصوصا در برنامههای مربوط به Ethical Hacking، شاید بخواهیم اتفاقات خاص و یا نامطلوب را مثلا با رنگ قلم / زمینه قرمز (برای تاکید یا توجه بیشتر) به کاربر نمایش دهیم! برای این منظور نصب Module ذیل، و استفاده از دستورات و پارامترهای مربوط به آن، نتیجه (ظاهر) مناسبتری ایجاد میکند:
# ********************#SourceCode #SourceCode10038 #Basic #General
# 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)!")
# ********************
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
❤5👍2
یک وقتهایی پیش میآید که ما میخواهیم، یک سورسکد (مثلا به زبان برنامهنویسی پایتون) را از ابتدا نوشته و یا آنرا ویرایش نماییم، و امکان و یا زمان کافی، برای نصب Visual Studio Code را نداریم و در ضمن نیاز به یک IntelliSense هوشمند داریم تا بتوانیم کد خودمان را مرتب و مطمئن بنویسیم. در این شرایط میتوانیم وارد سایت ذیل شده و به صورت آنلاین، و در محیط Visual Studio Code Online، کد بزنیم!
https://vscode.dev
#Site #Basic #General
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
vscode.dev
Visual Studio Code for the Web
Build with Visual Studio Code, anywhere, anytime, entirely in your browser.
👍9❤4
✅ نکته: عزیزانی که در هر سطحی، با زبان برنامهنویسی پایتون آشنایی داشته و یا با آن به طور جدی کار میکنند، قطعا قدر این تابع را میدانند!
✅ نکته: در این Tuple سه قسمتی، اولین قسمت از سمت چپ، Location یا مسیر، دومین قسمت از سمت چپ، file_name یا نام فایل و سومین قسمت از سمت چپ، Extension یا پسوند فایل (با نقطه) برمیگردد.
✅ نکته: اگر برای بدست آوردن اجزای یک مسیر، در کل اینترنت جستجو نمایید، قطعا چرندیات و کدهای نادقیقی خواهید دید که امیدوارم از این کد کمال استفاده را کرده و از آن لذت ببرید!
✅ نکته: در صورتی که ورودی این تابع None یا "" و یا رشتهای فقط با Space باشد، خروجی این تابع None خواهد بود!
✅ نکته: این کدها و آموزشها، قطعا یک ارتباط معنوی با یکدیگر دارند، و انشاءالله با فیلمهای آموزشی آتی، ارتباط و استفاده از آنها در یک پروژه نسبتا بزرگ و جدی قابل روئت و استفاده خواهد بود!
✅ درخواست: در صورتی که در این کد، بیدقتی و یا مشکلی مشاهده نمودید، لطفا آنرا به اینجانب اطلاع داده تا در اسرع وقت، نسبت به ویرایش آن اقدام نمایم.
# ********************#SourceCode #SourceCode10039 #Basic #General
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
# ********************
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
✅ در این مطلب، میخواهیم به جای آنکه برنامه (تابع) مذکور را بارها!!! اجرا کرده!!! و با ورود پارامترهای مختلف، به صورت دستی، برنامه را تست نماییم، همه مواردی را که میخواهیم تست نماییم را یکبار نوشته و تا حد زیادی از صحت تابع اطمینان حاصل کنیم، یعنی به گونهای یک Unit Test برای این تابع بنویسیم! این کار باعث میشود که حداقل شما عزیزان، به عنوان خواننده این تابع، متوجه شوید که نویسنده این تابع، با توجه به چه ورودیهایی، توقع چه خروجیهایی را داشته است!
# ********************#SourceCode #SourceCode10039 #Basic #General
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}'")
# ********************
🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2