کد اکتال (Octal) چیست؟ و چگونه در پایتون استفاده میشود؟
1️⃣ مفهوم کد اکتال
کد اکتال یک سیستم عددی پایه ۸ است که اعداد را با ارقام ۰ تا ۷ نمایش میدهد. در برنامهنویسی، مخصوصاً در رشتهها، این سیستم برای نمایش مستقیم مقدار عددی کاراکترها استفاده میشود. یعنی هر کد اکتال معادل یک عدد در مبنای ۱۰ (دهدهی) است که نشاندهنده یک کاراکتر مشخص در جدول ASCII یا Extended ASCII است.
2️⃣ چرا از کد اکتال استفاده میشود؟
🔻 نمایش کاراکترهای غیرقابل تایپ: بعضی کاراکترها مثل کاراکترهای کنترلی (مثل زنگ هشدار، تب، برگشت خط) را نمیتوان مستقیم در رشته نوشت، پس از کد اکتال استفاده میکنند.
🔻 سازگاری با زبانهای قدیمی و سیستمعاملها: بسیاری از سیستمها از کدهای اکتال استفاده میکردند.
🔻 خوانایی و واضح بودن: کدهای اکتال کوتاه و مختصرند و بعضی برنامهنویسان برای نمایاندن کاراکترها از آنها بهره میبرند.
3️⃣ چطور کد اکتال را در پایتون بنویسیم؟
در پایتون، کد اکتال به شکل \ooo (یک اسلش بکاسلش بهعلاوه ۳ رقم اکتال) نوشته میشود. مثلاً:
040\ یعنی کاراکتر فاصله (space) که معادل عدد ۳۲ در دسیمال است.
012\ یعنی خط جدید (Line Feed) که معادل عدد ۱۰ است.
4️⃣ محدودیتها
🔻 کد اکتال فقط میتواند تا عدد ۳۷۷ (۳ رقمی اکتال) را نمایش دهد که برابر ۲۵۵ دسیمال است. یعنی فقط میتواند کاراکترهای یک بایتای را پوشش دهد.
🔻 برای یونیکدهای گستردهتر و اموجیها باید از کدهای هگزادسیمال یونیکد (مثلاً uXXXX\ یا UXXXXXXXX\) استفاده کنید.
5️⃣ جدول نمونه کدهای اکتال رایج و کاربردشان
\040 → Space (فاصله)
\041 → ! (علامت تعجب)
\042 → " (گیومه دوتایی)
\043 → # (هشتگ)
\044 → $ (علامت دلار)
\045 → % (درصد)
\046 → & (و)
\047 → ' (گیومه تکی)
\050 → ( (پرانتز باز)
\051 → ) (پرانتز بسته)
\052 → * (ستاره)
\053 → + (بعلاوه)
\054 → , (ویرگول)
\055 → - (منها)
\056 → . (نقطه)
\057 → / (اسلش)
\060 → 0
\061 → 1
\062 → 2
\063 → 3
\064 → 4
\065 → 5
\066 → 6
\067 → 7
\070 → 8
\071 → 9
\072 → : (دو نقطه)
\073 → ; (نقطه ویرگول)
\074 → < (کمتر از)
\075 → = (برابر)
\076 → > (بزرگتر از)
\077 → ? (علامت سوال)
\100 → @ (آت)
\101 → A
\102 → B
\103 → C
\104 → D
\105 → E
\106 → F
\107 → G
\110 → H
\111 → I
\112 → J
\113 → K
\114 → L
\115 → M
\116 → N
\117 → O
\120 → P
\121 → Q
\122 → R
\123 → S
\124 → T
\125 → U
\126 → V
\127 → W
\130 → X
\131 → Y
\132 → Z
\133 → [ (براکت باز)
\134 → \ (بکاسلش)
\135 → ] (براکت بسته)
\136 → ^ (کلاهک)
\137 → _ (آندرلاین)
\140 → ` (بکتیک)
\141 → a
\142 → b
\143 → c
\144 → d
\145 → e
\146 → f
\147 → g
\150 → h
\151 → i
\152 → j
\153 → k
\154 → l
\155 → m
\156 → n
\157 → o
\160 → p
\161 → q
\162 → r
\163 → s
\164 → t
\165 → u
\166 → v
\167 → w
\170 → x
\171 → y
\172 → z
\173 → { (آکولاد باز)
\174 → | (خط عمودی)
\175 → } (آکولاد بسته)
\176 → ~ (تِلدا)
\177 → DEL (Delete)
💯 @PythonForYou 🧑💻👩💻
در ادامه، چند نکته حرفهای و کاربردی درباره رشتهها در پایتون همراه با تحلیل و مثال واقعی براتون آوردم:
💡 ۱. جایگزینی چندکاراکتری سریع با ()translate و ()maketrans
برای مواقعی که باید چند کاراکتر را همزمان جایگزین کنی (بهمراتب سریعتر از چند replace مجزا است.)
table = str.maketrans("aeiou", "12345")
text = "Hello, world!"
print(text.translate(table)) # H2ll4, w4rld!
✅ مثال کاربردی: کدگذاری ساده یا حذف نویسههای خاص
💡 ۲. قالببندی دقیق اعداد و عرض با f‑strings
میتونی عددها را راستچین یا با تعداد اعشار مشخص نمایش بدی.
pi = 3.1415926535
print(f"{pi:10.2f}") # ' 3.14' (پهنا ۱۰، دو رقم اعشار)
🎯 برای چاپ ستونبندی یا گزارشهای مالی فوقالعادهست
💡 ۳. چند خطی با f‑strings مرتب
☚ برای ساخت متنی که چند خط داره و درونش متغیر داریم، بدون دردسر:
name = "Nina"
pi = 3.14159
msg = (
f"Hello, {name}.\n"
f"Pi ≈ {pi:.2f}\n"
f"Enjoy coding!"
)
print(msg)
☚ خروجی مرتب و خوانا؛ از خط جدا و عدد فرمتشده استفاده کردهای
💡 ۴. پاکسازی حرفهای strip(), lstrip(), rstrip()
☚ برای پاک کردن فضای اضافی یا نشانههایی دور متن:
s = " Hello, World! "
print(s.lstrip()) # "Hello, World! "
print(s.rstrip()) # " Hello, World!"
print(s.strip(",")) # " Hello, World! " (اگر"," بود پاک میشد)
🛠 عالی برای مرتب کردن دیتا یا ورودی کاربر
💡 ۵. شکستن و اتصال؛ ()split و ()join
☚ مهمترین ابزار برای پردازش داده مثل CSV یا لاگ:
words = "Python,is,awesome".split(",")
print(words) # ['Python','is','awesome']
print(" ".join(words)) # "Python is awesome"
روش استاندارد برای تبدیل رشته به لیست و برعکس
💡 ۶. بررسی شروع یا پایان رشته
☚ بدون regex، سریع بررسی انجام میشه:
url = "https://example.com"
print(url.startswith("https://")) # True
print(url.endswith(".com")) # True
✅ کاربرد: اعتبارسنجی سریع URL، فایل، پروتکل
💡 ۷. مدیریت چند کاراکتر خاص و حذف نویسهها
☚ مثال ردیت برای حذف علائم نگارشی:
import string
txt = "Hey, you - what are you doing?"
clean = txt.translate(str.maketrans("", "", string.punctuation))
words = clean.lower().split()
print(words) # ['hey','you','what','are','you','doing']
🧩 عالی برای پردازش متن در NLP یا chatbot
🔎 تحلیل کلی:
translate + maketrans → سریعترین روش برای چند جایگزینی.
f‑strings → هم خوانا هم سریع برای قالببندی.
split/join → پایهایترین ابزار برای جداسازی و اتصال.
strip → بهترین راه برای حذف نویسههای ناخواسته.
startswith/endswith → چک اولیه ساده برای اعتبارسنجی یا دستهبندی رشتهها.
همه اینها روشهایی هستن که هر Pythonist حرفهای باید حتما بلد باشه 😎
💯 @PythonForYou 🧑💻👩💻
🎯 قالببندی دقیق با f-strings در پایتون
امروز قراره با یه ابزار فوقالعاده تو پایتون آشنا بشیم: f-strings! این ابزار مثل یه عصای جادوییه که بهمون کمک میکنه متنها و متغیرها رو به شکل تمیز و قشنگ کنار هم بذاریم. بریم ببینیم چطور کار میکنه! 🚀
در پایتون، برای قالببندی دقیق رشتهها میتوان از f-strings استفاده کرد. این روش امکان کنترل دقیق بر روی نحوه نمایش دادهها را فراهم میکند و بهویژه در گزارشدهی، نمایش اعداد و ساخت جداول بسیار مفید است.
📌 ساختار کلی f-string برای قالببندی
f"{expression:width.precisionspecifier}"
🔻 expression: عبارت یا متغیری که میخواهید در رشته قرار دهید.
🔻 width: تعداد کل کاراکترهایی که میخواهید برای نمایش اختصاص دهید.
🔻 precision: تعداد ارقام اعشاری که میخواهید نمایش داده شوند.
🔻 specifier: نوع نمایش داده (مثلاً f برای اعداد اعشاری، d برای اعداد صحیح).
name = "Alex"
age = 15
print(f"Hi, I’m {name} and I’m {age} years old!")
خروجی:
Hi, I’m Alex and I’m 15 years old!
⬟〰️⬟〰️⬟〰️⬟〰️⬟
🔹 مثالهای کاربردی
۱. نمایش اعداد اعشاری با تعداد مشخصی از ارقام
pi = 3.1415926535
print(f"{pi:.2f}") # خروجی: 3.14
در این مثال، عدد pi با دو رقم اعشار نمایش داده میشود.
------------------------------
۲. نمایش اعداد با عرض مشخص
number = 42
print(f"{number:10}") # خروجی: ' 42'
در اینجا، عدد 42 در یک رشته با طول ۱۰ کاراکتر قرار میگیرد و فضای خالی قبل از آن پر میشود.
------------------------------
۳. ترکیب عرض و دقت برای نمایش اعداد
cost = 123.456
print(f"{cost:10.2f}") # خروجی: ' 123.46'
در این مثال، عدد cost با دو رقم اعشار و در یک رشته با طول ۱۰ کاراکتر نمایش داده میشود.
------------------------------
۴. استفاده از specifier برای نمایش درصد
rate = 0.1234
print(f"{rate:.2%}") # خروجی: '12.34%'
در اینجا، عدد rate به درصد تبدیل شده و با دو رقم اعشار نمایش داده میشود.
------------------------------
🔹 انواع specifierهای قالببندی در f-strings
در ادامه، به بررسی انواع specifierهای رایج در f-strings میپردازیم:
------------------------------
۱. نمایش اعداد صحیح
number = 42
print(f"{number:d}") # خروجی: 42
در این مثال، عدد 42 بهصورت صحیح نمایش داده میشود.
------------------------------
۲. نمایش اعداد اعشاری با تعداد مشخصی از ارقام
pi = 3.1415926535
print(f"{pi:.2f}") # خروجی: 3.14
در اینجا، عدد pi با دو رقم اعشار نمایش داده میشود.
------------------------------
۳. نمایش اعداد با عرض مشخص
number = 42
print(f"{number:10}") # خروجی: ' 42'
در اینجا، عدد 42 در یک رشته با طول ۱۰ کاراکتر قرار میگیرد و فضای خالی قبل از آن پر میشود.
------------------------------
۴. نمایش درصد
rate = 0.1234
print(f"{rate:.2%}") # خروجی: 12.34%
در اینجا، عدد rate به درصد تبدیل شده و با دو رقم اعشار نمایش داده میشود.
------------------------------
۵. نمایش اعداد در قالب علمی
large_number = 123456789
print(f"{large_number:.2e}") # خروجی: 1.23e+08
در اینجا، عدد large_number در قالب علمی با دو رقم اعشار نمایش داده میشود.
------------------------------
۶. نمایش اعداد با جداکننده هزارگان
large_number = 123456789
print(f"{large_number:,}") # خروجی: 123,456,789
در اینجا، عدد large_number با جداکننده هزارگان نمایش داده میشود.
------------------------------
۷. نمایش اعداد با پر کردن فضای خالی
number = 42
print(f"{number:05d}") # خروجی: 00042
در اینجا، عدد 42 با پر کردن فضای خالی به طول ۵ کاراکتر نمایش داده میشود.
------------------------------
چرا f-string اینقدر باحاله؟ 😎
خوندنش راحته: کد تمیز و قابل فهمه.
سریعه: پایتون f-string رو خیلی سریع پردازش میکنه.
همهچیز رو میتونی توش بذاری: از متغیرها گرفته تا محاسبات و حتی فرمتهای خاص!
🔥 چند نکته طلایی! 🔥
🔻 این f-string فقط تو پایتون 3.6 و بالاتر کار میکنه. اگه نسخه قدیمیتر داری، باید از روشهای دیگه مثل ()format استفاده کنی.
🔻 یادت باشه قبل از رشته حتماً f یا F بذاری، وگرنه پایتون فکر میکنه یه رشته معمولیه!
🔻 میتونی تو {} حتی توابع یا عبارتهای پیچیدهتر بنویسی، ولی مواظب باش کدت زیادی شلوغ نشه.
💯 @PythonForYou 🧑💻👩💻
🎯 متدهای مهم رشتهها در پایتون: ابزارهای جادویی برای کار با متن! ✨
رشتهها تو پایتون کلی متد (تابع آماده) دارن که کار با متن رو مثل آب خوردن میکنن! امروز قراره مهمترین متدهای رشتهها رو با مثالهای ساده و کاربردی یاد بگیرید. آمادهاید؟ بریم شروع کنیم! 🚀
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۱. upper() و lower(): بزرگ و کوچیک کردن حروف
این دو تا متد حروف یه رشته رو بهطور کامل بزرگ یا کوچیک میکنن.
◾️ کاربرد: وقتی میخوای متن رو یکدست کنی، مثلاً برای مقایسه یا نمایش.
text = "Hello World"
print(text.upper()) # Output: HELLO WORLD
print(text.lower()) # Output: hello world
◾️ مثال کاربردی: بررسی یه ورودی بدون توجه به بزرگ/کوچیک بودن حروف:
answer = "YeS"
if answer.lower() == "yes":
print("You said yes!") # Output: You said yes!
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۲. strip(), lstrip(), rstrip(): حذف فاصلههای اضافی
این متدها فاصلهها یا کاراکترهای ناخواسته (مثل خط جدید) رو از ابتدا و/یا انتهای رشته حذف میکنن.
strip(): از هر دو طرف.
lstrip(): فقط از چپ.
rstrip(): فقط از راست.
text = " Hi there "
print(text.strip()) # Output: Hi there
print(text.lstrip()) # Output: Hi there
print(text.rstrip()) # Output: Hi there
◾️ مثال کاربردی: تمیز کردن ورودی کاربر:
user_input = " hello\n"
cleaned = user_input.strip() # Output: hello
print(f"Cleaned input: {cleaned}")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۳. replace(): عوض کردن متن
این متد یه بخش از رشته رو با یه متن دیگه جایگزین میکنه.
◾️ کاربرد: برای ویرایش متن یا اصلاح اشتباهات.
text = "I like coding"
print(text.replace("coding", "Python")) # Output: I like Python
◾️ مثال کاربردی: اصلاح یه کلمه تو جمله:
sentence = "I have a cat"
new_sentence = sentence.replace("cat", "dog")
print(new_sentence) # Output: I have a dog
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۴. find() و index(): پیدا کردن جای متن
این متدها اندیس اولین جای یه زیررشته رو برمیگردونن.
find(): اگه پیدا نشه، -1 برمیگردونه.
index(): اگه پیدا نشه، خطا میده.
text = "Hello World"
print(text.find("World")) # Output: 6
print(text.find("Python")) # Output: -1
print(text.index("World")) # Output: 6
# print(text.index("Python")) # Error!
◾️ مثال کاربردی: چک کردن وجود یه کلمه:
email = "user@example.com"
if email.find("@") != -1:
print("Valid email!") # Output: Valid email!
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۵. split(): تبدیل رشته به لیست
این متد رشته رو با یه جداکننده (مثل کاما یا فاصله) به یه لیست از زیررشتهها تبدیل میکنه.
text = "apple,banana,orange"
fruits = text.split(",")
print(fruits) # Output: ['apple', 'banana', 'orange']
◾️ مثال کاربردی: جدا کردن کلمات یه جمله:
sentence = "Python is fun"
words = sentence.split() # جداکننده پیشفرض: فاصله
print(words) # Output: ['Python', 'is', 'fun']
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۶. join(): چسبوندن لیست به رشته
این متد عناصر یه لیست رو با یه جداکننده به هم میچسبونه و یه رشته میسازه.
words = ['Python', 'is', 'fun']
sentence = " ".join(words)
print(sentence) # Output: Python is fun
◾️ مثال کاربردی: ساختن یه مسیر فایل:
path_parts = ["home", "user", "docs"]
path = "/".join(path_parts)
print(path) # Output: home/user/docs
⬟〰️⬟〰️⬟〰️⬟〰️⬟
ادامه در پست بعد 👇
⭐️ ۷. startswith() و endswith(): بررسی ابتدا و انتهای رشته
این متدها چک میکنن که رشته با یه متن خاص شروع یا تموم میشه.
text = "Python is cool"
print(text.startswith("Py")) # Output: True
print(text.endswith("cool")) # Output: True
◾️ مثال کاربردی: اعتبارسنجی فرمت فایل:
filename = "document.pdf"
if filename.endswith(".pdf"):
print("This is a PDF file!") # Output: This is a PDF file!
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۸. count(): شمردن تعداد یه زیررشته
این متد تعداد دفعاتی که یه زیررشته توی رشته ظاهر شده رو برمیگردونه.
text = "banana"
print(text.count("a")) # Output: 3
◾️ مثال کاربردی: شمردن کلمات تو جمله:
sentence = "I like to code and I like to learn"
print(sentence.count("like")) # Output: 2
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ ۹. isalpha(), isdigit(), isalnum(): بررسی نوع کاراکترها
این متدها نوع کاراکترهای رشته رو چک میکنن:
isalpha(): فقط حروف.
isdigit(): فقط اعداد.
isalnum(): حروف یا اعداد.
text1 = "Hello"
text2 = "123"
text3 = "Hello123"
print(text1.isalpha()) # Output: True
print(text2.isdigit()) # Output: True
print(text3.isalnum()) # Output: True
◾️ مثال کاربردی: اعتبارسنجی ورودی:
password = "Secure123"
if password.isalnum():
print("Password is valid!") # Output: Password is valid!
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ 10. capitalize(): بزرگ کردن حرف اول
این متد فقط حرف اول رشته رو بزرگ میکنه و بقیه رو کوچیک.
◾️ کاربرد: برای شروع جملات یا اسامی با حرف بزرگ.
text = "hello world"
print(text.capitalize()) # Output: Hello world
◾️ مثال کاربردی: اصلاح نام کاربر:
name = "alex smith"
print(name.capitalize()) # Output: Alex smith
⬟〰️⬟〰️⬟〰️⬟〰️⬟
⭐️ 11. title(): بزرگ کردن حرف اول هر کلمه
این متد حرف اول هر کلمه تو رشته رو بزرگ میکنه.
◾️ کاربرد: برای عناوین یا فرمتبندی نامها.
text = "python is fun"
print(text.title()) # Output: Python Is Fun
◾️ مثال کاربردی: ساخت عنوان برای مقاله:
article = "learning python for beginners"
print(article.title()) # Output: Learning Python For Beginners
حالا نوبت شماست! 🧑💻
برای تسلط روی این متدها، این تمرینها رو تست کنید:
🔶 یه برنامه بنویسید که یه رشته بگیره و همه حروفش رو بزرگ کنه، بعد فاصلههای اضافیش رو حذف کنه.
text = " hello world "
# Output: HELLO WORLD
🔷 یه رشته بگیره و تعداد "e"های داخلش رو بشمره.
text = "hello there"
# Output: 4
🔶 یه جمله رو به کلمات جدا کنه و با "-" به هم بچسبونه.
text = "Python is great"
# Output: Python-is-great
♦️ یه نکته آخر 💡
این متدها مثل ابزارهای جعبهابزارن! هر کدوم یه کار خاص میکنن، پس باهاشون بازی کنید و توی پروژههای کوچیک ازشون استفاده کنید (مثلاً ساخت یه فرم ورودی یا ویرایش متن). اگه سوالی دارید یا جایی گیر کردید، بپرسید تا باهم حلش کنیم! 💬
💯 @PythonForYou 🧑💻👩💻
🧑💻👩💻 ۱۵ تمرین باحال برای تسلط بر رشتهها در پایتون! 🚀
برای اینکه حسابی روی رشتهها استاد بشید، ۱۵ تا تمرین از آسون تا سخت براتون آماده کردم. نکته مهم: اسم تابعهای موردنیاز رو نگفتم! باید خودتون فکر کنید، مستندات پایتون رو بخونید یا توی اینترنت سرچ کنید تا روش مناسب رو پیدا کنید. اینجوری یادگیریتون عمیقتر میشه! 😎 هر تمرین رو تست کنید و جوابتون رو بفرستید تا باهم چک کنیم. آمادهاید؟ بریم!
🟢 تمرینهای سطح ساده (۱ تا ۵)
👈 اینا برای گرم کردن و یادگیری پایهان!
⁉️ بزرگ کردن حروف
یه رشته مثل "hello" بگیره و همه حروفش رو به حروف بزرگ تبدیل کنه.
text = "hello"
# Output: HELLO
------------------------------
⁉️ حذف فاصلههای اضافی
یه رشته مثل " hi there " بگیره و فاصلههای اضافی ابتدا و انتها رو حذف کنه.
text = " hi there "
# Output: hi there
------------------------------
⁉️ شمردن حرف خاص
تعداد حرف "a" رو توی رشته "banana" بشمرید.
text = "banana"
# Output: 3
------------------------------
⁉️ بررسی شروع رشته
چک کنید رشته "Python is fun" با "Py" شروع میشه یا نه.
text = "Python is fun"
# Output: True
------------------------------
⁉️ جایگزینی کلمه
تو رشته "I like coding" کلمه "coding" رو با "Python" عوض کنید.
text = "I like coding"
# Output: I like Python
------------------------------
🟡 تمرینهای سطح متوسط (۶ تا ۱۰)
اینجا باید چند تا روش رو ترکیب کنید!
⁉️ برعکس کردن رشته
یه رشته مثل "Hello" بگیره و کاراکترهاش رو برعکس کنه (بدون حلقه، فقط با یه روش رشتهای).
text = "Hello"
# Output: olleH
------------------------------
⁉️ جدا کردن کلمات
یه جمله مثل "Python is cool" بگیره و کلماتش رو به یه لیست تبدیل کنه.
text = "Python is cool"
# Output: ['Python', 'is', 'cool']
------------------------------
⁉️ چسبوندن کلمات
یه لیست مثل ["home", "user", "docs"] بگیره و یه رشته مثل "home/user/docs" بسازه.
parts = ["home", "user", "docs"]
# Output: home/user/docs
------------------------------
⁉️ پیام خوشامدگویی
یه پیام بسازید که اسم و سن کاربر رو توی یه جمله قشنگ نمایش بده (با روش قالببندی قدیمیتر).
name = "Alex"
age = 15
# Output: Hi, I’m Alex and I’m 15 years old!
------------------------------
⁉️ بررسی نوع کاراکترها
چک کنید آیا رشته "Secure123" فقط از حروف و اعداد تشکیل شده یا نه.
text = "Secure123"
# Output: True
------------------------------
🔴 تمرینهای سطح سخت (۱۱ تا ۱۵)
اینا چالشبرانگیزترن و نیاز به خلاقیت دارن!
⁉️ شمردن کلمات خاص
تعداد دفعاتی که کلمه "like" تو رشته "I like to code and I like to learn" ظاهر شده رو بشمرید.
sentence = "I like to code and I like to learn"
# Output: 2
------------------------------
⁉️ فرمتبندی عنوان
یه رشته مثل " learning python is fun " بگیره، حرف اول هر کلمه رو بزرگ کنه و فاصلههای اضافی رو حذف کنه.
text = " learning python is fun "
# Output: Learning Python Is Fun
------------------------------
⁉️ جایگزینی و پیدا کردن
تو رشته "Hello World, hello Python" همه "hello"ها رو (با حفظ بزرگی/کوچیکی) با "Hi" عوض کنید و جای اولین "Hi" رو پیدا کنید.
text = "Hello World, hello Python"
# Output: رشته جدید: Hi World, Hi Python
# Index Hi: 0
------------------------------
⁉️ اعتبارسنجی پیشرفته
چک کنید آیا یه رشته (مثل "document.pdf") با ".pdf" تموم میشه و فقط از حروف و اعداد تشکیل شده یا نه (بدون در نظر گرفتن نقطه و پسوند).
filename = "document.pdf"
# Output: PDF file and alphanumeric: False
------------------------------
⁉️ چک کردن پالیندروم
چک کنید آیا یه رشته (مثل "Radar") پالیندروم (خوانده شده از چپ و راست یکسانه) هست یا نه. همه حروف رو کوچیک کنید و فاصلهها رو نادیده بگیرید.
text = "Radar"
# Output: True (چون radar = radar)
------------------------------
نکات برای موفقیت 🏆
🔻 برای پیدا کردن روش مناسب، توی مستندات پایتون (مثل docs.python.org) یا گوگل سرچ کنید (مثلاً "how to reverse a string in Python").
🔻 هر تمرین رو تو ویرایشگر پایتون تست کنید و خروجی رو چک کنید.
🔻 اگه خطایی گرفتید، متن خطا رو بخونید تا بفهمید مشکل کجاست.
🔻 برای تمرینهای سخت، اول با کاغذ منطق برنامه رو بنویسید.
🔻 جوابهاتون رو ارسال کنید تا باهم مرور کنیم! 😄
یه توصیه آخر 💡
این تمرینها مثل یه بازی پلهپلهان! از آسون شروع کنید و کمکم به سخت برسید. اگه جایی گیر کردید، از متدهای رشتهها (مثل اونایی که برای تغییر حروف، برش، یا قالببندی استفاده میشن) کمک بگیرید. منتظر کدهای باحالتون هستیم! 💬
💯 @PythonForYou 🧑💻👩💻
✨ برعکس کردن ترتیب کلمات در یک رشته (نه خود حروف کلمات) با استفاده از استفاده از ()split و ()join
s = "Python For You"
reversed_words = ' '.join(s.split()[::-1])
print(reversed_words)
🟢 نحوه کار:
در گام اول
s.split()
رشته رو به یک لیست از کلمات تبدیل میکنه:
['Python', 'For', 'You']
در گام دوم
[::-1]
لیست رو معکوس میکنه:
['You', 'for', 'Python']
در گام سوم
' '.join(...)
با فاصله کلمات معکوسشده رو به یک رشته جدید تبدیل میکنه.
💯 @PythonForYou 🧑💻👩💻
⭐️ تبدیل کردن نیمی از حروف یک رشته به حروف بزرگ (uppercase) - چه نیمه اول، چه نیمه دوم
s = "hello"
i = len(s) // 2
res = s[:i].upper() + s[i:]
print(res)
—————————————————
🧠 تحلیل گامبهگام:
1️⃣
len(s) // 2:
محاسبهی اندیس وسط رشته.
برای "hello" که 5 حرف داره، len(s) // 2 = 2.
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
2️⃣
s[:i].upper():
نیمهی اول رشته تا اندیس وسط (اینجا "s[0:2] = "he) به حروف بزرگ تبدیل میشه: "HE".
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
3️⃣
s[i:]:
نیمهی دوم باقیمونده از رشته (اینجا "llo").
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
4️⃣
ترکیب دو بخش:
"HE" + "llo" = "HEllo"
💯 @PythonForYou 🧑💻👩💻
💥 حذف کاراکتر با اندیس مشخص (i-مین کاراکتر) از یک رشته
s = "Python For You"
i = 0
res = s[:i] + s[i+1:]
print(res)
—————————————————
برشها:
s[:9] → "Python Fo" (از اندیس 0 تا 8)
s[10:] → " You" (از اندیس 10 تا آخر)
💯 @PythonForYou 🧑💻👩💻
🟡 سطح متوسط (برای تثبیت مفاهیم پایهای input و رشتهها)
۱. ✍️ برنامهای بنویس که نام و نام خانوادگی کاربر را بگیرد و آن را بهصورت کامل در یک خط چاپ کند.
📌 ورودی: Ali و Rezaei
خروجی: Ali Rezaei
۲. ✍️ برنامهای بنویس که یک جمله از کاربر بگیرد و فقط طول (تعداد کاراکترهای) آن را چاپ کند.
۳. ✍️ برنامهای بنویس که نام کاربر را بگیرد و همهی حروف آن را با حروف بزرگ (uppercase) چاپ کند.
۴. ✍️ برنامهای بنویس که یک کلمه از کاربر بگیرد و آن را ۵ بار پشت سر هم چاپ کند.
📌 مثال: apple
خروجی: appleappleappleappleapple
✍️ برنامهای بنویس که نام و نام خانوادگی کاربر را بگیرد و فقط حرف اول هر کدام را نمایش دهد.
📌 مثال: Ali و Rezaei
خروجی: A R
💯 @PythonForYou 🧑💻👩💻
🟠 سطح سخت (ترکیب چند مفهوم ساده)
۱. ✍️ برنامهای بنویس که نام کاربر را گرفته و تعداد حروف آن را چاپ کند، سپس حروف آن را به صورت جدا با - چاپ کند.
📌 ورودی: sara
خروجی: 4 و s-a-r-a
۲. ✍️ برنامهای بنویس که از کاربر یک جمله بگیرد و فقط اولین و آخرین کاراکتر آن را چاپ کند.
📌 ورودی: hello
خروجی: h o
۳. ✍️ برنامهای بنویس که از کاربر یک رشته بگیرد و آن را برعکس چاپ کند.
📌 ورودی: hello
خروجی: olleh
۴. ✍️ برنامهای بنویس که نام کاربر را گرفته و فقط حروف زوج آن را چاپ کند.
📌 ورودی: sara
خروجی: s-r
۵. ✍️ برنامهای بنویس که یک جمله از کاربر بگیرد و تعداد فاصلههای خالی (space) داخل آن را بشمارد.
💯 @PythonForYou 🧑💻👩💻
🔴 سطح هوشمندانه (نیازمند دقت، درک بهتر رشتهها و تفکر دقیق)
۱. ✍️ برنامهای بنویس که از کاربر یک کلمه بگیرد و یک کلمهی جدید بسازد که فقط شامل اولین و آخرین حرف باشد.
📌 ورودی: banana
خروجی: ba
۲. ✍️ برنامهای بنویس که از کاربر یک جمله بگیرد و همهی فاصلهها را حذف کرده و فقط حروف را بچسباند.
📌 ورودی: I love Python
خروجی: IlovePython
۳. ✍️ برنامهای بنویس که دو کلمه از کاربر بگیرد و آنها را به صورت برعکس به هم بچسباند.
📌 ورودی: hello, world
خروجی: ollehdlrow
۴. ✍️ برنامهای بنویس که از کاربر نامی بگیرد و آن را بهصورت زیگزاگ چاپ کند.
📌 مثال: Ali
خروجی
A
L
i
۵. ✍️ برنامهای بنویس که از کاربر یک جمله بگیرد و بررسی کند چند بار حرف a در آن آمده است (با استفاده از .count() فقط).
📌 ورودی: banana apple
خروجی: 5
💯 @PythonForYou 🧑💻👩💻