Python-da ədədin tam və ya onluq olduğunu müəyyənləşdirin.
Aşağıdakı hallar nümunə kodlarla izah olunur.
- Ədədin int və ya üzən nöqtəli float olduğunu müəyyən edir:
isinstance()
- Float tipli nömrənin tam ədəd olub olmadığını müəyyən edir (0 onluq yer):
float.is_integer()
- Rəqəm sətirinin tam ədəd olub-olmadığını müəyyən edir
Onluq ədədin tam və onluq qiymətlərini əldə etmək üçün aşağıdakı məqaləyə baxın.
Sətin tam və ya onluq deyil, bir ədəd (o cümlədən Çin rəqəmləri və s.) olub-olmadığını müəyyən etmək üçün aşağıdakı məqaləyə baxın.
Ədədin tam və ya üzən nöqtə növü olduğunu müəyyən edir:isinstance()
Obyektin tipini daxili funksiya type() ilə əldə etmək olar.
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Bu daxili funksiya obyektin müəyyən bir növ olub olmadığını müəyyən etmək üçün istifadə edilə bilər. Bu, nömrənin tam və ya üzən nöqtə növü olduğunu müəyyən etmək üçün istifadə edilə bilər.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Bu halda, o, yalnız növü mühakimə edir, ona görə də float növü dəyərinin tam ədəd olub-olmadığını (0 onluq nöqtəsi ilə) və ya olmadığını mühakimə edə bilməz.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Float tipli nömrənin tam ədəd olub olmadığını müəyyən edir (0 onluq yer):float.is_integer()
is_integer() metodu float növü üçün nəzərdə tutulub, əgər dəyər tam ədəddirsə, doğru, əks halda isə false qaytarır.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Məsələn, tam ədəd üçün doğru qaytaran funksiya aşağıdakı kimi müəyyən edilə bilər. Digər tərəfdən, sətir tipi yalan olacaq.
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
Rəqəm sətirinin tam ədəd olub-olmadığını müəyyən edir
Tam rəqəmlər sətirinin də tam ədəd olduğunu müəyyən etmək istəyirsinizsə, aşağıdakı funksiyalar mümkündür.
float() ilə float tipinə çevrilə bilən dəyərlər üçün is_integer() metodu float-a çevrildikdən sonra tətbiq edilir və nəticə qaytarı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
Sətirləri rəqəmlərə çevirmək haqqında ətraflı məlumat üçün aşağıdakı məqaləyə baxın.
Sətin ədəd olub-olmadığını müəyyən etmək üçün (Çin rəqəmləri və s. daxil olmaqla) təfərrüatlar üçün aşağıdakı məqaləyə baxın.