السلام عليكم :
لدي استفسار في شيء محيرني
كيف تستطيع دالة int ان تتحقق من المتغير على انه فعلا يحتوي على ارقام
يعني في بالي لا تستطيع ان تعمل له isdigit انه كونه نص
شيء محير مجرد ارقام بدون علامة تنصصية كيف يمكن تعرف
السلام عليكم :
لدي استفسار في شيء محيرني
كيف تستطيع دالة int ان تتحقق من المتغير على انه فعلا يحتوي على ارقام
يعني في بالي لا تستطيع ان تعمل له isdigit انه كونه نص
شيء محير مجرد ارقام بدون علامة تنصصية كيف يمكن تعرف
تم تعديل هذه المشاركة بواسطة احمد وسام في 4 يوليو 2014 في 17:09
>>> type(3) == int True >>> x=3 >>> type(x)==int True
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
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
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)
اخوية ولو زحمة عليك
ماوضيفة النقطة الداش . الي اردت معرفة عدد تكرارها
ممكن شرح هذا الكود

اقتباس
اخوية ولو زحمة عليك
رجاءا تكلم باللغة العربية لم أفهم كلامك
بالنسبة للنقطة أنا لم أكن أبحث عن عدد تكرارها و إنما بحثت عن موقعها فقط
كما نعلم الدالة int تحول عدد عشري مثل 3.14 لعدد صحيح 3
لذا بحثت عن النقطة
ياما انت اخي من اصل اجنبي كونك لا تعرف الهجات العربية
اما بالنسبة للنقطة اول مرة اعرف ان int تحول العدد من العشري الى صحيح
تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 4 يوليو 2014 في 21:54

أنا من الجزائر
و لو أتلكم بلهجتي فلن تفهم أي كلمة مما أقوله
أرجو منك و من كل الأعضاء التكلم بالفصحى رجاءا
ممكن شرح هذا الكود
x=0 for i in y: x=x*10+dic return x*d else: return x
اقتباس
كيف تستطيع دالة 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
افهم التكرارات وافهم باقي القسمة فقط اشرح لي ماذا حدث في هذا الكود
اقتباسافهم التكرارات وافهم باقي القسمة فقط اشرح لي ماذا حدث في هذا الكود
إذا كنت كذلك إصنع برنامج يجمع أرقام عدد
مثلا مجموع 12093 هو 1+2+0+9+3=15
عندها ستفهم أكثر