"replace() argument 2 must be str, not builtin_function_or_method" hatası

kardiz = "igne"

for i in kardiz:
    if i == 'İ':
            kardiz = kardiz.replace('İ','i')
    elif i == 'i':
            kardiz = kardiz.replace('i','İ')
    else:
            kardiz = kardiz.replace(i, i.swapcase)

print(kardiz)   

Çıktısı:
TypeError Traceback (most recent call last)
in
** 7 kardiz = kardiz.replace(‘i’,‘İ’)**
** 8 else:**
----> 9 kardiz = kardiz.replace(i, i.swapcase)
** 10 **
** 11 print(kardiz)**

TypeError: replace() argument 2 must be str, not builtin_function_or_method

Fakat , Karakter Dizilerinin Metotları (Devamı) — Yazbel Python Belgeleri buradaki örneği;

kardiz = "istanbul"

for i in kardiz:
    if i == 'İ':
        kardiz = kardiz.replace('İ', 'i')
    elif i == 'i':
        kardiz = kardiz.replace('i', 'İ')
    else:
        kardiz = kardiz.replace(i, i.swapcase())

print(kardiz)

kopyala yapiştir yaptıgımda, çıktısı : istanbul çıkıyor.
aynı sekilde yazıyorum, tek fark, karakter dizisi. neden böyle bir hatayla karşılaşıyorum.

tek fark o değil… :slight_smile:

2 Beğeni

Oww anladim tsk ederim. Baska bir yerde de varmi yanlis yaptigim. Suan pc basinda degilim, deneme yapma firsatim yok

Yok zaten aynısı neden çalışmasın

sürpriz olsun. 3 yerde daha hata var.

edit : o şekil çalışmaz gibiydi ama çalıştı. yeniliklere açık olmak lazım

Nerede hatalar yaptim rica etsem belirtirmisin?

Duzelttim fakat, pydroidte deneyeyim dedim soyle bir hata verdi.

Traceback (most recent call last):
File “/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py”, line 31, in
start(fakepyfile,mainpyfile)
File “/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py”, line 30, in start
exec(open(mainpyfile).read(), main.dict)
File “”, line 1
= “igne”
^
SyntaxError: invalid syntax

[Program finished]

Eksik yapıştırmışsınız gibi görünüyor.
kardiz = "igne" kısmında kardiz eksik.