رشن | خدمات میزبانی وب

تغییر کاراکترها با توابع upper و lower و title و capitalize

تابع upper()

فرض کنید برنامه‌ی ما حاوی این کدهاست:

Python
name = input('Write Your Name Please: ')

و کاربر هم مثلا اسمش را saeed وارد می‌کند. حالا می‌خواهیم تمامی این حروف را به حروف بزرگ تبدیل کنیم. برای این کار باید از تابع upper() استفاده کنیم و به این صورت می‌شود:

Python
print(name.upper())

خروجی:

Code
SAEED


تابع lower()

حالا همان برنامه بالا را فرض کنید که از کاربر خروجی گرفتیم و این بار کاربر اسمش را SAEED وارد کرد. حالا می‌خواهیم کاراکترها را به حروف کوچک تبدیل کنیم. برای این کار باید از تابع lower() استفاده کنیم.

Python
print(name.lower())

خروجی:

Code
saeed

تابع title()

حالا در نظر بگیرید یک متنی داریم که می‌خواهیم حروف اول هر کلمه را به حرف بزرگ تبدیل کنیم. با پایتون با یک تابع خیلی راحت می‌توان این کار را کرد. متن زیر را در نظر بگیرید:

Python
desc = 'hello everyone, my name is saeed and i\'m glad to meet you there. let\'s learn python together in this website. be happy :)'
print(desc.title())

دقت کنید که چون من استرینگ را بین '' نوشتم، اگر وسط عبارت بخواهم از ' دیگری استفاده کنم باید حتما قبلش کاراکتر فرار یا \ قرار دهم تا کاراکتر بعدی را به عنوان کاراکتر بشناسد و نه به عنوان دستور یا سینتکس.

خروجی:

Code
Hello Everyone, My Name Is Saeed And I'M Glad To Meet You There. Let'S Learn Python Together In This Website. Be Happy :)

همان‌طور که در خروجی بالا می‌بینید، حروفی که بعد از apostrophe یا آپاستروف قرار می‌گیرند هم capital شده‌اند که این مطلوب ما نیست. رفع این مشکل را در مطلب رفع مشکل حرف بزرگ بعد از آپاستروف می‌توانید مطالعه کنید.

تابع capitalize()

همین عبارت بالا را در نظر بگیرید که فقط بخواهیم حرف اول کلمه اول جمله اول را به حرف بزرگ تبدیل کنیم، باز هم پایتون است که این کار را می‌کند با تابع capitalize.

Code
desc = 'hello everyone, my name is saeed and i\'m glad to meet you there.'
print(desc.capitalize())

خروجی:

Code
Hello everyone, my name is saeed and i'm glad to meet you there.

تابع capitalize به صورت دیفالت فقط حرف اول جمله اول را به حرف بزرگ تبدیل می‌کند و اگر استرینگ شما چند جمله‌ای باشد این مشکل را خواهید داشت.

مثال زیر را در نظر بگیرید:

Python
desc = 'hello, this is the first sentence. this is the second. that\'s the third. and it\'s the last one.'
print(desc.capitalize())

خروجی:

Code
Hello, this is the first sentence. this is the second. that's the third. and it's the last one.

برای رفع این مشکل می‌توانیم از دو راه ساده و پیچیده استفاده کنیم.

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

راه دوم هم استفاده از تابع split() و حلقه for است.

هر دو راه را این‌جا می‌نویسم.

Python
var1 = 'the first sentence. '
var2 = 'the second one. '
var3 = 'the last one.'
sentence = var1.capitalize()+var2.capitalize()+var3.capitalize()
print(sentence)

این راه ساده است که متغیرها را جداگانه بنویسیم و بعد concatenateشان کنیم و در متغیر جدیدی در حافظه آن را بریزیم که اسم این متغیر جدید را sentence گذاشته‌ایم.

یا هم به صورت منطقی‌تر به این صورت بنویسیم:

Python
var1 = 'the first sentence. '
var2 = 'the second one. '
var3 = 'the last one.'
sentence = var1 + var2 + var3
sentence = sentence.capitalize()
print(sentence)

خروجی:

Code
The first sentence. The second one. The last one.

راه بعدی هم استفاده از تابع split() و حلقه for می‌باشد که در این‌جا فقط راهش را می‌نویسیم و بعدا جداگانه این تابع و حلقه را توضیح می‌دهم.

Python
string = 'the first sentence. the second one. the last one'
sentence = string.split('.')
for i in sentence:
print(i.strip().capitalize()+'.',end='')

خروجی:

Code
The first sentence. The second one. The last one.

نظرات