Merhaba, Ufak Bir Yardim Istiyorum

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.

Döngü yardımıyla yapabilirsiniz

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)

isdigit() bir değerin sayısal mı değilmi kontrol eder.

> '1'.isdigit()
> >True
> 'A'.isdigit()
> >False

Bu şekilde de yapabilirsin. :slight_smile:


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))

Onu fark etmemişim. :slight_smile:

1 Beğeni

Herkese cok tesekkur ederim, daha cok yeniyim o yuzden bu sorumu maruz gorun. En kisa surede kendimi gelistirip cok farkli sorular sorucam :slight_smile:

def hata():
    while True:
        try:
            sayi=int(input("Sayı gir: "))
        except:
            hata()
            return
        if(sayi<0):
            print("Negatif sayı girildi.")

        elif sayi == 0:
            print("Sıfır girdin.")

        else:
            print("Pozitif sayı girildi.")

hata()

Bu isdigit() fonksiyonun kullanımı yanlış.
Şu şekilde olmalı.

>>> c = 23
>>> isdigit(c, int)
True
>>> x = "2"
>>> isdigit(x, int)
False

Üstelik bildiğim kadarıyla isdigit()bir metod değil fonksiyon.
Yanlışım varsa düzeltebilirsiniz.
Kolay gelsin

Python’da isdigit isminde bir gömülü fonksiyon yok. Ancak karakter dizilerinin bu isimde bir metodu var.

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?

Pardon yaa Ben bunu isinstance()ile karıştırmışım :blush: Kusura bakmayın

bkz. Fırat ÖZGÜL python3 pdf s. 579

inputlar sonuç olarak bir karekter dizisi döndürür. isdigit() de rakamsal değer durumunu sorgular.
isalpha() da alfabetik olmasını sorgular .