Bahasa Python - String Bagian II

String pada python tidak dapat diubah, misalnya anda ingin menggunakan operator di sisi kiri penugasan, dengan maksud mengubah karakter dalam string. Sebagai contoh:

greeting = 'halo dunia'
greeting[0] = 'J'
Traceback (most recent call last):
  File "main.py", line 4, in <module>
    greeting[0] = 'J'
TypeError: 'str' object does not support item assignment

“Objek” dalam hal ini adalah string dan “item” adalah karakter yang Anda coba tetapkan. Untuk saat ini, objek adalah sama dengan nilai, tetapi kami akan menyempurnakan definisi itu nanti. Item adalah salah satu nilai dalam suatu urutan. Alasan kesalahannya adalah string tidak dapat diubah, yang artinya Anda tidak dapat mengubah string yang ada. Yang terbaik yang dapat Anda lakukan adalah membuat string baru yang merupakan variasi pada aslinya:

greeting = 'halo dunia'
new_greeting = 'K' + greeting[1:]
print(new_greeting)

Kalo dunia

Contoh ini menggabungkan huruf pertama baru ke sepotong sapaan. Ini tidak berpengaruh pada string asli.

Kita beralih ke string yang membahas Looping and counting. Program berikut menghitung berapa kali huruf “a” muncul dalam string:

word = 'banana'
count = 0
for letter in word:
    if letter == 'a':
            count = count + 1
print(count)

Hasilnya adalah 3

Program ini menunjukkan pola perhitungan lain yang disebut counter. Hitungan variabel diinisialisasi ke 0 dan kemudian bertambah setiap kali “a” ditemukan. Saat pengulangan keluar, hitungan berisi hasil: jumlah total dari a.

Kata dalam adalah operator boolean yang mengambil dua string dan mengembalikan True jika yang pertama muncul sebagai substring di bagian kedua, maka disini fungsi in operator:

>>> 'a' in 'banana'
True
>>> 'K' in 'banana'
False


Pada python juga anda akan menemukan yang namanya string perbandingan atau string comparison. Operator perbandingan bekerja dengan string. Untuk melihat apakah dua string sama, misalnya

word = 'banana'
if word == 'banana':
    print('Benar, bananas.')
Benar, bananas.

Operasi perbandingan lainnya berguna untuk menempatkan kata-kata dalam urutan abjad:

word = 'banana'
if word < 'banana':
    print('Your word,' + word + ', datang sebelum banana.')
elif word > 'banana':
    print('Your word,' + word + ', datang sesudah banana.')
else:
    print('Benar, bananas.')

Benar, bananas.

Python tidak menangani huruf besar dan huruf kecil dengan cara yang sama seperti yang dilakukan orang. Semua huruf besar datang sebelum semua huruf kecil, jadi:

Your word, Apel, datang sebelum banana.

Cara umum untuk mengatasi masalah ini adalah mengonversi string ke format standar, seperti semua huruf kecil, sebelum melakukan perbandingan.

String adalah contoh objek Python. Objek berisi data (string aktual itu sendiri) dan metode, yang merupakan fungsi efektif yang dibangun ke dalam objek dan tersedia untuk setiap contoh objek. Python memiliki fungsi yang disebut dir yang berisi daftar metode yang tersedia untuk suatu objek.

Fungsi jenis menunjukkan jenis objek dan fungsi dir menunjukkan metode yang tersedia.

>>> stuff = 'Halo Dunia'
>>> type(stuff)
<class 'str'>
>>> dir(stuff)
['capitalize', 'casefold', 'center', 'count', 'encode',
'endswith' , 'expandtabs', 'find', 'format', 'format_map',
'index' , 'isalnum', 'isalpha', 'isdecimal', 'isdigit',
'isidentifier' , 'islower', 'isnumeric', 'isprintable',
'isspace' , 'istitle', 'isupper', 'join', 'ljust', 'lower',
'lstrip' , 'maketrans', 'partition', 'replace', 'rfind',
'rindex' , 'rjust', 'rpartition', 'rsplit', 'rstrip',
'split' , 'splitlines', 'startswith', 'strip', 'swapcase',
'title' , 'translate', 'upper', 'zfill']
>>> help(str.capitalize)

Help on method_descriptor:

capitalize(...)
    S.capitalize() -> str
Return a capitalized version of S, i.e. make the first character
have upper case and the rest lower case.
>>>

Sementara fungsi dir daftar metode, dan Anda dapat menggunakan bantuan untuk mendapatkan beberapa dokumentasi sederhana pada suatu metode, sumber yang lebih baik dari dokumentasi untuk metode string adalah https://docs.python.org/library/stdtypes.html#string- metode.

Memanggil metode mirip dengan memanggil fungsi (dibutuhkan argumen dan mengembalikan nilai) tetapi sintaksnya berbeda. Kita memanggil metode dengan menambahkan nama metode ke nama variabel menggunakan periode sebagai pemisah.

Alih-alih fungsi sintaks atas (kata), ia menggunakan sintaks metode word.upper ().

word = 'banana'
new_word = word.upper()
print(new_word)


BANANA

Bentuk dot notasi ini menentukan nama metode, upped, dan nama string untuk menerapkan metode ‘to’, ‘word’. Tanda kurung kosong menunjukkan bahwa metode ini tidak memerlukan argumen. Panggilan metode disebut ‘invocation’; dalam hal ini, kita akan mengatakan bahwa kita menggunakan kata ‘upper’. Misalnya, ada metode string bernama find yang mencari posisi satu string dalam string lain:



>>> word = 'banana'
>>> index = word.find('a')
>>> print(index)
1

Dalam contoh ini, kami meminta menemukan kata dan meneruskan huruf yang kita cari sebagai parameter. Metode find dapat menemukan substring dan karakter:

>>> word.find('na')
2

Ini bisa menjadi argumen kedua indeks di mana seharusnya dimulai:

>>> word.find('na', 3)
4

Satu tugas umum adalah menghapus spasi (spaces, tabs, atau newlines) dari awal dan akhir string menggunakan metode strip:

>>> line = ' Disinilah Kami '
>>> line.strip()
'Disinilah Kami'

Beberapa metode seperti startswith mengembalikan nilai boolean.

>>> line = 'Have a nice day'
>>> line.startswith('Have')
True
>>> line.startswith('h')
False

Anda akan mencatat bahwa startswith membutuhkan case untuk dicocokkan, jadi terkadang kita mengambil garis dan memetakan semuanya menjadi huruf kecil sebelum kita melakukan pengecekan menggunakan metode ‘lower’

>>> line = 'Have a nice day'
>>> line.startswith('h')
False
>>> line.lower()
'have a nice day'
>>> line.lower().startswith('h')
True

Pada contoh terakhir, metode ‘lower’ yang dipanggil dan kemudian kita menggunakan awalan untuk melihat apakah string huruf kecil yang dihasilkan dimulai dengan huruf “h”. Selama kita berhati-hati dengan ‘order’, kita dapat melakukan beberapa pemanggilan metode dalam satu ekspresi.

Ada metode string yang disebut count yang mirip dengan fungsi, lebih lengkapnya anda bisa merunjuk kesini https://docs.python.org/library/stdtypes.html#string-methods

Terakhir kita membahas tentang Mengurai string atau parsing string.

Seringkali, kami ingin melihat string dan menemukan substring. Misalnya jika kami disajikan serangkaian baris yang diformat sebagai berikut:

Dari [email protected] uct.ac.za Sat Nov 10 09:14:16 2018

dan kami ingin menarik keluar hanya setengah bagian kedua dari alamat (yaitu, uct.ac.za) dari masing-masing baris, kita dapat melakukan ini dengan menggunakan metode find dan string slices. Pertama, kita akan menemukan posisi tanda-tanda di dalam string. Kemudian kita akan menemukan posisi ruang pertama setelah tanda-tanda. Dan kemudian kita akan menggunakan string slicing untuk mengekstrak bagian dari string yang kita cari.

>>> data = ' Dari [email protected] uct.ac.za Sat Nov 10 09:14:16 2018'
>>> atpos = data.find('@')
>>> print(atpos)
20
>>> sppos = data.find(' ',atpos)
>>> print(sppos)
21
>>> host = data[atpos+1:sppos]
>>> print(host)
uct.ac.

Kami menggunakan versi metode pencarian yang memungkinkan kami untuk menentukan posisi dalam string di mana kami ingin mencari untuk mulai mencari. Ketika kita ‘slice’, kita mengekstrak karakter dari “satu di luar ‘at sign’ sampai ‘up to’tetapi tidak termasuk karakter spasi”. Dokumentasi untuk metode pencarian tersedia di https://docs.python.org/library/stdtypes.html#string-methods.