Giriş ve Değişkenler
Şimdi karmaşık bir programın zamanı geldi:
print("Dur!")
user_input = input("Kim var orda? ")
print("Geçebilirsin,", user_input)
Çalıştırdığımızda, ekranda aşağıdaki gibi bir şey göreceğiz:
Dur!
Kim var orda? Josh
Geçebilirsin, Josh
Not: Kodu F5 tuşuna basarak çalıştırdıktan sonra, python kabuğu yalnızca aşağıdaki çıktıyı verir:
Dur!
Kim var orda?
Python kabuğuna adınızı girmeniz ve çıktının geri kalanı için enter tuşuna basmanız gerekir.
Tabii ki programı çalıştırdığınızda, input()
ifadesi nedeniyle ekranınız biraz farklı görünecektir. Programı çalıştırdığınızda, adınızı yazmanız gerektiğini ve enter tuşuna nasıl bastığınızı fark etmişsinizdir (programı çalıştırdınız, değil mi?). Sonra program biraz daha metin ve adınızı yazdırdı. Bu bir girdi örneğidir. Program belirli bir noktaya ulaşır ve daha sonra kullanıcının programın daha sonra kullanabileceği bazı verileri kullanmasını bekler.
Tabii ki, bu bilgiyi koyacak bir yerimiz olmasaydı kullanıcıdan bilgi almak işe yaramazdı – işte değişkenlerin devreye girdiği yer de burası. Önceki programda user_input
isminde bir değişken vardı. Değişkenler, bazı veri parçasını depolayabilen birer kutu gibidir. Değişken örneklerini göstermek için aşağıdaki programa bakalım:
a = 123.4
b23 = 'Spam'
first_name = "Bill"
b = 432
c = a + b
print("a + b is",c)
print("first_name is",first_name)
print("Sorted Parts, After Midnight or",b23)
Çıktı aşağıdaki gibi olacak:
a + b is 555.4
first_name is Bill
Sorted Parts, After Midnight or Spam
Değişkenler verileri depolar. Yukarıdaki programdaki değişkenler a
, b23
, first_name
, b
ve c
‘dir. İki temel değişken türü dizeler ve sayılardır. Dizeler harf, sayı ve diğer karakter dizileridir. Bu örnekte b23
ve first_name
dizeleri depolayan değişkenlerdir. Spam
, Bill
, a+b is
, first_name is
ve Sorted Parts
, After Midnight or
bu programdaki dizelerdir. "
veya '
karakterleri ile çevrilirler. Diğer değişken türü sayılardır. Değişkenlerin bir değeri depolamak için kullanıldığını, tırnak işaretleri (” ve ‘) kullanmadıklarını unutmayın. Gerçek bir değer kullanmak istiyorsanız, tırnak işaretleri kullanmanız gerekir.
value1 == Pim
value2 == "Pim"
Her ikisi de aynı görünür, ancak python ilk değişkende depolanan değerin ikinci değişkende depolanan değerle aynı olup olmadığını denetler. İkincisinde Python, dizenin (gerçek P, i ve m harfleri) aynı olup olmadığını denetler
Atama
Tamam, değişken denen bu kutular ve değişkene girebilecek veriler var. Bilgisayar first_name = "Bill"
gibi bir satır görür ve “Bill
dizesini first_name
kutusuna (veya değişkene) koy” olarak okur. Daha sonra c = a + b
ifadesini görür ve ” a + b
toplamını yani 123.4 + 432555.4’ü c
değişkenine koy” olarak okur. İfadenin sağ tarafı (a+b) değerlendirilir ve sonuç sol taraftaki değişkende (c
) saklanır. Buna atama denir. Atamadaki eşittir işaretini (=) matematiksel anlamda “eşitlik” ile karıştırmamalısınız.
Değişken kullanımına başka bir örnek aşağıda verilmiştir:
a = 1
print(a)
a = a + 1
print(a)
a = a * 2
print(a)
Ve tabii ki çıktı da şöyle görünür:
1
2
4
Aynı değişken eşittir işaretinin her iki tarafında da görünse bile (örneğin, spam = spam), bilgisayar hala “Önce depolayacak verileri bul ve sonra verilerin nereye gittiğini öğren” olarak okur.
Bu bölümü bitirmeden önce bir program daha:
number = float(input("Type in a number: ")) integer = int(input("Type in an integer: ")) text = input("Type in a string: ") print("number =", number) print("number is a", type(number)) print("number * 2 =", number * 2) print("integer =", integer) print("integer is a", type(integer)) print("integer * 2 =", integer * 2) print("text =", text) print("text is a", type(text)) print("text * 2 =", text * 2)
Aldığımız çıktı şu olur:
Type in a number: 12.34 Type in an integer: -3 Type in a string: Hello number = 12.34 number is a <class 'float'> number * 2 = 24.68 integer = -3 integer is a <class 'int'> integer * 2 = -6 text = Hello text is a <class 'str'> text * 2 = HelloHello
Dikkat ederseniz, number
oluşturulurken float(input())
kullanıldı ve bu ondalık noktası olan bir sayı döndürdü. integer
değişkeni ise int(input())
ile oluşturuldu ve tam sayı döndürdü. Bir dize döndürmek için ise str(input())
kullanıldı. Kullanıcının ondalıklı sayı yazmasını istediğinizde, float(input())
, kullanıcının tamsayı kullanmasını istiyorsanız int(input())
, kullanıcının bir dize kullanmasını istiyorsanız da input()
‘u kullanabilirsiniz.
Programın ikinci yarısı, değişkenin ne tür olduğunu bildiren bir işlev kullanır – type()
. Sayılar, sırasıyla tamsayı ve kayan nokta (çoğunlukla ondalık sayılar için kullanılır) için int
veya float
döndürür. Metin dizeleri str
türündedir. Tamsayılar ve kayan sayılar matematiksel işlevler tarafından çalışılabilir, dizeler ise çalışamaz. Python bir sayıyı tamsayı ile çarptığında beklenen şey gerçekleşir. Ancak, bir dize tamsayı ile çarpıldığında, sonuç dizenin birden çok kopyasının üretilmesidir. ( text * 2 = HelloHello
)
Dizeleri içeren işlemler, sayılarla yapılan işlemlerden farklı sonuçlar üretirler. Ayrıca, bazı işlemler yalnızca sayılarla (hem tamsayılar hem de kayan nokta sayıları) çalışır ve bir dize kullanılırsa hata verir. Aşağıda, bu konuyu daha iyi göstermek için bazı örnekler verilmiştir.
>>> print("This" + " " + "is" + " joined.") This is joined. >>> print("Ha, " * 5) Ha, Ha, Ha, Ha, Ha, >>> print("Ha, " * 5 + "ha!") Ha, Ha, Ha, Ha, Ha, ha! >>> print(3 - 1) 2 >>> print("3" - "1") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str' >>>
Bazı dize işlemlerinin listesi aşağıdadır:
İşlem | Sembol | Örnek |
---|---|---|
Tekrarlama | * | "i" * 5 == "iiiii" |
Birleştirme | + | "Hello, " + "World!" == "Hello, World!" |
Örnekler
Rate_times.py
print("Input a rate and a distance")
rate = float(input("Rate: "))
distance = float(input("Distance: "))
time=(distance/ rate)
print("Time:", time)
Örnek çalıştırmalar:
Input a rate and a distance
Rate: 5
Distance: 10
Time: 2.0
Input a rate and a distance
Rate: 3.52
Distance: 45.6
Time: 12.9545454545
Area.py
# Bu program alan ve çevre hesaplar
print("Calculate information about a rectangle")
length = float(input("Length: "))
width = float(input("Width: "))
Perimeter=(2 * length + 2 * width)
print("Area:", length * width)
print("Perimeter:",Perimeter)
Örnek çalıştırmalar:
Calculate information about a rectangle
Length: 4
Width: 3
Area: 12.0
Perimeter: 14.0
Calculate information about a rectangle
Length: 2.53
Width: 5.2
Area: 13.156
Perimeter: 15.46
Temperature.py
# Bu program Fahrenheit'ı Celsius'a dönüştürür
fahr_temp = float(input("Fahrenheit temperature: "))
celc_temp = (fahr_temp - 32.0) *( 5.0 / 9.0)
print("Celsius temperature:", celc_temp)
Örnek çalıştırmalar:
Fahrenheit temperature: 32
Celsius temperature: 0.0
Fahrenheit temperature: -40
Celsius temperature: -40.0
Fahrenheit temperature: 212
Celsius temperature: 100.0
Fahrenheit temperature: 98.6
Celsius temperature: 37.0
Alıştırmalar
Kullanıcıdan 2 dize değişkeni ve 2 sayı değişkeni alan, ve bunları bir araya getiren (boşluk olmadan bir araya getiren) ve dizeleri görüntüleyen, sonra yeni bir satırdaki iki sayıyı çarpan bir program yazın.
Çözüm:
string1 = input('String 1: ')
string2 = input('String 2: ')
float1 = float(input('Number 1: '))
float2 = float(input('Number 2: '))
print(string1 + string2)
print(float1 * float2)