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

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

تابع upper()

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

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

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

Python
  1. print (name.upper())

خروجی:

Code
  1. SAEED


تابع lower()

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

Python
  1. print (name.lower())

خروجی:

Code
  1. saeed


تابع title()

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

Python
  1. 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 :)')
  2. print (desc.title())

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

خروجی:

Code
  1. 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
  1. desc = ('hello everyone, my name is saeed and i\'m glad to meet you there.')
  2. print (desc.capitalize())

خروجی:

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

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

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

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

خروجی:

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

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

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

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

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

Python
  1. var1 = ('the first sentence. ')
  2. var2 = ('the second one. ')
  3. var3 = ('the last one.')
  4. sentence = var1.capitalize()+var2.capitalize()+var3.capitalize()
  5. print (sentence)

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

خروجی:

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

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

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

خروجی:

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