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 .