manuel olarak durdurmak istememiz yada işin sonucunda bir hata almadan tamamen işlevsel ve bir sonu bulunan bir program için düşünecek olursak; while True yapısını basitçe anlamak gerekirse while bir döngü türüdür ve yanına gelen True değeri her zaman True çıktısı vermek için vardır, Yani while True yerine while 1<2 gibi bir ifade kullanılabilir, yapısı dışında neden sonsuz bir döngüye ihtiyacımız olsun diye sormuşsunuz, bir şeyi ne kadar yapacağınızı bilmiyorsunuz bu o an bir input içinden olabilir veya herhangi bir durumun kontrolünü yapıcaksınız, istediğiniz şartlar sağlandığında while True içerisinden break kullanarak çıkabilirsiniz, yani sayı belirtmeden başlattığınız bir döngü ve her durumda farklılık gösterebilecek şekilde istediğiniz şartlar sağlandığında döngüden çıkabilirsiniz (Bu sadece kullanım alanlarından bir tanesi) yani kısacası önceden sonucu ve tüm hareketleri tespit edilmemiş bir döngü oluşturuyorsunuz ve bu döngüden ne zaman çıkılacağını yada ne zaman ne yapılacağını siz belirleyebiliyorsunuz (aynı şeyi for döngüsü gibi döngülerdede yapmak mümkün) ufak bir kodla göstermek gerekirse (Çok Basit bir koddur ve sadece kullanım alanlarından biridir):
liste = []
while True:
girdi = input('Girdi>>')
if(girdi=='exit'):
break
liste.append(girdi)
# Döngü Bitimi Sonrasında Yapılacak İşlemler...
print(liste) # ve benzeri
Burada Boş Bir Liste oluşturuluyor ve kullanıcıdan bu listeyi dilediği gibi doldurması isteniyor, kullanıcı bu listeyi sonsuza kadar belli başlı string değerleriyle doldurabilir, ta ki 'exit' yazana kadar, eğer girdi olarak 'exit' girilirse döngüden çıkılır ve hiçbir durumda sonu bilinmeyen bir döngü istenen şartlar sağlandığı için bitmiş olur, bu durumdan sonra liste istenildiği gibi kullanılabilir, ayrıştırılabilir-yazdırılabilir veya kod/program ne için yazıldıysa ve görevi neyse o yönde ilerlemeye devam edebilir