Tesbîtkirina ka hejmarek di Python-ê de jimareyek an dehek e

Dikan

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.

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.