Python’da bir sayının tam sayı mı yoksa ondalık sayı mı olduğunu belirleyin.
Aşağıdaki durumlar örnek kodlarla açıklanmıştır.
- Bir sayının tamsayı mı yoksa kayan noktalı kayan nokta mı olduğunu belirler:
isinstance()
- Bir kayan nokta tipi numarasının bir tam sayı olup olmadığını belirler (0 ondalık basamak):
float.is_integer()
- Bir sayı dizisinin tam sayı olup olmadığını belirler
Bir ondalık sayının tamsayı ve ondalık değerlerini elde etmek için aşağıdaki makaleye bakın.
Bir dizenin tamsayı mı yoksa ondalık sayı mı olduğundan ziyade bir sayı (Çin rakamları vb. dahil) olup olmadığını belirleme hakkında bilgi için aşağıdaki makaleye bakın.
Bir sayının tam sayı mı yoksa kayan nokta türü mü olduğunu belirler:isinstance()
Bir nesnenin türü, yerleşik type() işleviyle elde edilebilir.
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Bu yerleşik işlev, bir nesnenin belirli bir türde olup olmadığını belirlemek için kullanılabilir. Bu, bir sayının tam sayı mı yoksa kayan nokta türü mü olduğunu belirlemek için kullanılabilir.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Bu durumda, yalnızca türü yargılar, bu nedenle bir kayan nokta türü değerinin bir tamsayı (ondalık noktası 0 olan) olup olmadığına karar veremez.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Bir kayan nokta tipi numarasının bir tam sayı olup olmadığını belirler (0 ondalık basamak):float.is_integer()
is_integer() yöntemi, değer bir tamsayıysa true, aksi takdirde false döndüren kayan nokta türü için sağlanır.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Örneğin, bir tamsayı için true döndüren bir fonksiyon aşağıdaki gibi tanımlanabilir. Öte yandan, bir string tipi false olur.
def is_integer_num(n):
if isinstance(n, int):
return True
if isinstance(n, float):
return n.is_integer()
return False
print(is_integer_num(100))
# True
print(is_integer_num(1.23))
# False
print(is_integer_num(100.0))
# True
print(is_integer_num('100'))
# False
Bir sayı dizisinin tam sayı olup olmadığını belirler
Bir tamsayı basamak dizisinin de bir tamsayı olduğunu belirlemek istiyorsanız, aşağıdaki işlevler mümkündür.
float() ile şamandıra tipine dönüştürülebilen değerler için, is_integer() metodu, float’a dönüştürmeden sonra uygulanır ve sonuç döndürülür.
def is_integer(n):
try:
float(n)
except ValueError:
return False
else:
return float(n).is_integer()
print(is_integer(100))
# True
print(is_integer(100.0))
# True
print(is_integer(1.23))
# False
print(is_integer('100'))
# True
print(is_integer('100.0'))
# True
print(is_integer('1.23'))
# False
print(is_integer('string'))
# False
Dizeleri sayılara dönüştürmeyle ilgili ayrıntılar için aşağıdaki makaleye bakın.
Bir dizenin sayı olup olmadığını (Çin rakamları vb. dahil) belirlemeyle ilgili ayrıntılar için aşağıdaki makaleye bakın.