byvector adlı üyeden alıntı: mesajı görüntüle
Merhaba arkadaşlar. Python ile yeni başladım. Girilen sayının basamak sayısını bulmaya çalışıyorum ancak yazdığım kod sürekli hata veriyor yada saçma sapan bir değer yazıyor. Kod aşağıdaki gibidir. Yardımcı olursanız çok sevinirim. Teşekkürler

sayi = int(input("Lütfen bir sayı giriniz... : "))
basamak = 0
while (sayi>0):
basamak += 1
sayi /= 10
print("Basamak sayısı... : {}".format(basamak))
Python 3 yazdığınızı varsayıyorum, bölme işleminde integer bölmesi yapmanız gerekiyordu:

number = int(input())
digits = 0

while number > 0:
	digits += 1
	number //= 10

print(digits)

SaidYildiz adlı üyeden alıntı: mesajı görüntüle
Hocam böyle basamak mı bulunur ben 1.000.000.000.000.000.000.000.000.000.000.000.000. 000.000.000.000.000.000 gibi bir sey yazarsam oraya 0dan baslayip bunu sayacak?

sayi = str(input("Lütfen bir sayı giriniz... : "))

basamak = len(sayi)

print("Basamak sayısı... : {}".format(basamak))
Yanılıyorsunuz, 0'dan başlayıp saymıyor yazılan kod, while döngüsü tam olarak basamak sayısı kadar dönmekte (O(log( n )) time complexity). Sizin önerdiğiniz çözümdeki gereksiz str dönüşümü (casting) de yapılmadığı için daha iyi (efficient) bi çözüm olduğunu söylemek de mümkün.