Merhabalar, programcilikta cok ama cok yeniyim. Belki sorucagim konu gulunc gelebilir ama bulamadim.
Input fonksiyonuyla kullanicidan integer bir sayi alicagim ama kullanicinin string bir sey girdiginde lutfen sayi giriniz demesini istiyorum. Bunu nasil yapabilirim. Yani girisi sadece sayiyla sinirlandirmak istiyorum.
while True:
giris = input("Sayı girin:")
try:
# girdiyi sayıya çevirmeyi deniyoruz
# eğer girdi sayıysa, başarılı olacak ve biz de bunu sayi değişkenine aktaracağız
# ve sonra da döngümüzü bitireceğiz
# aksi takdirde except kısmına geçecek ve
# uyarı vereceğiz
sayi = int(giris)
break
except:
print("Lütfen sadece sayı girin")
print(sayi)
sayılar = "0123456789"
while True:
sayı = input("Bir sayı giriniz: ")
for i in sayı:
if i in sayılar:
print("Sayınız: ",sayı)
else:
print("Sadece sayı giriniz!")
yalnız, şöyle bir hata var. Sayı 1 rakamdan fazla olursa, rakam sayısı kadar ekrana “sayınız XXX” yazıyor. Şöyle olabilir
kontrol = True
sayilar = "0123456789"
while kontrol:
sayi = input("Bir sayı giriniz: ")
kontrol = False
for i in sayi:
if(i not in sayilar):
print("Sadece sayı giriniz!")
kontrol = True
break
print("Sayınız: {}".format(sayi))
Bu şekilde bir çıktıyı nereden aldınız acaba? Çünkü @ismailarilik dediği gibi böyle bir gömülü fonksiyon yok. isdigit() karakter dizilerinin bir metodu.
Ben, verdiğiniz örneği IDLE’da da .py uzantılı bir betik olarak da denedim fakat ikisinde de NameError aldım. Merak ettim şimdi?