ساخت ماشین‌حساب برنامه‌ریزی مالی با استفاده از Streamlit پایتون

شکل ۱. ساخت ماشین‌حساب برنامه‌ریزی مالی
شکل ۱. ساخت ماشین‌حساب برنامه‌ریزی مالی
منتشر‌شده در: towardsdatascience به تاریخ ۱۰ آپریل ۲۰۲۱
لینک منبع: Creating Financial Planning Calculator Using Python Streamlit

برنامه‌ریزی مالی در زندگی ما ضروری است. علاوه بر پیگیری درآمد و هزینه‌های ماهانه، اینکه چه مقدار پول می‌توانیم برای آینده پس‌انداز کنیم تا با تورم در طول سال‌ها مقابله کنیم، جنبه مهم دیگری است. یک ماشین‌حساب سنتی به ما اجازه می‌دهد تا تمام محاسبات مورد نیاز را انجام دهیم و اعداد را به ما نشان می‌دهد. با این حال، حتی بهتر است که ما بتوانیم هزینه‌های پیش‌بینی و پس‌انداز خود را در طول سال‌ها در یک نمودار مجسم کنیم. خبر خوب این است که Streamlit ما را قادر می‌سازد تا محاسبه‌گر برنامه‌ریزی مالی خودمان را بسازیم که می‌تواند تمام تقاضاها را برآورده کند.

در این مقاله، ما یک راهنمای گام‌به‌گام با استفاده از Streamlit، یک چارچوب برنامه کاربردی منبع باز مبتنی بر پایتون برای علم داده، برای ایجاد یک ماشین‌حساب برنامه‌ریزی مالی را بررسی خواهیم کرد. Streamlit یک ابزار آسان برای یادگیری و بسیار قابل تنظیم کردن است که ما را قادر می‌سازد تا یک برنامه کاربردی داده بر اساس نیازمان ایجاد کنیم.

یک نسخه مستقر از ماشین‌حساب برنامه‌ریزی مالی را می‌توان با استفاده از لینک زیر در دسترس قرار داد:

https://share.streamlit.io/teobeeguan/financialplanningcalculator/main/BudgetApp.py

اگر شما می‌خواهید از کدهای من برای دنبال کردن مقاله استفاده کنید، می‌توانید کدهای منبع کامل را در GitHub Repo من به دست آورید.

کتابخانه‌های پیش‌نیاز پایتون

قبل از شروع فرآیند توسعه، ما باید اطمینان حاصل کنیم که کتابخانه‌های زیر در ماشین ما موجود هستند:

  1. کتابخانه Streamlit — https://www.streamlit.io/
  2. کتابخانه Plotly — https://plotly.com/python/
  3. کتابخانه Numpy — https://numpy.org/
ممکن است به مطالعه مقاله افزونه‌های ضروری کروم برای مهندسان یادگیری ماشینی و دانشمندان داده علاقمند باشید.

توسعه نرم‌افزار ماشین‌حساب

۱. وارد کردن کتابخانه

اول، ما سعی می‌کنیم تمام کتابخانه‌های مورد نیاز در برنامه خود را وارد کنیم.

۲. تنظیم عنوان صفحه

سپس، عنوان صفحه خود (به عنوان مثال، ماشین‌حساب برنامه‌ریزی مالی) را برای برنامه ماشین‌حساب خود ایجاد می‌کنیم.

خط ۱-۲: تنظیم عنوان تب مرورگر در داخل روش set_page_config.

خط ۳: یک هدینگ سطح اول در بدنه اصلی برنامه ایجاد کنید.

در این مرحله، ما می‌توانیم تلاش کنیم تا برنامه Streamlit را اجرا کنیم تا خروجی را تجسم کنیم. برای انجام این کار، دستور زیر را در کامند پایانه / فرمان خود تایپ می‌کنیم.

streamlit run YourPythonFileName.py

(توجه: اطمینان حاصل کنید که پیش از اجرای برنامه، فایل دست‌نوشته خود را به دایرکتوری خود هدایت کرده‌اید.)

خروجی را به شرح زیر خواهیم دید:

شکل ۲: خروجی اولیه کد
شکل ۲: خروجی اولیه کد

۳. ایجاد بخش درآمد

در اینجا، ما می‌خواهیم ورودی کاربر را بر اساس درآمد دریافت کنیم. برای انجام این کار، ما به یک زمینه ورودی برای حقوق و یک زمینه ورودی دیگر برای نرخ مالیات نیاز داریم.

خط ۱-۲: یک عنوان (برای مثال درآمد ماهیانه) و یک عنوان فرعی (برای مثال حقوق) ایجاد کنید.

خط ۳: دو ستون برای قرار دادن زمینه‌های ورودی ما برای حقوق و نرخ مالیات در مجاورت یکدیگر ایجاد کنید. colAnnualSal و colTax نام‌های ستونی هستند که توسط ما تعریف شده‌اند.

خط ۵-۶: در ستون اول (colAnnualSal)، از روش number_input استریم برای ایجاد یک میدان ورودی عددی برای حقوق سالانه استفاده کنید. می‌توانیم حداقل مقدار را روی ۰.۰ و فرمت را روی یک عدد نقطه اعشار، «% f» تنظیم کنیم.

خط ۷-۸: در ستون دوم (مالیات)، از روش number_input استریم برای ایجاد یک زمینه ورودی عددی دیگر برای نرخ مالیات استفاده می‌شود.

خط ۱۰-۱۲: فرمول برای محاسبه حقوق ماهیانه در خانه. ایده اصلی کسر حقوق از مالیات تحمیل‌شده بر درآمد ما با توجه به نرخ مالیات ورودی است. سپس، حقوق پس از کسر مالیات به ۱۲تقسیم می‌شود و این منجر به حقوق ماهیانه حق سکونت در خانه خواهد شد.

شکل ۳: درآمد ماهانه
شکل ۳: درآمد ماهانه
مطالعه مقاله تکنولوژی GPT-3 چیست و چرا انقلابی در هوش مصنوعی ایجاد می‌کند؟ توصیه می‌شود.

۴. بخش هزینه‌های اضافی را ایجاد کنید

حالا به بخش هزینه‌ها می‌رویم. ما چندین زمینه ورودی برای اجاره ماهیانه، بودجه غذایی روزانه، هزینه قبض‌های مصرفی و غیره ایجاد خواهیم کرد. (شما می‌توانید به طور انعطاف‌پذیر هر حوزه مرتبط را بر اساس نیازتان تغییر دهید یا اضافه کنید).

خط ۱-۲: یک هدر ایجاد کنید و دو ستون را برای قرار دادن زمینه‌های ورودی تعریف کنید.

خط ۴: ۱۳-در ستون اول، سه زمینه number_input برای اجاره ماهانه، بودجه غذایی روزانه و هزینه‌های پیش‌بینی‌نشده همراه با زیرعنوان مربوطه ایجاد کنید.

خط ۱۵-۲۳: در ستون دوم، سه زمینه number_input دیگر برای حمل و نقل ماهانه، هزینه‌های آب و برق ماهانه و بودجه سرگرمی ماهانه به همراه زیرعنوان مربوطه ایجاد می‌شود.

خط ۲۵-۲۶: فرمول محاسبه هزینه‌های ماهانه و پس‌انداز ماهانه. اساسا، ما تمام آیتم‌های مخارج ماهانه را جمع می‌کنیم و سپس آن‌ها را از حقوق ماهیانه خانگی کم می‌کنیم تا پس‌اندازهای ماهانه خود را به دست آوریم.

شکل ۴: هزینه‌های ماهانه
شکل ۴: هزینه‌های ماهانه

۵. نشان دادن صرفه‌جویی محاسبه‌شده

در اینجا می‌خواهیم صرفه‌جویی محاسبه‌شده را بر اساس فرمولی که در کدنوشته‌های خود تعریف کرده‌ایم، نمایش دهیم.

خط ۱-۴: یک هدر (صرفه‌جویی) ایجاد کنید و سپس حقوق و دستمزد محاسبه‌شده در خانه، هزینه‌های ماهانه و پس‌انداز را به عنوان سه هدر فرعی مختلف نمایش دهید.

شکل ۵: هدرهای صرفه‌جویی‌ها
شکل ۵: هدرهای صرفه‌جویی‌ها

۶. پس‌انداز پیش‌بینی شده

در این نقطه، ما قبلا بخشی را برای محاسبه پس‌انداز خود بر اساس درآمد و هزینه‌های جاری خود تکمیل کرده‌ایم. در‌حالی‌که ما می‌توانیم انتخاب کنیم که سبک زندگی خود را برای سال‌ها حفظ کنیم، به این معنی نیست که هزینه‌ها و میزان پس‌انداز ما در سال‌های آینده بدون تغییر باقی خواهند ماند. با توجه به عامل تورم و افزایش درآمد / حقوق ما، مقدار پس‌انداز در طول زمان تغییر خواهد کرد. با فرض این که سبک زندگی ما در چند سال آینده بدون تغییر باقی می‌ماند، جالب است که پیش‌بینی کنیم چگونه تورم و درآمد افزایشی ما با یکدیگر ترکیب می‌شوند تا بر برنامه مالی ما تاثیر بگذارند.

ما می‌توانیم این بخش را به دو بخش تقسیم کنیم:

(۱) زمینه‌های ورودی برای نرخ تورم و نرخ رشد حقوق و دستمزد ایجاد کنید،

(۲) یک نمودار برای نشان دادن روند حقوق و دست‌مزد پیش‌بینی‌شده، صرفه‌جویی در هزینه‌ها ایجاد کنید.

۶.۱. ایجاد زمینه‌های ورودی برای نرخ تورم و نرخ رشد حقوق و دستمزد

در اینجا ما قصد داریم چندین زمینه ورودی کاربر را برای به دست آوردن نرخ تورم برآورد شده و نرخ رشد حقوق و دستمزد هر ساله ایجاد کنیم. برای سهولت محاسبات خود، فرض می‌کنیم که تورم و رشد حقوق و دستمزد / درآمد از نرخ برآورد شده یکسانی در طول سال‌ها پیروی خواهد کرد.

خط ۱: یک خط افقی در برنامه محاسباتی ما ایجاد کنید.

خط ۳-۴: یک هدر ایجاد کنید و دو ستون را برای قرار دادن زمینه‌های ورودی تعریف کنید.

خط ۵-۱۴: در ستون اول، از روش تعداد-ورودی برای ایجاد زمینه‌های ورودی عددی برای سال پیش‌بینی و نرخ تورم همراه با زیرعنوان متناظر آن‌ها استفاده کنید.

محاسبه تورم ماهانه از فرمول زیر پیروی می‌کند:

شکل ۶: فرمول محاسبه تورم ماهانه
شکل ۶: فرمول محاسبه تورم ماهانه

هنگامی که تورم ماهانه محاسبه می‌شود، ما هر ماه به محاسبه تورم تجمعی پیش‌بینی‌شده می‌پردازیم. این عدد دو روش بسیار مفید در ساخت را به ما ارائه می‌دهد، np.cumprod و np.repeat، تا ما را از بسیاری محاسبات تکراری برای تورم تجمعی در طول ماه‌ها حفظ کنند. np.cumprod و np.repeat یک سری از نرخ‌های تورم را در ماه به ما خواهند داد و ما آن را به یک متغیر پیش‌بینی تورم تجمعی اختصاص می‌دهیم. با ضرب هزینه‌های ماهانه با نرخ تورم تجمعی پیش‌بینی‌شده، می‌توانیم مجموعه‌ای از هزینه‌های پیش‌بینی‌شده را از این ماه تا ماه دیگر پیش‌بینی کنیم.

خط ۱۵-۲۰: در ستون دوم، از روش number_input برای ایجاد زمینه‌های ورودی عددی برای رشد حقوق سالانه مورد انتظار استفاده کنید.

محاسبه رشد حقوق ماهانه به شرح زیر است:

شکل ۷: فرمول محاسبه رشد حقوق ماهانه
شکل ۷: فرمول محاسبه رشد حقوق ماهانه

محاسبه رشد تجمعی حقوق و دستمزد پیش‌بینی‌شده در طول ماه‌ها مشابه تورم است که در بالا به تفصیل شرح‌داده شده است.

خط ۲۲-۲۳: صرفه‌جویی پیش‌بینی‌شده را در هر ماه با کم کردن هزینه‌های پیش‌بینی‌شده از حقوق پیش‌بینی‌شده محاسبه کنید. سپس، از روش مجموع عددی برای محاسبه صرفه‌جویی پیش‌بینی‌شده انباشته از ماه‌های گذشته استفاده کنید. لطفا توجه داشته باشید که ما فرض می‌کنیم هیچ هزینه اضافی برای پس‌انداز وجود ندارد.

۶.۲. یک نمودار برای نشان دادن روند حقوق و دستمزد پیش‌بینی‌شده، صرفه‌جویی در هزینه‌ها ایجاد کنید.

بخش قبل تمام حقوق، هزینه‌ها و پس‌انداز پیش‌بینی‌شده محاسبه‌شده را در چندین سری اعداد به ما داده‌ است. طرحی برای هر یک از این سری‌های عددی تصویر روشن‌تری به ما خواهد داد تا به ما اجازه دهد بررسی کنیم که آیا پس‌انداز فعلی ما برای مقابله با تورم آینده کافی است یا خیر.

ما از Python Plotly Library برای ایجاد سه طرح خطی در یک نمودار واحد برای نشان دادن روند حقوق، هزینه‌ها و پس‌انداز پیش‌بینی‌شده بر اساس تعداد سال‌های پیش‌بینی‌شده ورودی توسط کاربر استفاده خواهیم کرد.

خط ۱: مقدار محور x را با تعداد سال پیش‌بینی تنظیم کنید.

خط ۳-۱۰: یک شکل Plotly به وضوح ایجاد کنید. یک پلات خطی برای حقوق پیش‌بینی‌شده با استفاده از Plotly go.Scatter object ایجاد کنید. حقوق پیش‌بینی‌شده را به عنوان ارزش محور y در نظر بگیرید. این نمودار را با استفاده از روش اضافه کردن add_trace شکل اضافه کنید.

خط ۱۲-۲۶: به شیوه‌ای مشابه، یک نمودار خطی برای هزینه‌های پیش‌بینی‌شده و صرفه‌جویی پیش‌بینی‌شده با استفاده از شی go.Scatter ایجاد کنید و آن‌ها را به همان شکل نمودار اضافه کنید.

خط ۲۷-۲۹: از روش update_layout برای تنظیم عنوان کل نمودار و همچنین عنوان محور x و محور y استفاده کنید.

خط ۳۱: نمودار با استفاده از روش نمودار هموار رس کنید.

شکل ۸: نمودار حقوق و دستمزد پیش‌بینی‌شده، صرفه‌جویی در هزینه‌ها
شکل ۸: نمودار حقوق و دستمزد پیش‌بینی‌شده، صرفه‌جویی در هزینه‌ها

در حال حاضر، نمودار خالی به نظر می‌رسد، زیرا ما هیچ مقدار ورودی را در آن حوزه‌های ورودی که قبلا ایجاد کردیم، قرار نداده‌ایم.

شاید مطالعه مقاله ۸ ابزار رایگان برای تصویرسازی داده تعاملی در سال ۲۰۲۱ - بدون نیازبه کدنویسی برای شما مفید باشد.

۷. نمایش (Demonstration)

حالا برنامه ماشین‌حساب آماده است و ما می‌توانیم آن را با قرار دادن تمام مقادیر ورودی مورد نیاز حقوق و هزینه‌ها آزمایش کنیم.

شکل ۹: ماشین‌حساب ایجاد‌شده
شکل ۹: ماشین‌حساب ایجاد‌شده

با قرار دادن تمام مقادیر ورودی درآمد و هزینه‌ها در بالا، برنامه ما محاسبه خواهد شد و حقوق، هزینه‌ها و پس‌انداز ماهانه فعلی را به ما نشان خواهد داد.

شکل ۱۰: نمایش حقوق و درآمد و میزان صرفه‌جویی
شکل ۱۰: نمایش حقوق و درآمد و میزان صرفه‌جویی

اکنون، اجازه دهید با قرار دادن تعداد سال پیش‌بینی، نرخ تورم برآورد شده و نرخ رشد حقوق و دستمزد ادامه دهیم.

شکل ۱۱: مقداردهی به ماشین‌حساب
شکل ۱۱: مقداردهی به ماشین‌حساب

هنگامی که مقادیر بالا وارد شدند، نمودارهای خطی نمایش‌ داده‌شده در نمودار خود را خواهیم دید.

شکل ۱۲: نمودارهای خطی
شکل ۱۲: نمودارهای خطی

این نمودار یک برنامه پس‌انداز سالم را در ۵ سال آینده نشان می‌دهد. با فرض نرخ تورم سالانه ۵٪، درآمد / حقوق پیش‌بینی بسیار بالاتر از هزینه‌های پیش‌بینی باقی می‌ماند. صرفه‌جویی حاصل از پیش‌بینی به طور پیوسته در طول سال در حال افزایش است.

اکنون، اجازه دهید مقادیر ورودی خود را برای رشد حقوق سالانه و نرخ تورم بهبود بخشیم.

شکل ۱۳: مقداردهی در برنامه
شکل ۱۳: مقداردهی در برنامه

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

شکل ۱۴: تاثیر نرخ تورم بر حقوق و پس‌انداز
شکل ۱۴: تاثیر نرخ تورم بر حقوق و پس‌انداز

در حدود ۴تا ۵ سال از زمان، هزینه‌های ما از درآمد ما پیشی می‌گیرد و از آن زمان به بعد ما شروع به صرفه‌جویی در پس‌انداز خود می‌کنیم. اگر تعداد سال‌های پیش‌بینی را به ۱۰ سال افزایش دهیم، پس‌اندازهای پیش‌بینی در سال هشتم به بعد منفی خواهد شد.

شکل ۱۵: پیش‌بینی پس‌انداز برای ۱۰ سال
شکل ۱۵: پیش‌بینی پس‌انداز برای ۱۰ سال

ما می‌توانیم وضعیت بدتری را تصور کنیم اگر هزینه‌های اضافی یا تعهد در طول سال‌ها داشته باشیم (به عنوان مثال وام مسکن، کودکان و غیره). این دلیل این است که یک برنامه‌ریزی مالی مناسب و دقیق قبل از هر‌گونه تعهد مالی اضافی بسیار مهم است.

نتیجه‌گیری

ماشین‌حساب برنامه‌ریزی مالی ارائه‌شده در اینجا به ما یک تصویر کلی از درآمد آینده، هزینه‌ها و پس‌انداز جمع شده‌مان می‌دهد. ما می‌توانیم انتخاب کنیم که ماشین‌حساب را بر اساس نیازهایمان با قرار دادن زمینه‌های ورودی بیشتر برای به دست آوردن منابع درآمد کاربر و حوزه‌های هزینه‌ها، سفارشی‌سازی کنیم. این امر منجر به یک تصویر حتی دقیق‌تر خواهد شد. از نتایج نمونه بالا، ما همچنین می‌توانیم یاد بگیریم که یک طرح سرمایه‌گذاری اضافی یا منابع درآمد جانبی ممکن است برای حفظ وضعیت مالی سالم از سالی به سال دیگر بسیار مفید باشد.

از سوی دیگر، هدف این مقاله نشان دادن یک مورد استفاده ممکن از Streamlit در توسعه یک برنامه کاربردی داده در امور مالی است. وجود Streamlit در بازار فن‌آوری ما به ما یک پلتفرم آسان برای ساخت و استقرار هر نوع برنامه کاربردی داده را به سرعت داده است.

این متن با استفاده از ربات ترجمه مقالات علوم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.