انجمن پایتون فارسی

    • نام‌نویسی
    • درون آمدن
    • جستجو
    • دسته‌بندی‌ها
    • تازه‌ها
    • برچسب‌ها
    • دوست‌داشتنی‌ها
    • کاربران
    • گروه‌ها

    ماشین حساب ساده

    پرسش و پاسخ
    2
    7
    62
    بارگذاری پست‌های بیش‌تر
    • قدیمی‌ترین به جدید‌ترین
    • جدید‌ترین به قدیمی‌ترین
    • بیشترین رای ها
    پاسخ
    • پاسخ به موضوع
    وارد شوید تا پست بفرستید
    این موضوع پاک شده است. تنها کاربرانِ با حق مدیریت موضوع می‌توانند آن را ببینند.
    • M
      mohamd84mm آخرین ویرایش توسط سعید فضل اله زاده انجام شده

      سلام. من میخوام یک ماشین حساب ساده در پایتون بسازم. برای این کار از ضرب دو عدد شروع کردم. کدم رو به صورت زیر نوشتم:

      def test(num):
          return lambda n : num * n
      x = test(input('adad aval: '))
      print(x(input('adad dovom: ')))
      

      ولی با ارور زیر مواجه شدم

      TypeError: can't multiply sequence by non-int of type 'str'
      

      همون طور که میبینید میگه که نمیشه دوتا رشته رو ضرب کرد. سوالم اینه که مشکلم رو چطور حل کنم؟

      1 پاسخ آخرین پاسخ پاسخ نقل قول 0
      • س
        سعید فضل اله زاده آخرین ویرایش توسط انجام شده

        سلام
        چون هر دو متغیر n و num شما از نوع string هستند.
        شما بدید نوع num رو به int تغییر بدید تا مشکل تون برطرف بشه:

        def test(num):
            num = int(num)
            return lambda n: num * n
        
        
        x = test(input('adad aval: '))
        print(x(input('adad dovom: ')))
        

        مثال هم:

        adad aval: 5
        adad dovom: hi
        hihihihihi
        

        Pyth on Python :)

        M 1 پاسخ آخرین پاسخ پاسخ نقل قول 0
        • M
          mohamd84mm @سعید فضل اله زاده آخرین ویرایش توسط انجام شده

          @سعید-فضل-اله-زاده ممنون. میشود n رو هم به int تبدیل کرد؟

          1 پاسخ آخرین پاسخ پاسخ نقل قول 0
          • M
            mohamd84mm آخرین ویرایش توسط سعید فضل اله زاده انجام شده

            اینطور نوشتم و درست شد. شما استفاده از این روش رو مناسب میدونید؟

            def test(num):
                return lambda n : num * n 
            x = test(int(input('adad aval: ')))
            print(x(int(input('adad dovom: '))))
            1 پاسخ آخرین پاسخ پاسخ نقل قول 0
            • س
              سعید فضل اله زاده آخرین ویرایش توسط انجام شده

              سلام
              به این شکل می تونید اصلاح کنید:

              def test(num):
                  return lambda n: num * n
              
              
              x = test(int(input('adad aval: ')))
              print(x(input('adad dovom: ')))
              

              شما عدد دوم رو هم دارید تبدیل به int می کنید و اگر ورودی دوم رو کسی string وارد کنه خطا دریافت می کنه. می تونید خودتون هم تست کنید و ورودی دوم رو حرف بگذارید.

              Pyth on Python :)

              M 1 پاسخ آخرین پاسخ پاسخ نقل قول 0
              • M
                mohamd84mm @سعید فضل اله زاده آخرین ویرایش توسط انجام شده

                @سعید-فضل-اله-زاده واقعا ممنون

                1 پاسخ آخرین پاسخ پاسخ نقل قول 1
                • س
                  سعید فضل اله زاده آخرین ویرایش توسط انجام شده

                  خواهش می کنم.
                  تاپیک بسته شد.

                  Pyth on Python :)

                  1 پاسخ آخرین پاسخ پاسخ نقل قول 0
                  • قفل شده توسط  س سعید فضل اله زاده 
                  • 1 / 1
                  • اولین پست
                    آخرین پست
                  قدرت گرفته از NodeBB | میزبانی شده روی سرور مجازی در مازندهاست