Little boy questioned his mother, he asked what he can be in the future..with a sad smile, she tells him he can be anything he wants to be.... Boy said he’d become (an) astronaut and fly out into space crews around the universe he wanted to see the stars and also see other planets in outer space------------- "Why don’t we just keep dreaming, let’s keep our mind with dream and faith, as long as we wish we can make it come true, how old you are never forget your dream and keep dreaming "

Sunday 9 December 2018

Python : String Formatting


String Formatting atau Pemformatan string memungkinkan kita menyuntikkan item ke dalam string daripada kita mencoba menggabungkan string menggunakan koma atau string concatenation. 
Sebagai gambaran, perbandingannya seperti ini :
Nama = 'Budi'
Umur = 25

'Nama saya '+Nama+', umur saya sekarang '+str(Umur)+' Tahun.'  # concatenation

f'Nama saya {Nama}, umur saya sekarang {Umur} Tahun'          # string formatting

Ada tiga cara untuk melakukan pemformatan string.
  • Metode lama menggunakan placeholder menggunakan karakter '%' (modulo)
  • Teknik yang ditingkatkan menggunakan metode string .format ().
  • Metode terbaru, diperkenalkan dengan Python 3.6, menggunakan string literal yang diformat, disebut f-string.


String Formatting dengan placeholder

Anda dapat menggunakan karakter '%s' untuk menyuntikkan tipe data string ke dalam fungsi print(). Karakter '%' disebut sebagai "operator pemformatan string".
contoh :
print('Nama saya %s, umur saya sekarang %s Tahun' % ('Budi','25'))

atau bisa dengan menempatkan nama variable

nama, umur ='Budi', '25'

print('Nama saya %s, umur saya sekarang %s Tahun' % (nama,umur))
Operator '%s' mengubah tipe data apapun menjadi string, termasuk bilangan bulat dan decimal. Operator '%d' mengubah angka menjadi bilangan bulat. Perhatikan perbedaannya di bawah ini:
print('Nama saya Budi, umur saya sekarang %s Tahun' % 2.5) 
# Nama saya Budi, umur saya sekarang 2.5 Tahun
print('Nama saya Budi, umur saya sekarang %d Tahun' % 2.5) 
# Nama saya Budi, umur saya sekarang 2 Tahun

Padding dan Precision of Floating Point Numbers
Angka untuk floating point menggunakan format '%5.2f'. Di sini, 5 akan menjadi jumlah minimum karakter yang harus ada dalam string jika nomor tidak sebanyak digit maka akan diisi spasi, dan .2f berarti berapa banyak angka yang ditampilkan melewati titik desimal. Mari kita lihat beberapa contoh:
print('Nilai pi lingkaran adalah %5.2f' % 3.14159) # Nilai pi lingkaran adalah  3.14 
print('Nilai pi lingkaran adalah %1.0f' % 3.14159) # Nilai pi lingkaran adalah 3


String Formatting dengan .format()

Cara yang lebih baik untuk memformat string adalah dengan metode string .format(). Sintaksnya adalah:

nama, umur ='Budi', '25'

print('Nama saya {}, umur saya sekarang {} Tahun'.format(nama,umur)) 

Memasukan string berdasarkan index position
print('Nama saya {0}, umur saya sekarang {1} Tahun'.format('Budi','25')) # Nama saya Budi, umur saya sekarang 25 Tahun

Bisa juga seperti ini
print('Nama saya {nama}, umur saya sekarang {umur} Tahun'.format(nama='budi',umur='25'))

Float number formatting
Hampir sama dengan placeholder pada .format() seperti ini :
print('Nilai pi lingkaran adalah {0:5.2f}'.format(pi)) # Nilai pi lingkaran adalah  3.14

Alignment, padding and precision dengan .format()
Dalam kurung kurawal kita dapat menetapkan panjang bidang, rata kiri / kanan, parameter pembulatan dan banyak lagi
print('{0:8} | {1:9}'.format('Fruit', 'Quantity'))
print('{0:8} | {1:9}'.format('Apples', 3.))
print('{0:8} | {1:9}'.format('Oranges', 10)) 
#Output
Fruit    | Quantity 
Apples   |       3.0
Oranges  |        10

Secara default, .format () menggunakan rata teks ke kiri, angka ke kanan. kita dapat menggunakan opsi opsional <, ^, atau> untuk mengatur perataan kiri, tengah atau kanan:
print('{0:<8>8}'.format('Left','Center','Right'))
print('{0:<8>8}'.format(11,22,33))
#Output
Left     |  Center  |    Right
11       |    22    |       33

string formatting .format() terdokumentasi di https://docs.python.org/3/library/string.html#formatstrings

String formatting Literal (f-string)

Diperkenalkan pada Python 3.6, f-string menawarkan beberapa manfaat dibandingkan metode string .format() lama yang dijelaskan di atas. Kita dapat memasukan variabel luar langsung ke ke string daripada meneruskannya sebagai argumen melalui .format(var).
nama, umur ='Budi', '25'

print(f'Nama saya {nama}, umur saya sekarang {umur} Tahun') 

FLoat number formatting
Formatnya "Hasil: {value:{width}.{precision}}"
Contoh :
pi = 3.14159
print(f'Nilai pi lingkaran adalah {pi:{2}.{3}}') # Nilai pi lingkaran adalah 3.14

format literal terdokumentasi di https://docs.python.org/3/reference/lexical_analysis.html#f-strings

2 comments:

  1. i found best learning course, which is adding my developing skills improve. This is the best decision i have taken to learn Azure Developer Associate. i can showoff my skills & knowledge to employer who want to take advantage of cloud technology & I'm becoming the few skilled people in a rising Industry.

    ReplyDelete