manipulasi string di python

Dengan output yang sama, saya bingung bagaimana manipulasi string dengan cara yang kedua? Terimakasih

    #step 1

    text0 = 'Hi {name}, welcome to my {page}';
    print(text0.format(name='xxx', page='first page'))
    #output = Hi xxx, welcome to my first page

    #step 2

    text = 'Hi [name], welcome to my [page]';
    data = {'name': 'xxx', 'page': 'first page'}

    def render(data, text):
       for x in text:
          if x == "[name]":
             result += data[0];
          elif x == "[page]":
             result += data[1];
          else:
             result += x;
       return result
    print(render(data, text))
    #output = Hi xxx, welcome to my first page
avatar ameliac
@ameliac

104 Kontribusi 27 Poin

Diperbarui 2 tahun yang lalu

Tanggapan

bisa diperjelas pertanyaanya? sekarang cara kedua tidak berhasil? atau apa maksudnya yang ditanyakan?

1 Jawaban:

<div>Saat string dimasukkan ke dalam for loop, maka for loop akan memeriksa karakter per karakter dari string tersebut. Yang saya pahami tujuan dari fungsi render adalah untuk menggantikan placeholder di dalam variabel 'text'. Sayangnya hal ini tidak bisa dilakukan dengan memakai for loop, karena penggunaan placeholder dalam string formatting yang memakai string.format() itu ketat.&nbsp;<br><br>Jika ingin memakai fungsi sebenarnya bisa dilakukan, tapi kemungkinannya kode yang dihasilkan terlalu hard coded.&nbsp;<br><br></div><pre>text = 'Hi {name}, welcome to my {page}' data = {'name': 'xxx', 'page': 'first page'}

def render(text, data): # Penggunaan string.format() result = text.format(name = data['name'], page = data['page']) print(result)</pre><div><br>Cara lain yang lebih ringkas adalah dengan memanfaatkan f-string:<br><br></div><pre>new_text = f"Hi {data['name']}, welcome to my {data['page']}"

Karena 'data' adalah dictionary, bisa kita tarik langsung nilainya dengan cara data['nama_key']

print(new_text)

Hi xxx, welcome to my first page'Hi xxx, welcome to my first page''Hi xxx, welcome to my first page''Hi xxx, welcome to my first page'</pre><div><br><br></div>

avatar Yafethtb
@Yafethtb

1 Kontribusi 1 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban