معکوس کردن رشته در پایتون
معکوس کردن رشته یعنی نوشتن حرفهای آن از آخر به اول؛ مثلاً معکوس python میشود nohtyp. در پایتون میتوانید با یک حلقه حرفها را یکییکی جلوی رشتهٔ جواب بگذارید، یا با برش [::-1] همین کار را در یک خط انجام دهید.
صورت سؤال
برنامهای بنویسید که یک خط متن را از ورودی بخواند و معکوس آن را چاپ کند.
برای تمرین، این کار را با یک حلقهٔ for انجام دهید و از برش [::-1] یا تابع reversed استفاده نکنید.
ورودی نمونه
python
خروجی نمونه
nohtyp
خودتان امتحان کنید
کد را در ویرایشگر زیر کامل کنید و اجرا کنید. ورودی نمونه در کادر ورودی آماده است و بعد از هر اجرا، خروجی شما با خروجی نمونه مقایسه میشود.
کد را اجرا کنید تا خروجی آن اینجا نمایش داده شود.
راهنمایی
یک رشتهٔ خالی بسازید و در حلقه، هر حرف را جلوی آن بگذارید، نه پشت آن. یعنی بهجای result + ch بنویسید ch + result.
جواب و توضیح
بهتر است جواب را بعد از امتحان کردن راه خودتان باز کنید.
نمایش جواب
text = input()
result = ""
for ch in text:
result = ch + result
print(result)این جواب چطور کار میکند؟
حلقهٔ for روی رشته حرفبهحرف جلو میرود. در هر دور، ch یکی از حرفهای text است، از اول به آخر.
نکتهٔ اصلی در عبارت ch + result است. هر حرف تازه جلوی حرفهای قبلی قرار میگیرد؛ پس حرف اول در انتها میماند و حرف آخر در ابتدا مینشیند. برای ورودی python، مقدار result بهترتیب p و yp و typ میشود و در پایان به nohtyp میرسد.
رشته در پایتون تغییرناپذیر است و هر بار که result = ch + result اجرا میشود، رشتهٔ تازهای ساخته میشود. برای متنهای کوتاه این اهمیتی ندارد، اما برای متنهای خیلی بلند روش برش سریعتر است.
راه دوم: برش با گام منفی
text = input() print(text[::-1])
برش [::-1] رشته را از آخر به اول میخواند و در کد واقعی رایجترین راه است. کوتاه و سریع است، اما در امتحان معمولاً راه حلقه را میخواهند تا روشن شود منطق کار را میدانید.
اشتباههای رایج
- مینویسند result = result + ch و همان رشتهٔ ورودی بدون تغییر چاپ میشود.
- میخواهند با text[i] = ... یک حرف رشته را عوض کنند و خطای TypeError میگیرند، چون رشته تغییرناپذیر است.
- در حلقهٔ while با اندیس، از len(text) شروع میکنند بهجای len(text) - 1 و به خطای IndexError میرسند.
تمرین بعدی
پایتون را قدمبهقدم یاد بگیرید
این تمرین یکی از تمرینهای پایتون با جواب دینا کد است. در دورهٔ پایتون از صفر هر مفهوم یک درس کوتاه دارد و تمرین هر درس با چند آزمون پنهان نمره میگیرد؛ درسهای اول رایگان است. برای امتحان کد آزاد هم اجرای آنلاین پایتون در دسترس است.