Python - STR mi INT mi Kontrolü

Merhaba şimdi iki sorum var.

Birincisi, kullanıcıdan veri alırken sadece sayı girmesini nasıl sağlayabilirim?

int(input()) şeklinde sormuyorum. direk input() olarak başlamalı ve sadece sayı almalı.

ya da

İkincisi, kullanıcıdan veri alırken;

cash = input("Tutar = ")

burada cash’in float olup olmadığını kontrol etmek istiyorum çünkü kullanıcı bu kısımda sayı yerine str yazabilir ve ben uyarı vererek sayı girişi yapmasını isteyeceğim. TRY ve EXCEPT blokları ile denemeye çalıştım ama tam beceremedim.

Bana yardımcı olur musunuz?

type() kullanarak yapabilirsin

Mesela

a=1.4
print(type(a)==float)#true

Birinci sorunu anlamadım
Çünkü her türlü kullanıcıdan aldığın veriyi bir veri tipine donusturmelisin(eğer ekrana basma dışında bir işlem yapcaksan)

Kullanıcı string girişi yaparsa ne olacak?

Eğer int input ise hata verir ama type ile yaparsanız istediğinizi yapabilirsiniz

Mesela

if type(input()) == str:
     print("sayı gir")

input() her sekilde string donduruyor.

Denemelerini gorebilir miyiz? Ne olmadi?

cash = input("Tutar = ")

try:
    cash = float(cash)
except:
    if cash != "q":
else:

Böyle bir yapı kontrol için uygun mudur? Uygun olmadığını düşünüyorum çünkü hata veriyor bunu çalıştırdığım zaman.

while True:
	cash = input("Tutar = ")
	if cash == "q": break

	try:
		cash = float(cash)
		break
	except:
		print("sayi lazim sayi")

print(cash)

"""
Tutar = z
sayi lazim sayi
Tutar = x
sayi lazim sayi
Tutar = c
sayi lazim sayi
Tutar = v
sayi lazim sayi
Tutar = q
q

Press ENTER or type command to continue
Tutar = 3
3.0

Press ENTER or type command to continue
Tutar = 5
5.0
"""

Çok teşekkür ederim. Şimdi iyice kafama oturdu. Sağolun

if isinstance(var, str):
    # string

Arkadaş başka bir şey istemiş ama bu da konuyla alakalı.