IranCoderz – Telegram
IranCoderz
2.35K subscribers
3.11K photos
418 videos
26 files
824 links
It's all about Programming

contact: @far1d_ghaderi
Adz: @IranCoderzAdz
Download Telegram
IranCoderz
🆔 @IranCoderz | 👩‍💻🧑‍💻
چرا جواب 0.2 + 0.1 شد 0.30000000000000004؟🤔

این‌که جواب این عبارت جمع این‌ شد به این معنی نیست که پایتون مشکل داره؛ اکثر زبان‌های برنامه‌نویسی حاصل این عبارت رو همین بر می‌گردونن، ولی خب چرا؟
کامپیوترها به صورت نیتیو فقط می‌تونن اعداد صحیح رو در خودشون ذخیره کنن و به همین دلیل به یه راه نیاز دارن که بتونن با اعداد اعشاری هم کار کنن. وقتی شما یک سیستم بر پایه ۱۰ دارید(مثل سیستم‌هایی که ما باهاشون کار می‌کنیم)، اون سیستم فقط می‌تونه کسرهایی رو بیان کنه که فاکتور اصلی اون‌ها عدد ۲ و ۵ باشه؛ مثل 1/2، 1/4، 1/5 و... که همگی به خوبی توسط سیستم ما قابل نمایش هستند. در مقابل اعدادی مثل 1/3، 1/7، 1/9 که فاکتور اصلی مخرج اون‌ها عددهای 3 و 7 هستند همگی دارای اعداد اعشاری تکرار شونده خواهند بود.

در مقابل، در سیستم‌های باینری فقط کسرهایی به خوبی قابل نمایش هستند که فاکتور اصلی مخرج آن‌ها فقط عدد 2 باشه،‌ مثل: 1/2، 1/4، 1/8؛ همچین کسرهایی به خوبی با اعداد اعشاری خود نمایش داده می‌شوند در حالی که 1/5 و 1/10 با اعداد اعشاری تکرار شونده نمایش داده می‌شوند. بنابراین وقتی شما دو دو عدد مثل 0.1 (1/10) و 0.2(2/10) که دارای اعداد اعشار تکرار شونده هستند رو با هم جمع می‌کنید با 0.30000000000000004 مواجه می‌شید. این اتفاق به این دلیل می‌افته که حاصل از سیستم باینری به سیستم دسیمال یا همون ده دهی تبدیل می‌شه تا برای انسان خواناتر باشه و همچنین اعداد اعشاری رو اون‌قدر تکرار می‌کنه بالاترین دقت رو داشته باشه.

این قانون از استاندارد IEEE 754 نشئت می‌گیره و اکثر زبان‌های برنامه‌نویسی مثل پایتون و جاوااسکریپت از این استاندارد پیروی می‌کنند.
🆔 @IranCoderz | 👩‍💻🧑‍💻
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
زندگی یه برنامه‌نویس:

🆔 @IranCoderz | 👩‍💻🧑‍💻
👍4
چند روز پیش یه برنامه‌نویس با کامیت کردن به دوتا از معروف‌ترین و پردانلودترین پکیج‌های NPM با اسم‌های Colors.js و Faker.js که هرکدوم بالای 20 میلیون دانلود هفتگی دارند باعث شد که این دو پکیج که روی هزاران‌ پروژه کوچیک و بزرگ دارن استفاده می‌شن به کلی از کار بی‌افتن و همه رو با مشکل مواجه کرد.

کامیتی که ایشون کرده بود پیامش “Adds a new American flag module” بود و فقط 5 خط به پکیج‌ها اضافه کرده بود و سه خط از اون 5 خط هم لاگ‌هایی بودند که پیام ‘LIBERTY, LIBERTY, LIBERTY’ رو تو کنسول چاپ می‌کردند؛ ولی همین کافی بود که این دو پکیج با مشکل مواجه بشن و کلی کاربر رو درگیر خودشون بکنن. گیت‌هاب هم کم لطفی نکرد و دسترسی آقای Marak به حساب گیت‌هاب خودش رو که حدود 100 رپو داره و یکی از برنامه‌نویس‌های معروف پکیج‌های اوپن سورس NPM هستش رو به دلیل نقض قوانین اوپن سورس مسدود کرد و دو پکیج Faker و Colors رو هم فعلا از NPM حذف کرده و به کاربرها گفته که از نسخه‌های قبلی اون‌ها استفاده بکنند.

🆔 @IranCoderz | 👩‍💻🧑‍💻
😱4👍1
از تجربه‌های بد خودتون بگید

🆔 @IranCoderz | 👩‍💻🧑‍💻
اکثرا همینیم :)

🆔 @IranCoderz | 👩‍💻🧑‍💻
😁8👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی مدیر فنی میاد به اعضای تیم میگه من به این نتیجه رسیدم که باید بک-اند رو PHP بزنیم

* Pemidi1*

🆔 @IranCoderz | 👩‍💻🧑‍💻
😁6
:)))) چجوری باید IP خودمون رو بفهمیم؟

🆔 @IranCoderz | 👩‍💻🧑‍💻
😁2
وقتی یه برنامه‌نویس سرامیک حموم رو خودش انتخاب می‌کنه

🆔 @IranCoderz | 👩‍💻🧑‍💻
آیا از بد بودن فونت فارسی خود داخل Vs Code رنج میبرید؟
با من باشید تا راهی که تازه یاد گرفتمو بهتون معرفی کنیم
تفاوتشون همچین چیزیه،‌ دلیلشم اینه که فونت فعلی شما ممکنه کرکترای فارسی رو پشتیبانی نکنه و برای حل این مشکل باید برین و فونت فارسی رو بعدش اضافه کنین و فارسی با اون میشه.

* abtin78nk *

🆔 @IranCoderz | 👩‍💻🧑‍💻
👍6
یکی از عجیب‌ترین رپوهای گیت‌هاب رو مشاهده می‌کنید که یک ماشین‌حساب با زبان پایتون نوشتن و حدود 3.5k ستاره گرفته. یکی از فایل‌هاش که تو اون تموم اعداد از 1 تا 1000 رو به صورت دستی چک کرده و حاصل ضرب اون‌ها رو چاپ کرده حدود ۸ میلیون خط کد داره😂
https://github.com/AceLewis/my_first_calculator.py

🆔 @IranCoderz | 👩‍💻🧑‍💻
😱3👍1😁1