إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

برنامجي الأول بـCalculator V1.0 .. Python ,, اسئلة وإستفسارات

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [نقاش] برنامجي الأول بـCalculator V1.0 .. Python ,, اسئلة وإستفسارات

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

    قبل فترة بسيطة بدأت بتعلم الــ Python وها أنا أنجز أول برنامج بها Calculator V1.0


    صحيح أنا البرنامج بسيط جدا ^ 10 لكنني سعيد به
    ... ويجسد الحد الذي وصلت به حتى الان في Python

    البرنامج :


    كود:
    [LEFT]#!/usr/bin/python
    # -*- coding: utf-8 -*-  
    # This is my first program in Python
    # Calculator V1.0
      
    print '''
      
      _____      _            _       _             
     / ____|    | |          | |     | |            
    | |     __ _| | ___ _   _| | __ _| |_ ___  _ __ 
    | |    / _` | |/ __| | | | |/ _` | __/ _ \| '__|
    | |___| (_| | | (__| |_| | | (_| | || (_) | |   
     \_____\__,_|_|\___|\__,_|_|\__,_|\__\___/|_|  V1.0  By: [email protected] 
                                                    
      
    '''
    A=input(" Please input A : ")
    B=input(" Please input B : ")
      
    print '''
    ################################################
          What you want me to do :
    ################################################
    '''
    print "1- Add",A,"and",B,"'+'"
    print "2- Subtract",A,"and",B,"'-'"
    print "3- Multiply",A,"and",B,"'×'"
    print "4- Divide",A,"and",B,"'÷'"
    print""
      
    C=input("Choose a calculation : ")
      
    if (C==1) :print A,"+",B,"=",A+B
      
    elif (C==2) :print A,"-",B,"=",A-B
      
    elif (C==3): print A,"×",B,"=",A*B
      
    elif (C==4):
            if (B==0) : print "You can't divide",A,"and",B,",it's undefind."
            else : print A,"÷",B,"=",A/B
      
    else : print "Please choose one of these four calculations!"
    [/LEFT]
    البرنامج طرح في ذهني تساؤلات وأود أن أعرفها ,,

    هل هذه الجزئية ضرورية دائماً ؟ ومتى ؟


    كود:
    [LEFT]#!/usr/bin/python
    [/LEFT]
    ما الفرق بين : input و raw_input لأنني كنت أستخدم raw_input في الجزئية التي بعد :

    كود:
    [LEFT]      What you want me to do :
    [/LEFT]
    وينفذ البرنامج :

    كود:
    [LEFT]else : print "Please choose one of these four calculations!"
    [/LEFT]
    مباشرة!! ... إلى أن حذفت raw_ وعمل البرنامج مثلما أردت أن يعمل !! لما ؟

    قرأت :

    raw_input accepts your input as a string. input accepts it as a command.
    لكن حقيقة لم أفهم مالمقصود ...

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


    كود:
    [LEFT]A=input(" Please input A : ")
    [/LEFT]
    يوجد خطأ عند قسمة عدد مثل 3 على 5 لينتج 0 !!

    كود:
    [LEFT]  _____      _            _       _             
     / ____|    | |          | |     | |            
    | |     __ _| | ___ _   _| | __ _| |_ ___  _ __ 
    | |    / _` | |/ __| | | | |/ _` | __/ _ \| '__|
    | |___| (_| | | (__| |_| | | (_| | || (_) | |   
     \_____\__,_|_|\___|\__,_|_|\__,_|\__\___/|_|  V1.0  By: [email protected] 
                                                    
      
      
     Please input A : 3
     Please input B : 5
      
    ################################################
          What you want me to do :
    ################################################
      
    1- Add 3 and 5 '+'
    2- Subtract 3 and 5 '-'
    3- Multiply 3 and 5 '×'
    4- Divide 3 and 5 '÷'
      
    Choose a calculation : 4
    3 ÷ 5 = 0
    [/LEFT]
    ماسبب هذا الخطأ ؟!

    هل يوجد jump في Python او goto ؟ لأن البرنامج يخرج في النهاية , وأنا أريدة أن يبدأ من الصفر ؟!


    هذا مالدي حتى الآن .... وأي رأي أو إقتراح أو معلومة سيسعدني كثيييرا سماعها
    كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

  • #2
    المشاركة الأصلية بواسطة بـركـاتـــ مشاهدة المشاركة
    هل هذه الجزئية ضرورية دائماً ؟ ومتى ؟

    كود:
    [LEFT]#!/usr/bin/python[/LEFT]

    نعم مهمة لكي يتم تنفيذ البرنامج بدون كتابة python ./app
    هذا ما يسمى ب shabang

    تعليق


    • #3
      وعليكم السلام

      في الأول مبارك عليك أول برنامج : )

      بالنسبة للإستفسارات، الفرق بين input و raw_input أن الثانية ماتقرأه هو فقط نصوص أي نوع المتغير الذي تمت من خلاله قراءة المدخلات هو string
      أما input فما تقرأه هو objet أي تتأقلم مع نوع المدخل إذا أدخلت مثلا 1 فنوع المتغير هو integer وإذا أدخلت 1+2 فالمتغير سيتحتوي على 3 !

      في برنامجك لو أردت إستعمال raw_input يلزمك المقارنة مع string وليس integer أي:

      كود:
      if (C=="1") :print A,"+",B,"=",A+B
      بالنسبة للقسمة يجب أن تكون المدخلات من شكل 5.0 و 3.0 لكي يفهم أنك تريد القسمة على شكل float وليس int أو إعمل cast للقسمة
      5/3 عندي تعطي 1!

      الدوال jump و go لاينصح بهما إطلاقا !! يمكنك عمل حلقة (loop) صغيرة تشتغل مادام المستخدم لم يختر الخروج من البرنامج

      بالنسبة للإقتراحات فبدل إستخدام if...else لمعرفة العملية المختارة إستخدم dictionary

      بالتوفيق لك
      التعديل الأخير تم بواسطة أمين روخ; الساعة 25-07-2010, 02:59 PM.

      تعليق


      • #4
        السلام عليكم:
        بداية جميلة في الحقيقة لا أعرف ما هو المصدر اللذي تتعلم منه لكن لكن في الحقيقة الكود يحتاج له شوية تنسيق
        انظر
        http://www.ojuba.org/wiki/docs/pep-0008
        http://www.python.org/dev/peps/pep-0008/
        وأنصحك بأن تبدأ من هذا
        http://www.khaledhosny.org/byte-of-python/index.html

        التنسيق يجعل البرنامج أسهل في القراءة
        لاحظ
        كود:
        #!/usr/bin/python
        # -*- coding: utf-8 -*-  
        # This is my first program in Python
        # Calculator V1.0
          
        print '''
          
          _____      _            _       _             
         / ____|    | |          | |     | |            
        | |     __ _| | ___ _   _| | __ _| |_ ___  _ __ 
        | |    / _` | |/ __| | | | |/ _` | __/ _ \| '__|
        | |___| (_| | | (__| |_| | | (_| | || (_) | |   
         \_____\__,_|_|\___|\__,_|_|\__,_|\__\___/|_|  V1.0  By: [email protected] 
                                                        
          
        '''
        A = input(" Please input A : ")
        B = input(" Please input B : ")
          
        print '''
        ################################################
              What you want me to do :
        ################################################
        '''
        print "1- Add",A,"and",B,"'+'"
        print "2- Subtract",A,"and",B,"'-'"
        print "3- Multiply",A,"and",B,"'×'"
        print "4- Divide",A,"and",B,"'÷'"
        print""
          
        C=input("Choose a calculation : ")
          
        if C == 1 :
            print A,"+",B,"=",A+B
          
        elif C == 2 :
            print A,"-",B,"=",A-B
          
        elif C == 3:
             print A,"×",B,"=",A*B
          
        elif C == 4:
                if B == 0:
                     print "You can't divide",A,"and",B,",it's undefind."
                else:
                     print A,"÷",B,"=",A/B
          
        else:
             print "Please choose one of these four calculations!"
        البرنامج طرح في ذهني تساؤلات وأود أن أعرفها ,,

        هل هذه الجزئية ضرورية دائماً ؟ ومتى ؟
        كيف يعمل

        دعونا ننظر في أول سطرين من البرنامج. تسمى هذه تعليقات (comments)، أي شيء مكتوب على يمين الرمز # هو تعليق و هو في الأساس أمر مفيد لقارئ هذا البرنامج.
        بيثون لا تستخدم التعليقات باستثناء السطر الأول هنا وهو حالة خاصة. وهي تسمى سطر شابانغ (shebang) عندما يكون أول حرفين من الملف المصدري عبارة عن #! متبوعا بمسار برنامج فإن هذا يخبر لينكس/يونكس أن هذا البرنامج يجب أن يعمل مع هذا المفسر (interpreter) عند تنفيذه. وسوف يُشرح هذا بالتفصيل في الفصل التالي. علما بأنه يمكنك دائما تشغيل البرنامج على أي منصة من خلال تحديد المفسر مباشرة على سطر الأوامر مثل الأمر python helloworld.py.

        مباشرة!! ... إلى أن حذفت raw_ وعمل البرنامج مثلما أردت أن يعمل !! لما ؟
        جرب تحد نوع المتغير
        كود:
        A = int(raw_input(" Please input A : "))

        يوجد خطأ عند قسمة عدد مثل 3 على 5 لينتج 0 !!
        انظر
        http://www.ojuba.org/wiki/docs/python_basics
        و قل لمن يدعي في العلم فلسفة---- حفظت شيئا و غابت عنك أشياء
        Programming-Fr34ks[dot]NET
        ابدأ بتعلم Python | Ruby
        خطوة على طريق بايثون (مصحح)

        تعليق

        يعمل...
        X