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

مساعدة في سكربت بايثون

بدأه مبتدى بايثون في 28 فبراير 2013 · 14 رد · 765 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

أنا مبتدى في البرمجة في بايثون و لدي سؤال :

 

كتبت سكربت يقوم بإستخراج ناتج القسمة لعدد من 1 حتى يصل إلى العدد  مثال :

 

أستخرج ناتج العدد 100 سوف يقوم السكربت بقسمة العدد 100 من و احد حتى العدد 100 السؤال :

أريد إستبعاد الأعداد العشرية من النواتج و بذلك تظهر الأعداد الصحيحة فقط ؟ 

 

مثال :

a=0b=100while (a<B) :    a=a+1    print (b/a)

 

 

 

 

شكراً 

تم تعديل هذه المشاركة بواسطة مبتدى بايثون في 28 فبراير 2013 في 06:58

#2

هذا البرنامج لن يعطي أعداد عشرية، قسمة عدد صحيح على عدد صحيح ستعطي عدد صحيح:

 

>>> 5 / 2
2
>>> type(5 / 2)
<type 'int'>
>>> type(2.5)
<type 'float'>
>>>

 

يمكن الحصول على عدد عشري إذا كان المقسوم أو المقسوم عليه أو كلاهما عشري:

 

>>> 5.0 / 2
2.5
>>> type(5.0 / 2)
<type 'float'>
>>>
>>> 5 / 2.0
2.5
>>> type(5 / 2.0)
<type 'float'>
>>>

 

كيف تعرف أن هذا العدد عشري، يمكنك النظر لنوع العدد (الأنواع في بايثون عبارة عن 'class) بإستخدام type ومقارنته مع النوع:

 

>>> type(2.0) == int
False
>>> type(2.0) == float
True
>>>

 

أو بإستخدام isinstance:

 

>>> isinstance(2.0, int)
False
>>> isinstance(2.0, float)
True
>>>

 

كيف تقارن بين 2.0 و 2 ، نوعين مختلفين int و float، عن طريق هذي الحركة:

 

>>> n = 2.0>>> n == int(n)True>>>

 

مقارنة 2.5 لن تنجخ:

 

>>> n = 2.5
>>> n == int(n)
False
>>>

 

برنامجك سيصبح:

 

a = 0
b = 100.0 # مهم أن يكون عشري
while(a < b):
    a = a + 1
    if (b / a) == int(b / a):
        print( b / a )

 

>>> while(a < b):
...     a = a + 1
...     if (b / a) == int(b / a):
...         print( b / a )
...
100.0
50.0
25.0
20.0
10.0
5.0
4.0
2.0
1.0
>>>
#3

أود التنبيه إلى أن الأمر مختلف بين بايثون 2 وبايثون 3

في بايثون 2 ناتج 5/2 دائما عدد صحيح وهو 2 وإذا أردت الحصول على عدد عشري نكتب 5.0/2 والناتج 2.5

في بايثون 3 ناتج 5/2 يكون عشريا وهو 2.5 وإذا أردته صحيحا كتبت (5/2)int

والظاهر أن الأخ السائل يعمل على بايثون 3 لذلك يجب تعديل الكود هكذا

>>> while(a < b):
...     a = a + 1
...     if (b / a) == int(b / a):
...         print int(b/a)

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 28 فبراير 2013 في 09:45

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#4

مشكورين يا أخوان و ماقصرتم 

 

شكراً لك أخ Mr.B 

و شكراً لك أخ أحمد

 

عندي سؤال ثاني: كيف أستخدم أدالة input عندما أستخدمها يحصل خطأ 

 

مثال:

a= input ()
b= input ()
while (a<B) :
    a=a+1
    if (b / a) == int(b / a):
     print (b/a)

 

تم تعديل هذه المشاركة بواسطة مبتدى بايثون في 28 فبراير 2013 في 11:35

#5

الخطأ هنا

while (a<B) :

والصواب

while (a<b) :

البايثون حساس للأحرف الكبيرة والأحرف الصغيرة

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#6

شكراً أخي أحمد تعبتك

 

لكن عدلت السكربت و مازال يعطي خطأ

a= input ()
b= input ()
while (a<b) :
    a=a+1
    if (b / a) == int(b / a):
     print (b/a)
#7
a = input ('num')
b = input ('num')
while (a<b) :
    a=a+1
    if (b / a) == int(b / a):
     print (b/a)

 

 

مﻻحضة اجعل امتغيرات اﻻثنين قيمتهن رقم عشري

 

 

مثل1

 1 = 1.0

2= 10.0

salah.jpg

#8

أيضاً يعطي المفسر خطأ و تحدياً عند السطر 4 (a=a+1)

 

a = input ('num')
b = input ('num')
while (a<b) :
    a=a+1
    if (b / a) == int(b / a):
     print (b/a)
#9

لا يظهر خطأ هنا

أرسل لنا مخرجات التنفيذ

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#10

صورة لتوضيح من مفسر PyScripter

oHR8K.jpg

تم تعديل هذه المشاركة بواسطة مبتدى بايثون في 1 مارس 2013 في 15:19

#11

اجعل المتغيرين هكذا

 

 

 

a=int(input('num))

وكذلك المتغير الثاني وجرب

 

ارجو ان تجرب في shell python

وليس في هذا المحرر

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 1 مارس 2013 في 21:38

salah.jpg

#12

تفضل جرّب هذا الكود 

 

 

 

اقتباس

a = input("Num")

b = input("Num")

 

while (a < b) :

     a = a+1

     if  (b / a) :

     .......

لـآْ لآلـآـهِ آلـآ آلـآــهِ

سـَبـَح ـآ‘ـنـكِ آنـ‘َـيِ كـنـ‘َـتِ مـنِ آلـ‘َـضـآلـمـٌَـيـنِ

 

أخي الكريم.. ارجوا أن تسامحني.

نعم, أتكلم معك أنت.

#13

أنت تستعمل بايثون 3 بلا شك لأننا نحن مستعملي بايثون 2 لم يظهر لنا خطأ

في بايثون 2 الدالة input ترجع بعدد صحيح والدالة raw_input ترجع بسلسة نصية أي string

في بايثون 3 الدالة input ترجع بسلسلة نصية string ولا وجود للدالة raw_input ...لذلك ظهر لك الخطأ لما عاملت a معاملة الأعداد في a=a+1 مع أنها من النوع string

والحل أن تحول المدخلات aو b  إلى integer

ولهذا يصير الكود هكذا

a =  int(input('num'))
b = int(input ('num'))
while (a<b) :
    a=a+1
    if (b / a) == int(b / a):
     print (b/a)

وقد أشار إليه أخي مصطفى

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 1 مارس 2013 في 22:57

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#14

شكراً لكم ياشباب , شكراً لك أخي أحمد

 

لكن عندي سؤال أيهما أفضل بايثون 3 أم 2  ؟ و هل بايثون 3 تعتبر تطوير لبايثون 2  ؟ أم أن كل نسخة من بايثون لها إستخداماتها ؟

#15

ياخي اﻻكثر  انتشارات من حيث التعليم حسب ماراه انا وبحثي هو

 

python 2.7

 

ابدا فيها وتكول على الله

 

اما بايثون 3

 

ﻻزالت بعض المكتبات كما سمعت لم تنقل بها وقليل , نعم يوجد بعض التطوير من حيث الجمل

 

المهم ابدا في python 2.7 وابدا تعلم

salah.jpg

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…