Python’da bir sayının tam sayı mı yoksa ondalık sayı mı olduğunu belirleme

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.

Copied title and URL