Durum=1 while durum==1 ne demek

basit bir python dökümanı var, orda

durum=1
while durum==1:
sayı= input(‘bir sayı girin:’)
print(‘girdiğiniz sayı:’, sayı)

böyle bir kod yazılmış…çıktısı da sürekli

bir sayı girin:3
girdiğiniz sayı:3
bir sayı girin:5
girdiğiniz sayı:5
bir sayı girin:4
girdiğiniz sayı:4
.
.
.
gbi… durumu 1 olarak yazmamızın anlamı nedir, while nasıl kullanılır anladım galiba ama durum=1 deyince noluyor ki onu anlayamıyorum, niye durum niye 1?

Kotu isimlendirme.

calismaya_devam_et = True
while calismaya_devam_et:
    ...

Olmasi lazimmis.

Tabi durum'un/calismaya_devam_et'in degerini degistiren bir kod olmadigi icin bu da mantiksiz. while True denilip sonsuz loop kullanilabilirmis.

1 Beğeni

Merhaba. “while” döngüsünde yanında verilen şart doğru olduğu sürece blok içerisi tekrar eder. Bahsettiğiniz kodda durum değişkeni 1 den farklı bir değer alamadığı için sonsuz döngüye girer ve sürekli sizden sayı girmenizi ister. Maksat sürekli sayı girdirmek ise şu yol daha pratik olur.

while True:
    sayı= input(‘bir sayı girin:’)
    print(‘girdiğiniz sayı:’, sayı)
1 Beğeni

koşul yalnızca bir sayı veya rakam olabilir mi ya da sayılardan oluşan alakasız bir şey olsa (mesela 164_000 gibi) o zaman blok içerisi yine de sonsuz döngüye girer mi? koşul için de değişken ismi oluşturmada olduğu gibi kurallar var mı? aşağıdaki gibi bir yazım sonsuz döngüye bir örnek olabilir mi mesela?

while 164_000;
sayı= input(‘bir sayı girin:’)
print(‘girdiğiniz sayı:’, sayı)

Bir değişken adı sayı ile başlayamaz. Yani değişenin adı 164_000 olamaz. Bir while döngüsünün koşulu bir sayı olabilir ve bu durumda while döngüsü while True gibi çalışır.

while 1: # = while True = while "Ali"
    sayı = input("bir sayı girin:")
    print("girdiğiniz sayı:", sayı)
1 Beğeni

Bence arkadaşımız değişkenden ziyade bir sayı olarak bunu yazmış, integer tanımlamalarında bu geçerli bir yazım şekli.

>>> sayı = 164_000
>>> sayı
164000

Evet, girer. Buradaki asıl olay değerin non-zero olması. Yani bool fonksiyonu ile birlikte kullanıldığında False sonucu vermeyen bütün değişkenler True’dur, False sonucu verenler de 0, [], 0.0, {}, (), '' gibi boş (uzunluğu sıfır olan) veya kendisi 0 olanlardır.

1 Beğeni

Bunu bilmiyordum, sağ olun :slight_smile:

2 Beğeni

verilen her cevaptan yeni birşey öğreniyorum, çünkü genelde tek kaynakta aynı konu birçok açıdan ele alınmıyor, bir konu başlığının birçok yönünü görebilmek için farklı yazarların farklı anlatımdan kitaplarını bitirmek gerekir ki bu bazen çok sıkıcı oluyor ama sizin gibi değerli arkadaşlar sayesinde birçok kitap karıştırmak zorunda kalmadan başka başka taraflarını öğrenmiş oluyorum konunun. hepinize çok teşekkür ederim.

Her turlu ifade olabilmekle beraber sadece boolean (True/False) olmasi mantikli cunku ikili bir karar veriyoruz: loop vucudunu calistir veya calistirma. Netekim verilen degerin bool fonksiyonu kullanilarak boolean’e cevriliyor olmasi lazim.

1 Beğeni