الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن تحقق دالة int من المتغير

بدأه احمد وسام في 4 يوليو 2014 · 13 رد · 794 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

 

 

لدي استفسار في شيء محيرني

 

 

كيف تستطيع دالة  int ان تتحقق من المتغير على انه فعلا يحتوي على ارقام

 

 

يعني في بالي لا تستطيع ان تعمل له isdigit انه كونه نص

 

 

شيء محير مجرد ارقام بدون علامة تنصصية كيف يمكن تعرف

تم تعديل هذه المشاركة بواسطة احمد وسام في 4 يوليو 2014 في 17:09

#2
 >>> type(3) == int

True

>>> x=3

>>> type(x)==int

True
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

.

تم تعديل هذه المشاركة بواسطة احمد وسام في 4 يوليو 2014 في 19:43

#4

يعني انت تريد تعرف شلون تعرف دالة int ان هذه ارقام وتعطي نتيجة ب int !!

salah.jpg

#5
def myint(x):
    digit='0123456789.'
    x=str(x)
    for i in x:
        if i not in digit:
            return 'not number'
    else:
        if '.' in x:
            return int(x[:x.count('.')])
        else:
            return int(x)

لقد عدلت على البرنامج في البرنامج السابق إستعملا الدالة int و هذا لا يصح

 

لذا هذا هو التصحيح

def myint(x):    digit='0123456789.'    dic={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0}    y=str(x)    for i in y:        if i not in digit:            if i!='-' or y.count(i)!=1:                return 'not number'    else:        if '.' in y:            y=y[:y.index('.')]            d=1            if '-' in y:                y=y.replace('-','')                d=-1            x=0            for i in y:                x=x*10+dic            return x*d        else:            return x

تم تعديل هذه المشاركة بواسطة kenham في 4 يوليو 2014 في 23:19

1
#6
kenham كتب:
def myint(x):
    digit='0123456789.'
    x=str(x)
    for i in x:
        if i not in digit:
            return 'not number'
    else:
if '.' in x: return int(x[:x.count('.')]) else: return int(x)

 

 

اخوية ولو زحمة عليك

 

 

ماوضيفة النقطة الداش  . الي اردت معرفة عدد تكرارها

 

ممكن شرح هذا الكود

salah.jpg

#7
اقتباس

 

اخوية ولو زحمة عليك

 

رجاءا تكلم باللغة العربية لم أفهم كلامك

 

بالنسبة للنقطة أنا لم أكن أبحث عن عدد تكرارها و إنما بحثت عن موقعها فقط

 

كما نعلم الدالة int تحول عدد عشري مثل 3.14 لعدد صحيح 3

 

لذا بحثت عن النقطة

#8

ياما انت اخي من اصل اجنبي كونك لا تعرف الهجات العربية

 

اما بالنسبة للنقطة اول مرة اعرف ان int تحول العدد من العشري الى صحيح

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 4 يوليو 2014 في 21:54

salah.jpg

#9

أنا من الجزائر

 

و لو أتلكم بلهجتي فلن تفهم أي كلمة مما أقوله

 

أرجو منك و من كل الأعضاء التكلم بالفصحى رجاءا

#10

لا مشكلة . حياك الله وحيا الجزائر

salah.jpg

#11

ممكن شرح هذا الكود

    x=0            for i in y:                x=x*10+dic            return x*d        else:            return x
#12
اقتباس

 

كيف تستطيع دالة  int ان تتحقق من المتغير على انه فعلا يحتوي على ارقام

 

 

يعني في بالي لا تستطيع ان تعمل له isdigit انه كونه نص

 

 

شيء محير مجرد ارقام بدون علامة تنصصية كيف يمكن تعرف

 

يبدو أني إبتعت قليلا عن سؤلك

 

بإمكاننا إنشاء متغير ثاني بحيث يحمل القيمة 

str(المتغير الأول)

و بذلك نتمكن من التحقق بإستعمال أي دالة تتعامل مع ال str فقط

 

أما بالنسبة لشرح الكود الخاص بي

    x=0            for i in y:                x=x*10+dic            return x*d        else:            return x

لكي تفهم هذا الكود يجب أن تفهم التكرارات و أنظمة العد و باقي القسمة

تم تعديل هذه المشاركة بواسطة kenham في 7 يوليو 2014 في 02:46

#13

افهم التكرارات وافهم باقي القسمة فقط اشرح لي ماذا حدث في هذا الكود

#14
اقتباس

افهم التكرارات وافهم باقي القسمة فقط اشرح لي ماذا حدث في هذا الكود

 

إذا كنت كذلك إصنع برنامج يجمع أرقام عدد

 

مثلا   مجموع   12093   هو 1+2+0+9+3=15

 

عندها ستفهم أكثر

مواضيع مشابهة