<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>מודולים, קבצים ו-JSON on kodkod | מבואות קודקוד</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/</link><description>Recent content in מודולים, קבצים ו-JSON on kodkod | מבואות קודקוד</description><generator>Hugo</generator><language>he</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/index.xml" rel="self" type="application/rss+xml"/><item><title>Modules: למה מחלקים לקבצים, import, from ו-as</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/01-modules-and-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/01-modules-and-import/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;מהו &lt;strong&gt;Module&lt;/strong&gt; (מודול).&lt;/li&gt;
&lt;li&gt;למה מחלקים פרויקט ל&lt;strong&gt;כמה קבצים&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;שלוש צורות ייבוא: &lt;code&gt;import&lt;/code&gt;, &lt;code&gt;from ... import&lt;/code&gt;, &lt;code&gt;as&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;מה &lt;strong&gt;בדיוק&lt;/strong&gt; קורה כש-Python מייבאת קובץ.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;כבר השתמשנו במודולים: &lt;code&gt;import os&lt;/code&gt;, &lt;code&gt;import logging&lt;/code&gt;, &lt;code&gt;import socket&lt;/code&gt;. היום נכתוב &lt;strong&gt;משלנו&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Packages, ‏__init__.py ו-if __name__ == "__main__"</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/02-packages-and-main-guard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/02-packages-and-main-guard/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Package&lt;/strong&gt; (חבילה) — תיקייה שמכילה מודולים.&lt;/li&gt;
&lt;li&gt;הקובץ &lt;strong&gt;&lt;code&gt;__init__.py&lt;/code&gt;&lt;/strong&gt; ותפקידו.&lt;/li&gt;
&lt;li&gt;ייבוא מתוך Package.&lt;/li&gt;
&lt;li&gt;המשתנה המיוחד &lt;strong&gt;&lt;code&gt;__name__&lt;/code&gt;&lt;/strong&gt;, והתבנית &lt;strong&gt;&lt;code&gt;if __name__ == &amp;quot;__main__&amp;quot;:&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;כשיש 3 מודולים, הם יכולים לשבת באותה תיקייה. כשיש 30, צריך &lt;strong&gt;תיקיות&lt;/strong&gt;: כל מה שקשור למשתמשים בתיקייה אחת, כל מה שקשור לתשלומים באחרת. כך בנויים כל הפרויקטים האמיתיים, וגם כל הספריות שתתקינו (FastAPI הוא Package ענק עם עשרות תת-Packages).&lt;/p&gt;</description></item><item><title>עבודה עם קבצי טקסט: open, with, קריאה וכתיבה</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/03-text-files-with/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/03-text-files-with/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;פתיחת קובץ&lt;/strong&gt; עם &lt;code&gt;open&lt;/code&gt; ו&lt;strong&gt;מצבי פתיחה&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;למה &lt;strong&gt;חייבים לסגור&lt;/strong&gt; קובץ, ואיך &lt;strong&gt;&lt;code&gt;with&lt;/code&gt;&lt;/strong&gt; עושה את זה אוטומטית.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;קריאה&lt;/strong&gt;: כל הקובץ, שורה אחר שורה.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;כתיבה&lt;/strong&gt; ו&lt;strong&gt;הוספה&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;נתיב &lt;strong&gt;עמיד&lt;/strong&gt;, כזה שלא תלוי במקום שממנו מריצים (הבטחנו בנושא מחשב, מערכת הפעלה ורשת!).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;נושא מחשב, מערכת הפעלה ורשת: &amp;ldquo;כל מה שב-RAM נעלם כשהתוכנית נגמרת&amp;rdquo;. קבצים הם הדרך הבסיסית לשמור מידע על ה-&lt;strong&gt;Storage&lt;/strong&gt;: הגדרות, דוחות, היסטוריה, נתונים לייבוא וייצוא. הספירה שתמיד חזרה ל-1 ב-&lt;code&gt;memory_test.py&lt;/code&gt;? היום נגרום לה לשרוד בין הרצות.&lt;/p&gt;</description></item><item><title>JSON: קריאה, כתיבה ושמירת נתונים</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/04-json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/04-json/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;מהו &lt;strong&gt;JSON&lt;/strong&gt; ואיך הוא נראה.&lt;/li&gt;
&lt;li&gt;איך JSON מתאים ל-&lt;strong&gt;dict&lt;/strong&gt; ול-&lt;strong&gt;list&lt;/strong&gt; של Python.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;שמירה&lt;/strong&gt; לקובץ וטעינה ממנו.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;המרה&lt;/strong&gt; בין מחרוזת JSON לנתונים.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;בשיעור הקודם שמרנו טקסט, ולשם כך המצאנו &amp;ldquo;פורמט&amp;rdquo; משלנו: &lt;code&gt;Dana,90&lt;/code&gt; בכל שורה. עכשיו נניח שלכל סטודנט יש &lt;strong&gt;רשימת&lt;/strong&gt; ציונים, &lt;strong&gt;כתובת&lt;/strong&gt; עם עיר ורחוב, ו&lt;strong&gt;דגל&lt;/strong&gt; &lt;code&gt;is_active&lt;/code&gt;. איך שומרים את זה בשורת טקסט? כל אחד ימציא פורמט אחר, ונצטרך לכתוב קוד פענוח מסובך.&lt;/p&gt;</description></item><item><title>מערך שיעור: Modules, Packages וקבצים</title><link>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/instructor-modules-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/python-modules-files/instructor-modules-files/</guid><description>&lt;p&gt;&lt;strong&gt;משך:&lt;/strong&gt; יום לימוד מלא — 6 שעות אקדמיות (270 דקות).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;מטרת השיעור:&lt;/strong&gt; הסטודנטים ילמדו לארגן פרויקט במספר קבצים ותיקיות, ולשמור מידע על ה-Storage כך שישרוד בין הרצות: בטקסט, ובעיקר ב-JSON.&lt;/p&gt;</description></item></channel></rss>