Kullanıcı girişini kabul etme
İpucu
Daha fazla ayrıntı için Metin ve resimler sekmesine bakın!
Programlar, onları kullanan kişilerle etkileşime geçince gerçekten güçlü hale gelir. Python yerleşik input() işlevi programınızı duraklatmanıza, kullanıcının bir şey yazmasını beklemenize ve bu bilgileri yakalamanıza olanak tanır.
input() kullanma
İşlevi input() soru istemi olarak düşünün. Python bu satıra ulaştığında, kullanıcı yanıtını alana kadar bekler ve kodun geri kalanıyla devam etmeden önce Enter tuşuna basar.
Yanıtlarını kaydetmek için bir değişken kullanarak "yakalamanız" gerekir:
favorite_color = input("What is your favorite color? ")
print("Oh, I love", favorite_color, "too!")
Bu kodda, favorite_color kullanıcının yanıtını yakalayan bir değişkendir. Kullanıcı Enter yazın Blue ve enter tuşuna basarsa çıkış şöyle olur:
What is your favorite color? Blue
Oh, I love Blue too!
Bu kodu adresinde çevrimiçi python yorumlayıcısında https://aka.ms/python-coderkendiniz çalıştırmayı deneyebilirsiniz.
İpucu
isteminin sonundaki boş alana dikkat edin: "What is your favorite color? ". Kullanıcı girişini kabul ederken, tırnak işaretlerinizi kapatmadan önce bir boşluk veya yeni satır ekleyin. Bunu yapmazsanız, kullanıcının yazması metninize doğrudan yapıştırılır ve şöyle dağınık görünür: What is your favorite color?Blue
Veri türleri hakkında hızlı bir sözcük
Daha ileri gitmeden önce, Python'daki her değerin bir veri türü olduğunu bilmenize yardımcı olur. Bu, Python ne tür bir değerle çalıştığını belirten bir etikettir. Örneğin, bazı yaygın veri türleri şunlardır:
-
Dize (
str): veya"25"gibi"Blue"tırnak içine alınmış metin. Bir sayı bile tırnak içinde olduğunda metne dönüşür. -
Tamsayı (
int): veya100gibi25tırnak işaretleri olmayan bir tamsayı. Python bunlarla matematik yapabilirsiniz.
Bu neden önemlidir? Python bu iki türe çok farklı davranır. Sayıları birlikte (25 + 1 eşittir 26) ekleyebilirsiniz, ancak metne sayı ekleyemezsiniz ("25" + 1 hataya neden olur).
Giriş her zaman metindir
Hatırlanması gereken temel bir kural, kullanıcı bir sayı bile olsa işlevin her zaman metin döndürmesidirinput(). Örneğin:
age = input("How old are you? ")
print("Next year you will be", age + 1)
Bu kodu çalıştırır ve yazarsanız 25, yazdırmasını 26bekleyebilirsiniz. Bunun yerine, Python kilitlenir ve konsolunuzda bir hata iletisi görüntüler:
TypeError: can only concatenate str (not "int") to str
metin olarak kilitlendiğinden age , üzerinde henüz matematik işlemleri gerçekleştiremezsiniz.
Bu hatayı okuma
Hatalar, kodda neyin yanlış gittiğinin ipuçlarıdır. Şimdi şu ipuçlarını ayıralım:
-
TypeError: Birbirine ait olmayan iki veri türünü karıştırmaya çalışıyorsunuz. -
can only concatenate str (not "int") to str: "Birleştir", metni birbirine yapıştırmak anlamına gelir.
Python diyor ki: "Bana "25" metnini verdin ve 1 sayısını ona yapıştırmamı istedin. Metni metne yapıştırabilirim, ancak matematik numarasını metne nasıl yapıştırabilirim bilmiyorum!"
Kullanıcınızın yanıtını metin tırnaklarının içine kilitlediğinden input() Python hesaplamanızı "25" + 1 olarak görür ve bu da imkansız bir matematik denklemidir.