📚 تمرین کدنویسی توابع در پایتون
جلسه پنجاه و دوّم| آموزش پایتون مقدماتی
مدّرس: احمد احمدی
🧾 خلاصه این جلسه:
✅ در جلسه پنجاه و دوّم از دوره آموزش پایتون، جهت تثبیت بیشتر این مبحث تعدادی مثال از بخش توابع را حل کردیم. این جلسه دارای یک چالش کدنویسی می باشد.
[ دانلود فایل جوپیتر نوتبوک این جلسه (حتماً دانلود شود) ]
4 دیدگاه. ارسال دیدگاه جدید
سلام و تشکر از آموزش های فوق العاده عالی.
در مورد کد چالشی که در انتها مطرح شد، من متوجه نشدم چرا باید از قدر مطلق استفاده کنیم، در محاسبات مثلث قایم الزاویه که عدد اعشاری نداریم، یا مجموع مربع دو ضلع برابر با مربع وتر هست که می شود قایم الزاویه و یا برابر نیست که پس مثلث قایم الزاویه نیست.
با سلام و وقت بخیر خدمت شما
تشکر از همراهی شما دانشجوی عزیز!
ببینید فرض کنید که کاربر چنین اعدادی را وارد نماید، a=2 و b=3 با چنین اعدادی وتر مثلث قائمالزاویه c=3.605551275463989 بهدست میآید. حال شما این سه عدد را به تابع تعریفشده is_rightangled به عنوان ورودی وارد نمایید این سه عدد تشکیل یک مثلث قائمالزایه را میدهند و شما انتظار دارید که خروجی تابع True باشد! امّا چنین نخواهد بود!!! (چرا؟) دلیل آن که در فایل تمرینِ جوپیتر آن راهنمایی را قرار دادم (به صورت Hint) همین بود! 🙂
بله، درسته، ممنون از توضیحاتتون، حتما به این علت هست که عدد اعشاری به دست آمده برای وتر گرد شده
با عرض سلام خدمت شما
ببینید اگر بخوام خیلی دقیق پاسخ شما رو بدم، شمارو به اجراء کردن یک کدِ ساده ولی چالشی دعوت میکنم. توی جوپیتر نوتبوک این کدو بنویسید و اجرا کنید؛
به نظر شما خروجی این کد چیست؟
0.2 + 0.1 == 0.3
به احتمال زیاد پاسخ شما True هست ولی وقتی کُد بالا اجرا شود مقدار False را بر میگرداند و علّت این امر این است که اعداد اعشاری در پایتون و (دیگر زبانها) به صورت بانیری (صفر-یک) ذخیره می شوند و همیشه مقداری خطا دارند. بنابراین برای مقایسه دو عدد اعشاری بهتر است همیشه به صورت بازهای عمل کنیم.