Belajar Transformasi Angka, Karakter dan String di Python

Transformasi angka

Menambahkan awalan 0 pada angka

Misalnya untuk nomor nota atau nomor antrian, Anda akan menemui kebutuhan menambahkan awalan 0 (0001 untuk angka 1, 0101 untuk angka 101, dan sebagainya). Anda dapat menggunakan fungsi zfill(). Catatannya adalah angka harus dikonversi ke string terlebih dahulu:


  1. x=1

  2. type(x)


Output:
<type 'int'>


  1. str(x).zfill(5)


Output:
'00001'

Transformasi karakter dan string
Metode upper() dan lower() dari String (dan karakter)

Method upper() dan lower() adalah metode konversi untuk membuat seluruh karakter dalam string menjadi kapital (upper) atau huruf kecil (lower). Jika terdapat karakter non huruf yang tidak memiliki opsi kapital, maka karakter tersebut tidak diubah.
Contoh:


  1. p = 'Hello world!'

  2. p = p.upper()

  3. p


Output:
'HELLO WORLD!'


  1. p = p.lower()

  2. p


Output:
'hello world!'
Berbeda dengan fungsi sort() yang mengubah variabel secara langsung, lower() dan upper() akan mengembalikan string baru. Sehingga Anda perlu menampungnya dalam variabel.
upper() dan lower() umumnya digunakan untuk memiliki perbandingan yang bersifat case-insensitive. ‘Dicoding’, ‘DIcoding’, atau ‘DICODING’ tidak sama satu dengan lainnya, namun Anda bisa memastikan karakternya sama jika Anda menggunakan upper() atau lower() saat membandingkan:
Cobalah menjalankan kode berikut:


  1. feeling = input('How are you?')

  2. if feeling.lower() == 'great':

  3.     print('I feel great too.')

  4. else:

  5.     print('I hope the rest of your day is good.')



isupper() dan islower()

Sementara isupper() dan islower() akan mengembalikan nilai boolean jika string yang dimaksud memiliki satu karakter dan seluruhnya kapital atau seluruhnya huruf kecil. Jika syarat tidak terpenuhi, maka fungsi/method akan mengembalikan nilai false. Contoh:


  1. p = 'Hello world!'

  2. p.islower()


Output:
False


  1. p.isupper()


Output:
False


  1. 'HELLO'.isupper()


Output:
True


  1. 'abc12345'.islower()


Output:
True


  1. '12345'.islower()


Output:
False


  1. '12345'.isupper()


Output:
False
Karena fungsi upper() dan lower() mengembalikan string, maka Anda dapat melakukan operasi pada hasil operasinya (chain of method), contohnya:


  1. print('Hello'.upper())

  2. print('Hello'.upper().lower())

  3. print('Hello'.upper().lower().upper())

  4. print('HELLO'.lower())

  5. print('HELLO'.lower().islower())


Output:
'HELLO'
'hello'
'HELLO'
'hello'
True

Metode isX dari String untuk Pengecekan

Selain islower() and isupper(), terdapat beberapa metode lain yang dapat digunakan untuk memeriksa isi dari string. Semua method berikut mengembalikan nilai boolean:
  • isalpha() mengembalikan True jika string berisi hanya huruf dan tidak kosong.
  • isalnum() mengembalikan True jika string berisi hanya huruf atau angka, dan tidak kosong.
  • isdecimal() mengembalikan True jika string berisi hanya angka/numerik dan tidak kosong.
  • isspace() mengembalikan True jika string berisi hanya spasi, tab, newline, atau whitespaces lainnya dan tidak kosong.
  • istitle() mengembalikan True jika string berisi kata yang diawali huruf kapital dan dilanjutkan dengan huruf kecil seterusnya.
Contoh:


  1. 'hello'.isalpha()


Output:
True


  1. 'hello123'.isalpha()


Output:
False


  1. 'hello123'.isalnum()


Output:
True


  1. 'hello'.isalnum()


Output:
True


  1. '123'.isdecimal()


Output:
True


  1. '    '.isspace()


Output:
True


  1. 'This Is Title Case'.istitle()


Output:
True


  1. 'This Is Title Case 123'.istitle()


Output:
True


  1. 'This Is not Title Case'.istitle()


Output:
False


  1. 'This Is NOT Title Case Either'.istitle()


Output:
False
Metode isX akan membantu misalnya dalam validasi input user. Anda bisa mencobanya dengan contoh berikut. Bukalah file baru pada notepad atau IDE, dan simpan sebagai validateInput.py


  1. while True:

  2.     print('Enter your age:')

  3.     age = input()

  4.     if age.isdecimal():

  5.         break

  6.     print('Please enter a number for your age.')

  7. while True:

  8.     print('Select a new password (letters and numbers only):')

  9.     password = input()

  10.     if password.isalnum():

  11.         break

  12.     print('Passwords can only have letters and numbers.')


Pada perulangan while yang pertama, program akan meminta usia pengguna. Jika valid, maka program akan berlanjut ke perulangan while kedua yang meminta password dengan spesifikasi alphanumeric (angka dan huruf). Ketika dijalankan akan seperti berikut:
Output:
Enter your age:
forty two
Please enter a number for your age.
Enter your age:
42
Select a new password (letters and numbers only):
secr3t!
Passwords can only have letters and numbers.
Select a new password (letters and numbers only):
Secr3t
Dengan cukup memanggil isdecimal() dan isalnum(), Anda dapat menyingkat waktu untuk melakukan validasi input user.

Metode startswith() dan endswith() dari String

Fungsi startswith() dan endswith() akan mengembalikan nilai True berdasarkan nilai awalan atau akhiran string. Contohnya sebagai berikut:


  1. 'Hello world!'.startswith('Hello')


Output:
True


  1. 'Hello world!'.endswith('world!')


Output:
True


  1. 'abc123'.startswith('abcdef')


Output:
False


  1. 'abc123'.endswith('12')


Output:
False


  1. 'Hello world!'.startswith('Hello world!')


Output:
True


  1. 'Hello world!'.endswith('Hello world!')


Output:
True
Fungsi/method ini akan sangat efisien jika Anda hanya perlu membandingkan awal atau akhir string, tanpa perlu melakukan splitting dan menggunakan statement perbandingan sama dengan (==).

Metode join() dan split() dari String

Fungsi join() berguna saat Anda memiliki sejumlah string yang perlu digabungkan. Contohnya sebagai berikut:


  1. ', '.join(['cats', 'rats', 'bats'])


Output:
'cats, rats, bats'


  1. ' '.join(['My', 'name', 'is', 'Simon'])


Output:
'My name is Simon'


  1. 'ABC'.join(['My', 'name', 'is', 'Simon'])


Output:
'MyABCnameABCisABCSimon'
Perhatikan bahwa string yang dioperasi dengan fungsi join() akan ditambahkan/disisipkan di antara setiap parameter/argument. Misalnya koma pada ‘cats, rats, bats’. Sebaliknya metode split() memisahkan substring berdasarkan delimiter tertentu (defaultnya adalah whitespace - spasi, tab, atau newline):


  1. 'My name is Simon'.split()


Output:
['My', 'name', 'is', 'Simon']
Anda dapat mengubah parameter split (delimiter) seperti berikut:


  1. 'MyABCnameABCisABCSimon'.split('ABC')


Output:
['My', 'name', 'is', 'Simon']


  1. 'My name is Simon'.split('m')


Output:
['My na', 'e is Si', 'on']
Salah satu penggunaan paling sering dari split() adalah memisahkan setiap baris pada string multiline:


  1. a = '''Dear Alice,

  2. How have you been? I am fine.

  3. There is a container in the fridge

  4. that is labeled "Milk Experiment".

  5. Please do not drink it.

  6. Sincerely,

  7. Bob'''

  8. a.split('\n')


Output:
['Dear Alice,',
'How have you been? I am fine.',
'There is a container in the fridge',
'that is labeled "Milk Experiment".', '',
'Please do not drink it.',
'Sincerely,',
'Bob']

Teks rata kanan/kiri/tengah dengan rjust(), ljust(), dan center()

Anda dapat merapikan pencetakan teks di layar dengan rjust(), ljust() atau center(). rjust() dan ljust() akan menambahkan spasi pada string untuk membuatnya sesuai (misalnya rata kiri atau rata kanan). Argumennya berupa integer yang merupakan panjang teks secara keseluruhan (bukan jumlah spasi yang ditambahkan):


  1. 'Hello'.rjust(10)


Output:
'     Hello'


  1. 'Hello'.rjust(20)


Output:
'               Hello'


  1. 'Hello World'.rjust(20)


Output:
'         Hello World'


  1. 'Hello'.ljust(10)


Output:
'Hello     '
Contohnya: 'Hello'.rjust(10) dapat diartikan sebagai kita ingin menuliskan Hello dalam mode rata kanan dengan total panjang string 10. Karena panjang ‘Hello’ adalah 5 karakter, maka 5 spasi akan ditambahkan di sebelah kiri. Selain spasi, Anda juga bisa menambahkan karakter lain dengan mengisikan parameter kedua pada fungsi rjust() atau ljust():


  1. 'Hello'.rjust(20, '*')


Output:
'***************Hello'


  1. 'Hello'.ljust(20, '-')


Output:
'Hello---------------'
Metode center() seperti namanya akan membuat teks Anda rata tengah:


  1. 'Hello'.center(20)


Output:
'       Hello       '


  1. 'Hello'.center(20, '=')


Output:
'=======Hello========'
Jika Anda memprogram aplikasi berbasis konsol (CLI), maka fungsi-fungsi di atas akan sangat berguna saat membuat tabulasi/tabel.

Hapus Whitespace dengan strip(), rstrip(), dan lstrip()

Saat Anda menerima string sebagai parameter, seringkali masih terdapat karakter whitespace (spasi, tab, dan newline) di bagian awal dan atau akhir string yang dimaksud. Metode strip() akan menghapus whitespace pada bagian awal atau akhir string. lstrip() dan rstrip() akan menghapus sesuai dengan namanya, awal saja atau akhir saja:


  1. spam = '    Hello World     '

  2. spam.strip()


Output:
'Hello World'


  1. spam.lstrip()


Output:
'Hello World '


  1. spam.rstrip()


Output:
'    Hello World'
Anda juga bisa menentukan mana karakter atau bagian yang ingin dihilangkan, misalnya:


  1. spam = 'SpamSpamBaconSpamEggsSpamSpam'

  2. spam.strip('ampS')


Output:
'BaconSpamEggs'
Saat mengirimkan ‘ampS’ sebagai argumen strip, maka Python akan menghapus setiap huruf a, m, p dan S kapital dari string yang dioperasikan. Urutan untuk parameter ini tidak berpengaruh, sehingga strip('ampS') akan berlaku sama dengan ('mapS') atau strip('Spam').

Mengganti string/substring dengan replace()

replace() adalah satu fungsi python yang mengembalikan string baru dalam kondisi substring telah tergantikan dengan parameter yang dimasukkan:


  1. string = "geeks for geeks geeks geeks geeks"

  2. print(string.replace("geeks", "Geeks"))


Output:
Geeks for Geeks Geeks Geeks Geeks
Parameter ketiga pada replace dapat diisi jumlah substring yang ingin diganti.


  1. string = "geeks for geeks geeks geeks geeks"

  2. print(string.replace("geeks", "GeeksforGeeks", 3))


Output:
GeeksforGeeks for GeeksforGeeks GeeksforGeeks geeks geeks

*

Post a Comment (0)
Previous Post Next Post