Visual Studio Debug Modunda Anlamadığım Bir Olay ve Python Tip Dönüşümü Hakkında

Selam üstatlar. Tip dönüşümünde anlamadığım bir olay var mesela örnek ;
1 -

a = input("Birinci Sayıyı girin : ")
b = input("İkinci Sayıyı girin : ")
int(a)
int(b)
total = int(a + b)
print(total)
print(type(total))

type sorgulamasında sonuç bana int olarak geri dönüyor, fakat toplama işlemi yapmıyor sadece string birleştirme işlemi yapıyor.
Yani 1. sayıya 2, 2. sayıya 1 girsem direkt 21 yazıyor ekrana.
Mesela bunu

a = int(input("Birinci Sayıyı girin : "))
b = int(input("İkinci Sayıyı girin : "))
total = a +b 

Olarak yapsam sıkıntı yok, ama ilk yöntemde neden çevirmiyor? Sonradan zaten int ile dönüşüm yapmıyor muyum ?

  1. olarak bu sorunu anlamak için debug modunda çalıştırmak istedim, fakat “watch” kısmına bakın lütfen, orada yazanlar ne alaka ?

Umarım sorunumu anlatabilmişimdir bende tam anlatıp anlatamadığımdan emin değilim :slight_smile:

Merhaba.

int(a), a değişkenini etkilemez, sadece değer döndürür. Yani int(a) yazınca a değişkeninin türü değişmiyor, fonksiyon bize a değişkeninin int halini döndürüyor. Bu dönen değeri bir değişkene atayabilirsiniz, mesela:

a, b = int(a), int(b)
2 Beğeni

Cevabınız için çok teşekkür ederim. C# da mesela sonradan bunun gibi işlem yapılsa anında o değişken türü döner. Ama ne yalan söyliyeyim kafam karışmadı değil :slight_smile:

Üstadlar, 2. sorunuda tam olarak çözemesemde sanırım anladım. Bir önceki projeyi gösteriyor garip bir şekilde ama neden onu gösterdiğini anlamış değilim :slight_smile: Kaldırdım tamamen teşekkür ederim

C#'da degisken turleri statik, degismiyor.

Cast islemi de Python’inkiyle asagi yukari ayni; nasil bir fark olabilir, dusunemedim.

2 Beğeni

Demek istediğim şuydu aslında ;

        string degiskenTuru = "1";
        int farkliDegiskenTuru = 1;
        int islem = Convert.ToInt32(degiskenTuru) + farkliDegiskenTuru;
        Console.WriteLine("Değişken türü deger {0}, Farklı değişken türü değer {1}, toplam {2}", degiskenTuru, farkliDegiskenTuru, islem);

Ama evet cidden pek bir fark yokmuş