ana sayfa > Python > Windows Python 3.2′de bir Hata

Windows Python 3.2′de bir Hata

Pazartesi, 14 Mar 2011

Python geliştiricileri Python 3 serisini geliştirmeye devam ediyor. Bu doğrultuda bir süre önce Python’ın 3.2 sürümü de yayımlandı. Ancak bu sürümde, Windows kullanıcılarını etkileyen ciddi bir hata var. Windows’ta input() fonksiyonu karakter dizilerinin sonuna bir adet “\r” karakteri yerleştiriyor. Bunu şu şekilde doğrulayabilirsiniz:

isim = input("Herhangi bir şey: ")
 
print(repr(isim))

Bu kodları çalıştırdığınızda, örneğin input() fonksiyonuna cevap olarak “python” yazmışsanız çıktı şöyle görünecektir:

‘python\r’

Bildiğiniz gibi, Python’da “\r” karakteri bir kaçış dizisidir. Bu kaçış dizisinin bulunduğu noktada Python karakter dizisinin başına döner ve bu kaçış dizisinden sonra gelen bütün karakterler karakter dizisinin başında bulunan karakterlerin üzerine yazar. Yani:

>>> print("Merhaba\r Dünya!")
 
 Dünya!

İşte Python 3.2′deki input() fonksiyonu da karakter dizilerinin en sonuna bu işareti yerleştirdiği için tuhaf çıktılar verilecektir:

isim = input("Adınız: ")
 
print("Merhaba", isim, end="!\n")

Bu kodları çalıştırdığınızda şöyle bir çıktı elde edersiniz:

!erhaba isim

Gördüğünüz gibi, karakter dizisinin en sonuna yerleşmesi gereken “!” işareti en başa dönüp karakter dizisinin ilk harfinin üzerine yazdı…

NOT: IDLE bu hatadan etkilenmiyor.

Bu hata ile ilgili kayda şuradan ulaşabilirsiniz:
http://bugs.python.org/issue11272

Bu hatayla ilgili bir örnek (ve çözümü) için şu adresi inceleyebilirsiniz:
http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=24263

Python , ,

  1. frukoprof
    Salı, 13 Eyl 2011 zamanında 14:31 | #1

    Hocam ben 3.2.2 kullanıyorum ama o hatayı almıyorum.

  2. Salı, 13 Eyl 2011 zamanında 14:58 | #2

    O hata Python’ın 3.2.0 sürümü için geçerliydi. 3.2.1 sürümüyle birlikte bu hata da ortadan kalktı. http://www.istihza.com/blog/python-3-2-1.html/

  1. Perşembe, 23 Haz 2011 zamanında 12:04 | #1