Tesbît bike ka jimarek di Pythonê de jimareyek e an dehek e.
Rewşên jêrîn bi kodên nimûne têne ravekirin.
- Tesbît dike ku jimarek hejmarek bêkêmasî ye an float-xala hêlînê ye:
isinstance()
- Tesbît dike ku jimareyek tîpa float jimareyek pêve ye (0 deh dehiyên):
float.is_integer()
- Tesbît dike ka rêzika jimareyî jimareyek e
Ji bo bidestxistina jimareyên yekjimar û dehan yên jimareyek dehek, li gotara jêrîn binêre.
- TÊKIRIN:Di Python de bi math.modf-ê re di heman demê de beşên yekjimar û dehan yên jimarekê bistînin
Ji bo agahdariya li ser destnîşankirina ka rêzik hejmarek e (tevî jimareyên çînî, hwd.) li şûna ku ew jimareyek an dehek e, li gotara jêrîn binêre.
Tesbît dike ku jimarek tîpek nuqteya hejmarî ye yan jî tîpek xala herikbar e:isinstance()
Tîpa tiştekî bi tîpa fonksiyonê ya çêkirî dikare were bidestxistin().
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Ev fonksiyona çêkirî dikare were bikar anîn da ku diyar bike ka tiştek celebek taybetî ye. Ev dikare were bikar anîn da ku diyar bike ka hejmarek celebek nuqteya bihejmar e an hejmarek e.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Di vê rewşê de, ew tenê celebê dadbar dike, ji ber vê yekê ew nikare dadbar bike ka nirxek celebek float hejmareke yekjimar e (bi dehek 0) an na.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Tesbît dike ku jimareyek tîpa float jimareyek pêve ye (0 deh dehiyên):float.is_integer()
Rêbaza is_integer () ji bo celebê float tête peyda kirin, ku heke nirx hejmareke yekjimar be û wekî din xelet be rast vedigere.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Mînakî, fonksiyonek ku ji bo jimareyek rast vedigere dikare bi vî rengî were pênase kirin Ji hêla din ve, celebek rêzikê dê xelet be.
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
Tesbît dike ka rêzika jimareyî jimareyek e
Heke hûn dixwazin diyar bikin ku rêzek ji jimareyên bêkêmasî jî yekjimar e, fonksiyonên jêrîn gengaz in.
Ji bo nirxên ku dikarin bi float() veguherin celebê float, rêbaza is_integer() piştî veguhertina float tê sepandin û encam vedigere.
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
Ji bo hûrguliyên li ser veguheztina rêzan li jimareyan li gotara jêrîn binêrin.
Ji bo hûrguliyên li ser destnîşankirina ka rêzik hejmarek e (tevî jimareyên çînî, hwd.) li gotara jêrîn binêre.