ROSS RHEINGANS-YOO: سلام، من راس هستم. و این یک سمینار CS50 است. این شما را از برنامه نویسی را در C به برنامه نویسی در پایتون. پایتون یک زبان برنامه نویسی است. آن را تا حد زیادی مانند C در نحو، هر چند برخی از از جزئیات فنی چگونه است که نحو اجرا می شود اندکی متفاوت هستند. آن را قوی کمتر از C در برخی از راه است. آن را کمتر رسا برای است که در آن دقیقا در کامپیوتر شما حافظه می شود گذاشته، چگونه آن را می شود گذاشته، هنگامی که آن را می شود آزادی و آن نوع از همه چیز. آن را در برخی از راه مفید تر از C، چرا که آن را آسان تر به برنامه در. زبان است، به برخی از مردم، بیشتر بصری. و در واقع، هدف این است که برای آن را به سریع تر به برنامه و به طور بالقوه آهسته تر به اجرا. حال اگر شما فکر می کنم در مورد مقدار زمان شما در آخرین خود را صرف مجموعه ای مشکل نوشتن کد خود را در برابر مقدار زمانی که شما صرف در آخرین مشکل خود را مجموعه اجرای کد خود را، شما می خواهم تصور کنید که به زبان که دو برابر سریع به ارسال شد و دو بار به عنوان آرام به اجرا، ممکن است یک بهبود بیش از C در برخی از راه. بدیهی است هنگامی که شما در حال تلاش برای ارسال برنامه های کوچک به انجام کارهای کوچک، پایتون یک زبان مفید از انتخاب است. و در پایان این سمینار، من امیدوارم که شما قادر به ایجاد انتخاب در پروژه های آینده در مورد زبان است که درست برای استفاده، نه ایده که یک زبان است اصلاح تمام وقت. چند چیز در مورد آنچه که سمینار است. این سمینار به در نظر گرفته شده آموزش به شما پایتون را از ابتدا. پایتون بسیار مشابه است به C، و من فرض که شما یک دانش آموز هستید CS50، یا کسی که با آشنایی با C. مشابه اگر شما دانش آموز هستید CS50 مشکل در اطراف مجموعه 6، بنابراین شما ام بسیاری از دید همه چیز در C، من شما را به تفاوت های عمده، و برخی از چیزهایی که پایتون مختلف و ویژه و مفید، اما من قصد ندارم برای رفتن چه یک زبان برنامه نویسی است و چگونه برای نوشتن برنامه. با این حال، این سمینار تدریس خواهد شد شما را به نوشتن برنامه های پایتون اگر شما یکی از آن چند گروه است. دوباره ما در چگونه نگاه شما می پیاده سازی psets-- که باید 1-6 می شود Python-- و ارائه اشاره گر به اسناد رسمی برای مراجعات بعدی. چیز دیگری که مهم است در مورد چگونگی این بحث اختصاص داده شده است، این فیلم خواهد بود آنلاین، حسن نیت ارائه میدهد از CS50، بنابراین شما باید احساس نمی شما نیاز به یادداشت برداری. شما همیشه می توانید به عقب برگردید و نگاه در آن بعد به عنوان یک مرجع است. علاوه بر این اسلاید در دسترس هستند در حال حاضر در این سایت، که باید را که شما انجام DOC گوگل. این یک نسخه کمی خلاصه است از آنچه که من نشان بر روی صفحه نمایش هستم. یک نکته دقیق قبل از ما در پرش، پایتون 3 زبان های مختلف از پایتون 2 است. آنها نگاه بسیاری همان. وجود دارد تفاوت های فنی بسیار جزئی که باعث برنامه نوشته شده در پایتون 2 نیست که قادر به اعدام می شود در محیط پایتون 3. دستگاه CS50 همراه با پایتون، به طور پیش فرض آن استفاده می کند پایتون 2. شما می توانید این را بررسی کنید تایپ کردن در خط فرمان خود را --version پایتون، که باید خروجی 2.7.6 بر روی دستگاه فعلی است. سعی کنید پایتون 3، که نشانی از کار در لوازم خانگی، اگر پیش فرض پایتون به 2.X.Y، یا در دستگاه و یا بر روی ماشین های خود را. شما باید پایتون 3 در هر زمان جایگزین در این بحث که من ارسال پایتون. اگر دستگاه شما در حال اجرا 2 به طور پیش فرض، نوع پایتون 3 به منظور قادر به واقع به دنبال همراه و اجرای این چیزها. علاوه بر این، من شما را به نقطه در منابع رسمی در حال حاضر. docs.python.org/3--~~V دقیق که این یک 3 و نه یک 2-- دارای منابع مفید است. آموزش شما را از طریق خیلی از چیزهایی مشابه که من در حال حاضر انجام می دهند، به جز به صورت متن. به عنوان یک مرجع مفید است مرجع برای زبان، و کتابخانه استاندارد می دهد شما برخی از برنامه های افزودنی با قابلیت های اضافی. بنابراین یک برنامه پایتون اول. در سمت چپ ما باید استاندارد C، در سمت راست، ما باید پایتون. شما ممکن است به رسمیت شناخته شده این مشکل، آن را یکی از مشکل اول مجموعه در CS50، و این حل آن با استفاده از راه حل است. در حال حاضر، به این دلیل است که ما نگاه کردن به این طرف توسط طرف است، بنابراین ما می توانیم در نگاه تفاوت نحوی. یکی از فیل ها در اتاق که شما ممکن است متوجه سمت راست کردن خفاش، است که پایتون است بسته بندی تابع اصلی در کد. بنابراین در C، شما یک دسته از ارسال فایل، شما آنها را به هم، و اجرای برنامه شروع می شود در این چیزی به نام int اصلی. در پایتون، شما ارسال نامه فایل شما، اجرای فایل، برنامه شروع می شود اجرای در بالای فایل. بنابراین آن را به شروع در بالای فایل پایین تا زمانی که چیز دیگری پیدا کنید. اگر آن را پیدا تعریف یک تابع، آن را نمی خواهد در واقع از آن کد اجرا، آن را به سادگی تابع را تعریف کنیم. اما در اینجا، هنگامی که اولین برنامه N برابر با 10، اولین چیزی که این برنامه انجام خواهد داد این مقدار از 10 و آن را به یک متغیر به نام N. صحبت از آن خط، یکی از دیگر چیز sorry-- این بدان معنی است که برنامه های C، شما آنها را ارسال، شما آنها را را، که استناد برخی از دستورات صدای جرنگ جرنگ، و سپس شما اجرا نتیجه های اجرایی. برنامه های پایتون، شما را اجرا متن file-- این mario.py ممکن این فایل که من فقط نشان داد you-- شما که فایل اجرا و شما را اجرا، و محتویات آن اعدام خواهد شد مفسر پایتون. شما می توانید این را در IDE خود را انجام دهید. بنابراین اگر من یک فایل سلام، که به سادگی این مطالب. این است که در واقع پایتون 2، پایتون 3 نیست، به طوری که نگرانی در مورد نحو در حال حاضر. اما من اجرا پایتون، در hello.py، و آن را اجرا می کند. راه دیگری که من می توانم پایتون که با استفاده از من نمی خواهد با خیلی در این بحث مقابله، اگر من فقط نوع پایتون، آن را من قطره را به محیطی که در آن من می توانم آن خط پایتون توسط خط تغذیه می کنند. بنابراین در اینجا، اگر نوع من در فضای چاپ hello، جهان »است. نوع را وارد کنید. آن را به من تف که پشت نتایج که خط منحصر به فرد بلافاصله. این ممکن است مفید باشد. در این بحث من چیز در اسلاید را انجام دهد. و به این ترتیب شما قادر خواهید بود به دنبال همراه هم در اینجا، و یا با نوشتن فایل های واقعی و سپس آنها را اجرا. اما، رفتن به این کد، یک چیز دیگر که شما ممکن است noticed-- خوب، وجود دارد دو چیز است که شما ممکن است متوجه این بلوک. اولین، و نه بیشتر دنیوی، این است که پایتون هیچ نقطه و ویرگول فرار است. سمی کالن در همه جا اختیاری هستند و بی ضرر در همه جا. شما می توانید آنها را اضافه کنید. این ممکن است افرادی که نوشتن را پایتون یک پوزخند زندگی در شما پشت سر خود را، به دلیل آنها لازم نیست. آنها اغلب نشانه ای از بودن بیش از برگزار هستید از ج طراحان زبان احساس می کنم که این راه روشن تر است و لازم نیست به اعلام هر بار که شما به پایان یک خط است. چیز عجیب و غریب دیگر در مورد این N است آن را یک نوع متصل شده است. یکی از قطعات سحر و جادو از Python-- و من قصد دارم به آن پاسخ سحر و جادو، اما بسیار وجود دارد به دلایل فنی و چرا از آن works-- یکی از قطعات سحر و جادو از پایتون این است که متغیرهای می توانید گسترش یا کوچک حاوی هر چه اطلاعات انواع شما آنها را به می خواهید. بنابراین این یک 10 است. اگر بعد از پایین من به این اختصاص داده N 0.5، در آن بود را که 0.5. مهم نیست که آن را از نوع int در اینجا و شناور وجود دارد، هر چیزی که با استفاده از این N خواهد، بیشتر یا کمتر، قادر به صدای لوکوموتیو همراه اگر از آن می شود هر کدام از این. مگر اینکه برخی بسیار واقعی وجود دارد به همین دلیل آن می توانید داده ها استفاده کنید نوع می باشد که در حال حاضر دارای N، که در آن نقطه آن را دریافت گوه و پرتاب خطا، و کسانی که چیزها. اما در اینجا، پایتون واقعا مهم نیست که چه آن است که من قصد دارم به چوب در این جمله، مانند، شما می خواهید این چیزی؟ این چیزی که در آن؟ آره، آن نوع از یک چیز است. من آن را در پایان می چسبد. این یک مشکل می شود بعد از آن، اگر کسی که می خواهد به استفاده از آن پایان می توانید آن را تحمل کنم. این یکی از عمده است تفاوت های بین پایتون و C که باعث می شود آن را به آسان نوشتن برنامه های بسیار بزرگ C و باعث می شود آن را آسان تر به ارسال برنامه های پایتون بسیار کوچک است. برای نحو بسیار نیست در چه می کند متفاوت است. آن را کمی متفاوت در چگونه آن را بیان می شود. بنابراین این است که بسیار، آنچه که به نام پایتونی، راه نوشتن آن. برای ردیف در محدوده (N)، این است که وسیعی از اعداد از 0 تا N، فراگیر در پایین و منحصر به فرد در بالا. پس از آن از 0 تا N-1، که دقیقا همان چیزی کد C انجام شده است، به جز آن را بسیار ساده تر به شاید نگاه کنید. بلوک مربوطه است در این بازی با پرانتز تنظیم نشده است، به جای آن مجموعه ای خاموش این دندانه. پس همه از این خطوط چهار فضاهای را به سمت راست، و یا مانند مورد عرض فیل. و کسانی هستند که هستند رفتن به در این برای اجرا شود. اگر من یک ظرف غذا تا دندانه در این و من فشار که چاپ بازگشت به دندانه اصلی، که چاپ برای حلقه ترک خواهد کرد. در مقابل به C، که در آن در اینجا من در واقع نیاز به حرکت که بند بسته است. این به این معنی است که شما اشتباهات نیست که پرش در شما به خاطر شما قرار دادن یک بند در محل اشتباه است. این به آن معنا است که شما اشتباهات که پرش در شما به خاطر شما فاصله دار یک اشتباه خط. پس از آن را دندانه فوق العاده مراقب باشید. امیدوارم شما بودن فوق العاده بود مراقب باشید با دندانه خود را به هر حال، و بنابراین این است که خیلی بیشتر از یک بار. اما یک قانون اساسی برای پایتون، و ما چند تا از این دارند که ما را از طریق از طریق رفتن این دوره از بحث، است سعی نحو طبیعی قبل از به دنبال هر چیزی تا. بنابراین این نحو، برای این تعداد در محدوده، از نظر سبک بسیار متمایز است. بسیاری از چیزهایی که در پایتون ما در نظر گرفتن این فرم را ببینید. و بنابراین اگر شما می آیند تا با یک شی جدید که شما فکر می کنم شما باید قادر باشد تکرار بیش از این، در این قالب، تبدیل کردن آن احتمالا پشتیبانی از این فرمت. ما قصد داریم به فوق العاده در عمیق دلایل فنی چرا که درست است. اما این یک شهود مفید به این وقتی شما در حال نزدیک برنامه های پایتون، که این چیزی که فقط رفتن به کار می کنند. سعی کنید آن را. راه اندازی خط فرمان مترجم، ببینید که اگر آن کار می کند، حرکت با همه چیز، قبل از شما حتی نیاز به باز کردن گوگل و می گویند، چه نحو است برای این چیزی خاص؟ بسیاری از شما می توانید پایتون کشف فقط با تلاش. این اگر حتی بیشتر شبیه به C سپس FORS هستند. توجه داشته باشید که هیچ پرانتز وجود دارد. پرانتز، دوباره، بی ضرر اما غیر ضروری. یک روده بزرگ در پایان وجود دارد درست مثل برای حلقه، و دوباره، بلوک های نسبی هستند فاصله دار به جای خاموش شده توسط پرانتز تنظیم شده است. این چیز دیگری است در اصلی سطح دندانه، و بلوک های مرتبط با آن دوباره فاصله دار است. کسانی که کار دقیقا همان طور که در C. انجام این است که در واقع بسیار مشابه. باز هم، یکی از شخصیت ها از دست می دهد چاپ کردن از تابع () printf شما برخی از رشته منتقل می کند. به نظر می رسد رشته هم می تواند به مشخص کردن نقل قول یک یا دو علامت. هیچ تفاوت وجود دارد، به جز که در داخل از نقل قول تکی شما می توانید استفاده به نقل از دو با رها، به جای داشتن به فرار همه آنها. و در داخل دو علامت، شما می می توانید نقل قول تنها با رها کردن استفاده بدون نیاز به آنها فرار کنند. اگر شما می خواهید به مخلوط آنها، شما قطعا می توانید آنلاین نگاه کنید که چگونه به انجام این کار. شما متوجه خواهید شد که در اینجا، من در پایان پشت سر گذاشته = این چیز. این یک نمونه از یک اختیاری است بحث، که یکی از آن چیزهایی است که پایتون پشتیبانی که باعث می شود آن بسیار مفید است. بنابراین چاپ در واقع تا به بسیاری از استدلال، که معمولا مجموعه ای به طور پیش فرض خود ارزش، اما در اینجا من تصمیم به نادیده گرفتن یکی به نام پایان. به این دلیل که من به نادیده گرفتن آن را با یک رشته خالی که چاپ در پایتون می باشد، توسط به طور پیش فرض، چاپ یک خط جدید پس چیزی که شما آن را گفت بیش از حد. بنابراین این هش است که در واقع به رفتن نسخه قابل چاپ کردن یک رشته هش در یک خط جدید. و اگر من نمی خواهم هش برای چاپ کردن یک خط جدید پس از آن، پس از آن باید بگویم یکی را چاپ کنید. اما، در عین حال بسیار، یکی از آخرین چیزی که این برنامه از دست رفته است که یکی است یک at بالا عبارتند از. چاپ به پایتون پخته بنابراین اساسا که هیچ هدر و یا ماژول وجود دارد که شما نیاز به شامل، هر چند اگر می خواستم شامل چیزهای دیگر در یک اسکریپت پایتون، من آن را در یک format-- بسیار شبیه انجام کلمات فقط کمی متفاوت است. اشاره کردم که ما یک اصلی لازم نیست در اینجا، به این دلیل که پایتون شروع می شود اجرای در بالای صفحه. اگر من می خواستم به بسته بندی این را در یک تابع، من آن را مانند this-- من می گویند دف نام تابع، استدلال ممکن است در اینجا و خواهیم دیدن برخی از کسانی که بعد از، روده بزرگ، و پس از آن دوباره، این کل بلوک تنظیم کردن چیزی است که عملیاتی بلوک برای آن تابع. بنابراین این تعریف است از تابع. و اعلام وجود دارد، سپس به پایین در اینجا، من فقط می توانید از تابع پاسخ. و دوباره، این برنامه مترجم، با شروع در بالا، خواهید دید این تعریف است. آن را به این تا زمانی که اجرا نمی دریافت در اینجا، و سپس آن را مانند، آه در حال حاضر شما آن را به نام من حدس می زنم من باید آن را اجرا کند. چیزی که بسیار معمول است در فایل های پایتون را مشاهده کنید، به خصوص فایل های پایتون به عموم مردم منتشر شد و توسعه یافته و توسعه یافته و by-- نگهداری می شود، چیزی از این فرم است. این است که به دلیل basically-- پایتون، شما در بالا شروع و سپس شما را اجرا به پایین، من اگر من فقط به حال ماریو به نام از اینجا، پس از آن هر زمان من شامل این فایل را در فایل دیگر، چون من می خواستم به استفاده از عملکرد ماریو است که فایل های دیگر را همچنین این پاسخ به ماریو در آن است. و هنگامی که من زد که فایل، آن ماریو پاسخ. پس از آن ممکن که فقط من می خواهید برای اجرای این اگر من در واقع اعدام این فایل خاص. و بنابراین من می تواند این در بسته بندی واصطلاح شبیه به این، که در آن من می گویم، اگر نام این اعدام محیط زیست اصلی است، پس از آن من می خواهم به انجام این کارها. در غیر این صورت فرد دیگری می توانید use-- شامل تابع من فایل من، و فقط برای گرفتن دسترسی به این توابع بدون نیاز به اجرای همه چیز که من می خواهم به اجرا در این پرونده. این است، دوباره، اختیاری اما بسیار رایج است. این چیزها entirely-- هستند دقیقا به همان بین C و پایتون، قطعا در 3. من در 2، عملگر تقسیم فکر می کنم گاهی اوقات به شما می دهد که تماس شناور شما در نوع داده int عمل، و هم شما می خواستم که یا شما نیست. اما علاوه، منفی، و بار کار دقیقا مانند شما انتظار می رود، به جز بیش از انواع کمی بیشتر. بنابراین شما می توانید شناور توسط ضرب نوع داده int، و کسانی که چیزها. مجموعه ای کار می کند دقیقا همان است. شما می توانید دو علامت مساوی استفاده کنید. inequals-- بیشتر از کمتر، از این گونه چیز دارای معانی که شما با آنها آشنا هستید. که در آن C با استفاده از این اپراتورها، پایتون با استفاده از کمی بیشتر انگلیسی آنهایی که قابل خواندن است. بنابراین به جای دو، آمپرسندهای، شما می به معنای واقعی کلمه نوع کلمه "و"، "یا" یا نه." مانند در if-- خود را در خود عبارات شرطی، ما قبلا دیدم که این نحو در C مربوط به این نحو در پایتون. و نه بسیاری مختلف وجود دارد ، وجود دارد به جز برای کمی نقطه گذاری در اطراف دو طرف. باز هم، که در آن C را دیگری اگر، پایتون استفاده از الیف، اما این عمدتا تغییرات سطح. تکرار مانند این است که اغلب نوشته شده در این اصطلاح در پایتون. شما می توانید این نوع از تولید چیزی که با یک حلقه در حالی که در خارج اگر شما می خواهید، اما شما قطعا لازم نیست که. و دوباره، اگر شما می خواهید نسخه قابل چاپ کردن عناصر در یک آرایه شما ممکن است آن در این راه انجام. یکی از چیزهایی که سرگرم کننده درباره پیتون هر چند، این است که شما لازم نیست برای استفاده از این پارادایم، و شما می توانید یک استفاده یک کمی بیشتر زیبا. شما برای یک در مشهد است. بنابراین به جای رفتن در اینجا و در حال اجرا بر شاخص ها، و پس از آن بیرون کشیدن عناصر منحصر به فرد، شما بگویم برای به واقع فقط بیش از عناصر خود را اجرا کنید. و سپس هر آنچه شما انجام در داخل می تواند به طور مستقیم بر عناصر است که بسیار سرگرم کننده. و ما see-- ما استفاده که اصطلاح دوباره و دوباره که ما از طریق کد به راه رفتن. این است، دوباره، به عنوان مثال از چیزی که من پاسخ سحر و جادو پایتون، هر چند وجود دارد دلایل بسیار فنی و چرا از آن کار می کند. و چیزهای فنی وجود دارد که نیاز به درست باشد در مورد آرایه در برای این کار در پشت صحنه. این چیزی است که بسیاری از انواع که شما می خواهم انتظار این کار حال این برای اجرا شما در ساخته شده در زبان. چیز دیگری که آن خوب خواهد بود اگر این را در هر زبان کار می کرد، اما برخی از دلایلی است که چرا آن را نمی تواند وجود داشته باشد، این رشته برابر این تعداد را چاپ کنید. معلوم است در پایتون، این دقیقا آنچه شما می خواهم، است که فقط سرگرم کننده، و بدان معنی است که ما در واقع می توانید کاهش این برنامه، دوباره mario.c. به جای تکرار زیادی، ما می توانیم فقط می گویند، من می خواهم برخی از تعدادی از فضاها، من می خواهم تعداد رشته هش را، و برخی از رشته هش را در پایان. و دوباره، ما استفاده از این فرمت. در اینجا، ما در حال عبور در یک متغیر در این راه. باز هم، ما لازم نیست که به می گویند چه نوع متغیر آن است، و تنها بار ما خطاهای در زمان اجرا است. هنگامی که کسی تلاش می کند به تصویب چیزی در، آن را به تابع فقط خوب است. اگر ما در اینجا گوه به دلیل این است نه چیزی که شما می توانید محدوده بیش از ایجاد، من یک خطا در زمان اجرا را دریافت وجود دارد، و من باید به اشکال زدایی آن است که راه. اما در عین حال، من لازم نیست در مورد بسیار مراقب باشید چه می شود به تصویب رسید در، تا زمانی که در واقعی اعدام آن همه کار را بسیار پاک و من حتی می تواند این را یک کمی پاک کننده با استفاده از ساخته شده است در تابع خاص در رشته های، است که تراز راست. این فقط یک تابع بسیار مفید است دروغ گفتن در اطراف کتابخانه. آن را در مستندات اگر شما بروید و آن نگاه کنید. و من می گویم، من قصد دارم به این رشته، برخی از تعدادی از رشته هش را، و من می خواهم به راست توجیه پد it-- آن را با فضاهای به این طول. باز هم، این است که در اسناد و مدارک، که به ارمغان می آورد us-- من در واقع می خواهید از طریق کلیک کنید these-- که ما را به قانون دوم ما به ارمغان می آورد برای کتابخانه استاندارد Python-- روش تابع دوستان شما هستند. و آن را اغلب در حالی که ارزش خود را برای رفتن به دنبال من تعجب می کنم اگر یک چیزی که فقط می کند این وجود دارد. احتمالا وجود دارد. اگر شما می خواهم به پد یک رشته، اگر شما می خواهم دوست را به تماس نیمی از یک رشته، اگر شما می خواهم دوست به جستجو از طریق یک رشته، اگر شما می خواهم به سر و صدا چند چیز همراه با یک رشته با کاما از هم بین آنها، کتابخانه استاندارد وجود دارد هستند توابع برای انجام این کار. و آن را باعث می شود زندگی خود را ساده تر اگر شما از آنها استفاده به جای نورد همه چیز را در خود در پنج خط کد در اینجا، پنج خط کد است. که واقعا در شروع می شود اضافه کردن به زمان واقعی است. یکی از چیزهای جالب در مورد چگونگی این نام می شود. شما متوجه خواهید شد که یک چیز نقطه وجود دارد. من به برخی از شی در سمت چپ، و پس از آن من به نام یک نقطه یک تابع. این یکی از پارادایم که پایتون است با استفاده از روش برای اتصال به اشیاء. ما در مورد این صحبت است بسیار به طور خلاصه در پایان، اما می دانم که ما می توانیم هر دو عمل در همه چیز با در نظر گرفتن آن نقطه چیزی گفت هر چیز دیگری، و یا با تماس یک تابع است که طول می کشد آن شی و برخی از استدلال های دیگر است. بنابراین این هر دو راه است که همه چیز در پایتون انجام می شود. و اینکه آیا یک خاص قابلیت اجرا در این سبک و یا این سبک چیزی است که شما باید نگاه کردن تا زمانی که شما آویزان که یکی به احتمال زیاد به سقوط. است بیشتر یا کمتر منسجم وجود دارد فلسفه پایتون که شما بیشتر جذب با نوشتن تعداد زیادی در آن است. در برخی موارد، که یکی از این چیزی به عنوان اجرا طبیعی می شود. در حال حاضر، آن را فقط چیزی شما یاد بگیرند که شما کشف کردن هر چیزی که فردی است. کتابخانه بنابراین استاندارد توابع دوستان شما هستند، و آنها به شما اجازه نوشتن چیزهایی که تا این مقدار فضا واقعا در مدت کوتاهی، واقعا زیبایی. و این در واقع احتمالا بیشتر خوانا، من می خواهم بگویم، از برنامه C در آنجا. نه به ذکر است این واقعیت است که تا کوتاه شما می توانید یک فیل طیف مناسب در فضایی که ما را نجات داد. یک چیز دیگر، این یک پیاده سازی است ماریو که نقطه C، که من فکر می کنم کوتاه ترین شما می توانید آن را دریافت کنید. آن INT مطلع را نداشته باشند، اما آن ارزش 10 کد سخت راه همان است که این یکی. معلوم است که این یکی ساعت در 84 شخصیت، در حالی که پایتون 64 است. و این است که بی نهایت قابل خواندن از این زباله ها در اینجا. بنابراین پایتون در فضا کارآمد تر است. این کمی کمتر کارآمد در زمان، اما نه خیلی. لیست یک نکته مهم در پایتون. ما آنها را ندیده، اما آنها کار بسیار شبیه به آرایه در C انجام بنابراین در اینجا، شما می توانید آنها را اعلام، شما می توانید آنها را به یک چیز منتقل می کند. در حال حاضر مربع دارای مجموعه ای از این چیزها. باز هم، ما به عنوان اعلام نشده نوع، اما اگر ما همیشه سعی کنید به استفاده از آن، هر چیزی که شما می خواهم به انتظار کار بر روی یک آرایه از اعداد صحیح است که به کار بر روی آرایه ای از اعداد صحیح است. این چیز که شما مطلقا نمی تواند در C، به دلیل حافظه آن است که دست به دست در، اما بسیار آسان برای انجام در پایتون. اگر من می خواهم آرایه من به بزرگتر، من می توانم اضافه یک عنصر به آن و آن خوب است. آنچه که در پشت صحنه؟ مترجم خواهد رفت و گرفتن برخی از حافظه، و شاید آن را به یک دریافت کمی از حافظه اضافی، بنابراین من نیست، بنابراین من لازم نیست به بازتخصیص در هر زمان. اما چقدر بیشتر حافظه: آیا به آن نیاز دارید؟ این تصمیم نیست که شما را به، این تصمیمات که می مترجم است که به انجام. اینجا ما می بینیم وسیعی می توانید دو استدلال، اما هنوز هم برای رفتن به فراگیر از بالا به طوری که ما اضافه کردن 1 وجود دارد. این یک اصطلاح است که حتی بیشتر است راه هوشمندانه برای ارسال چیزهایی مثل این. آن را به نام لیست درک، و در اینجا چیزی است که ما در حال گفت است من می خواهم برای قرار دادن در من مربع برای هر مقدار از من در این محدوده است. این چیزی که در سمت راست می تواند یکی دیگر شود آرایه، و این چیزی که در سمت چپ به هر تابع خاص که در من به عنوان یک متغیر را و به من به برخی از نتیجه. آنچه که من قصد انجام دهید این است، من قصد دارم برای ساخت یک آرایه که همه این چیزها برای هر مقدار در این محدوده است. و این فوق العاده زیبا، فوق العاده کوتاه، و آن را بسیار روشن معنای آن چیست. این یکی از است چیز این است که دوباره، یکی of-- بسیار سمبل دلایلی که مردم مانند پایتون. اگر دوست دارید برنامه نویسی مثل این، پس از آن پایتون یک زبان شما ممکن است مانند برای یادگیری است. و دوباره، فنی وجود دارد دلیل این که چرا این کار می کند. اما تا آنجا که به ما مربوط می شود، ما بیشتر یا کمتر اهمیتی نمی دهند. بنابراین اگر شما می خواهید برای چاپ کردن لیست ها، برخی از اصطلاحات مشابه مفید هستند. برای من در این محدوده، ما می تواند صفحه اول از طریق تمام چیزهایی و سپس همه آنها را چاپ کنید. و شما خواهید دید اینجا لن. اگر شما همیشه می خواستم برای به دست آوردن طول آرایه، که در پایتون بسیار آسان است، آن را بسیار سخت در C. این نسخه قابل چاپ کردن دقیقا آنچه شما می خواهم آن را به انتظار می رود. ما همچنین می تواند، به عنوان ما را دیده ام قبل، تکرار بیش از عناصر آرایه به طور مستقیم، و پس از آن فقط در مورد صحبت آنها، به جای داشتن شاخص بازگشت به آرایه در هر زمان. و این چیزی است که شما می توانید انجام دهید این است. بنابراین در C، اگر شما چیزی بپرسید مثل این، چاپ می گویند، که آرایه ای از اعداد صحیح. که قطعا نه رشته، من می توانم آن را چاپ کنید. پایتون بیشتر یا کمتر مراقبت می کند. آن را مانند، یک راه وجود دارد که من می تواند این در به یک رشته تبدیل؟ آره، من انجام این کار. و بنابراین من فقط چاپ که از. این به این معنی که شما می توانید انجام کارهای like-- این بسیاری از قطعات سخت از بازی های پانزده، نوشته شده است خیلی خلاصه در پایتون. شما خواهید دید که وجود دارد این است که کمی of-- در اینجا من یک عدد صحیح را به یک رشته بازیگران ام، و من باید به انجام این کار دستی. و من قصد دارم به اضافه کردن آن را به یکی دیگر از رشته، در غیر این صورت و یا پایتون اشتباه گرفته می شود. اما اینکه آیا زمانی که شما اضافه کردن یک رشته را به عدد صحیح، من گمان می کنم برای به دست آوردن عدد صحیح تماس و یا یک رشته به عقب؟ اما باز هم، اگر شما فقط STR پاسخ در یک چیز، و آن را در هر احتمالی جهان را به یک رشته تبدیل، این احتمالا نمی خواهد تبدیل به یک رشته است. در اینجا، ما استفاده از دید لیست های تو در تو درک در سمت چپ، برخی از نمایه سازی، که دقیقا به عنوان شما می شود، به آن استفاده می شود، و برخی از چاپ کردن از همه چیز. باز هم، ما تعریف برخی از توابع و ما آنها را پایین پاسخ در اصلی که ما در واقع فایل را دریافت کنید. بازگشت کار می کند دقیقا مثل شما می خواهم انتظار می رود از کار با C. یافتن، ما می توانید راه اندازی چیزهایی مانند this-- در اینجا لیست درک است یک انتساب به یک متغیر وجود دارد، و ما در واقع می توانید آن را انجام حتی ساده تر. ما نیازی به ارسال جستجو، به دلیل ساخته شده است در به زبان است اگر این چیزی است که در این آرایه است. بازگشت درست، علاوه ازین غلط. به طوری که به طور کامل از پیدا کنید. تمامیت مرتب سازی بر شامل Calling چیدمان بر، که is-- اجراهای وجود دارد این به کتابخانه C خاص ساخته شده است. اگر شما می خواهم این را دوست مرتب کردن بر اساس عقب، شما می توانید این اختیاری نادیده گرفتن استدلال در جهت معکوس با درست است. و اگر شما می خواهم برای مرتب کردن بیش از رشته ها، که ساخته شده در نیز هست. بنابراین این است که می گویند این چیزهایی که شما نیاز به انجام هر روز، اما این ایده این است که این فلسفه پایتون می باشد، که همه این چیزها که شما می خواهم مرتب کردن بر اساس خواهید انجام دهید ساخته شده است در. و از همه توابع استاندارد، بنابراین مرتب سازی بر، طول، هر، پشتیبانی از ورودی منطقی ترین معقول است. شما تماس بر روی یک آرایه همان لن راه شما تماس بر روی یک رشته لن. شما multiply-- رشته شما مرتب کردن بر اساس به همان شیوه شما آرایه مرتب کردن. اکثر توابع استاندارد که مردم ساخت، و شخص ثالث کتابخانه هایی که مردم ساخت، چرا که آنها در حال تقلید طراحی از کتابخانه استاندارد، را می توان در همه چیز را که شما نام مانند، چگونه است که این فقط کار می کنند، در C. بیشتر یا کمتر، آن در پایتون کار خواهد کرد چرا که مردم پشت به شکل کار از چه چیزی است و پس از آن کار مناسب بر روی آن. پس دوباره، زمینه های فنی، اما باعث می شود زندگی ما را آسان تر به عنوان برنامه نویسان. بنابراین در اینجا فایل I / O است. فایل های I / O دارای تعداد زیادی از چیزهای کوچک است که آن را پیچیده، و بنابراین منابع وجود دارد آنلاین، اما به طور خلاصه، شما پاسخ باز بر روی یک فایل نام با یک نوع خاص. به طوری که خواندن، خواندن و ارسال، ارسال و یا اضافه کنید. شما به عنوان خوانده شده تعداد معینی از شخصیت و شما چاپ آن، شما سلام را دریافت کنید! منظور من، مثل این فایل به حال سلام! در آن، پاسخ به خواندن، و آنچه شما تماس دریافت کنید یک رشته است که تمام است از بقیه از آرایه، و یا همه از بقیه از فایل. اگر شما دوباره تماس بگیرید خوانده شده، شما در انتهای فایل هستید، و بنابراین شما نمی هر چیز و بنابراین شما نزدیک است. باز هم، این .close است و نه فایل نزدیک، به عنوان آن را در C. شود این بیشتر یا کمتر است، زیرا F است چیز، و شما می خواهم برای f به نزدیک است. اما فایل اصلی I / O است به ویژه پیچیده است. باز هم، اگر شما می خواهم به باز کردن یک فایل، اگر شما می خواهم به خواندن یک خط خاص، شما می توانید از خاص line-- ساخته شده است، قابل فهم برای آن وجود دارد. اگر شما می خواهم به ارسال چیزی، شما می توانید این ارسال. اگر شما می خواهم برای نوشتن فردی گزش، شما می توانید آن ارسال. و اگر شما می خواهم به تکرار بر خطوط یک فایل به صورت جداگانه، که ما در یک قطعه از انجام چند هفته پیش، شما می توانید که به انجام است. باز هم، بسیاری از اشیاء که شما می خواهم خواهم که قادر به تکرار بیش از تکرار پشتیبانی بیش از آنها. در مار پیتون، یک فایل است شاید یک چیزی که من می خواهم به تکرار بیش از خط به خط. اگر آن را یک فرهنگ لغت بود از کلمات و من تلاش می کنند فردی کلمات، پس از آن، در این حلقه، خط آن را برای رفتن به هر کلمه به نوبه خود و این برای رفتن به هر خط اجرا شود در فایل تا پایان فایل. و دوباره، اگر من چاپ هر خط، خطوط با خطوط جدید می آیند، بنابراین من تنظیم پایان به یک چیز مثل این عقب. سپس من می خواهم محتویات فایل من دریافت کنید. دومین چیزی که که در عمل در برخی از روش های مانند لیست ها، و در برخی از روش به عنوان چیزی قابل ملاحظه قوی تر، واژه نامه ها، که واقعا سرد برای استفاده، اما در واقع هش جداول در لباس مبدل. شما با استفاده از دقیقا یک ایجاد دو شخصیت، که بسیار جذاب اگر شما سعی به پیاده سازی جدول هش برای مجموعه ای مشکل شما، شما می دانید که درد بسیار است که می تواند. اما مردم انجام داده اند آن، و آن را به خوبی انجام می شود، که شما لازم نیست که در مورد آن نگران باشید دیگر. پس از آن شما می توانید همه چیز فرد را وارد کنید. tables-- هش یا واژه نامه به خصوص نیست مراقبت از آنچه شما در حال ذخیره سازی در آنها است. بنابراین اگر برخی از نوشته های اعداد است، و برخی از نوشته لیست ها، اگر برخی از نوشته های دیگر فرهنگ لغت هستند، و برخی از نوشته رشته ها، پایتون به مراقبت چندانی نمی کند. دوباره، اگر شما را به آن بروید انتظار یک رشته و آنچه شما تماس گرفتن یک آرایه است، که مشکل شما است. و شاید تقصیر از هر کس فکر آن بود قرار دادن همه چیز در فرهنگ لغت، شاید که شما بود. اگر که کسی بود دیگری، امیدوارم آنها به خوبی در مورد آنچه رفتار رفتن در فرهنگ لغت و هیچ مشکلات را ترک نمی کند برای شما به سقوط. اما توابع استاندارد شما همه چیز به خوبی رفتار می دهد. به طوری که آنها می گویند این بازده یک فرهنگ لغت از رشته ها، سپس همه چیز شما در حال رفتن به خارج شدن از یک رشته است. اگر شما برخی از این انجام دهید و آن سفر شما، به خوبی، که ممکن است در شما می شود. پایتون مطمئنا می دهد شما به اندازه کافی طناب به خودتان آویزان، اگر شما می خواهم. در حال حاضر ما می توانید نسخه قابل چاپ کردن فرد عناصر این و این بازده دقیقا همان چیزی که شما انتظار دارید. دقیقا همان چیزی که شما انتظار دارید، من حدس می زنم، یک عبارت است که من با استفاده از زیادی است، اما این بیشتر و یا کمتر چگونه کار می کند پایتون. اگر شما برای یک چیزی بپرسید که نه آن، پایتون بیرون انداختن یک خطا و آن را به شما از ترک هر برنامه شما در بود. این در واقع را چاپ اطلاعات بیشتر از آن، آن را اشاره you-- آن را خواهید اضافه کردن یک خط، و غیره. و دوباره، شاید ما می خواهیم به تکرار بیش از لغت نامه و پیدا کردن همه چیز در آن است. در اینجا ما به تکرار بیش از دو چیز را در همان زمان. و بنابراین ما آن را با یک کلید، ارزش انجام دهید، اما پس از آن را چاپ کنید همه از این. و اگر ما می خواستیم به cast-- اگر ما در واقع این زد، ما به دلیل برخی از مشکلات دارند شماها زمانی که ما در با دیوید رفت، آن را نمی تواند add-- اگر ما نمی برای اولین بار بازیگران آن را به یک رشته، ما می تواند که آرایه اضافه کنید از رشته بر روی یک رشته است. اما اگر ما آن را به بازیگران رشته کنیم، چیزی مثل این است که شاید آنچه ما می خواهم به خواندن. و این هجی است. ما فقط در چیز به عنوان خوانده شده. بنابراین ما می توانیم به عنوان خوانده شده در کلمات فردی به عنوان خطوط. ما را ریز ریز کردن آخرین چیزی، به طوری که روده بزرگ منهای 1 chomps کردن آخرین چیزی است که we-- آخرین کاراکتر از یک رشته است. ما می گویم. OK، هر یک از این می شود وارد این فرهنگ لغت، نقشه برداری به ارزش 1. ما به خصوص نیست در مورد که یکی مراقبت از خود، اما آن را فقط وجود دارد که می گویند، آه، خب، این چیزی که من در فرهنگ لغت قرار داده است. از آنجا که بعد از چیزی است که ما رفتن به انجام این است که ما رفتن به می گویند، خوب، اگر آن را در فرهنگ لغت در همه. باز هم، این چک برای عضویت است تا عامل با استفاده از یک کاملا متفاوت الگوریتم از آن را در یک لیست خواهد شد، اما ما آن را به همان شیوه، پاسخ که است برخی از این پوشش شکر پایتون همه چیز به طوری که آنها را آسان تر برای استفاده. و دوباره، ما دیده ایم چیزهایی مثل این قبل از. این است که اساسا پیدا کنید، و یا آن را دقیقا همان نحو به عنوان پیدا کنید، اما بیش از یک عامل ساختار کاملا متفاوت است. و ما به خصوص مراقبت. بنابراین کسانی که چیزهایی هستند که شما خواسته شد تا برای اجرای هجی. در این نرخ، ما در حال رفتن به کم و بیش همه از psets انجام می شود. رسید به طوری که اساسا فقط می آید به عنوان نادرست اگر آن را نمی چیزی در فرهنگ لغت مطابقت؟ ROSS RHEINGANS-YOO: بله، بله. و بنابراین، این است اقتباس از یک مشکل تنظیم که از شما می خواهد به انجام که دقیقا. رسید چرا خط منهای 1 وجود دارد؟ ROSS RHEINGANS-YOO: پس زمانی که شما در حال تکرار بیش از یک فایل درخواست برای توسط خطوط، خطوط با یک شخصیت خط جدید آمده در پایان it-- 1 منهای فقط به فروشگاه آن است. و این است که انعطاف پذیر به ویژه راه نمایه سازی به همه چیز. بنابراین اگر شما یک رشته، و شما می خواهم، خوب من رفتن به شروع در شخصیت سه و من قصد دارم برای رفتن به پایان است. 3 روده بزرگ را برای شما انجام دهد. اگر دوست دارید، من می خواهم برای شروع در آغاز و رفتن به آخرین منهای 1 شخصیت، روده بزرگ منهای 1. و اگر شما می خواهید از رفتن سوم تا منهای اول، پس از آن شما می خواهم بگویم 3 منهای 1. علاوه بر این، اگر شما می خواهید به صفحه اول به همه چیز شمارش را از پشت، شما فقط در صفحه اول با شماره منفی است. و از آنجایی که، که در آن C را منفجر و یا شاید خوراک شما حافظه دیگر شما لازم نیست دسترسی به گوش شما می توانید می گویند منهای 1 به معنی آخرین اما 1 کاراکتر در یک رشته. ماژول ها version-- هستند مکمل های به کتابخانه ها در C و برای بسیاری از چیزهای مفید هستند. بسیاری از چیزهایی را به شما می دوست دارید انجام دهید در پایتون، علاوه بر ساده دستکاری متغیرها، شما می خواهید به قلاب را به کتابخانه های بزرگ با بزرگتر رابط و بیشتر قابلیت برای تعامل با دیگر نقاط جهان. سیستم یکی از آن است با یک دسته از ابزار که برای تعامل مفید هستند با خود سیستم و آن را مانند SYS واردات واردات خواهد شد. مدارک بیشتر از وجود دارد که، که شما می توانید به اینجا بروید، یا شما می توانید در گوگل پیدا کنید توسط در Google SYS پایتون. شما تایپ می کنید در وارد کنید. لینک اول است برای رفتن به اسناد و مدارک در پایتون 2، از لینک دوم است که به شود پایتون مستندات 3. و اگر ما نوشت: از یک فایل که نگاه مانند this-- اگر به طور خاص، ما به دنبال در عامل در آرگومان های خط فرمان، ما به دست به انجام بسیار در اوایل این کلاس است. این مشکل نیست. شما می توانید از argv را دریافت کنید، که یکی از آن چیزهایی است است که توسط سیستم اجرا شده است. آن را به ساخته شده در بسته های پایه، اما دوباره، شما می توانید آن را با وارد کردن گسترش که قابلیت از سیستم. شما آن را SYS پاسخ. هر چه. در اینجا و argv است. در واقع وجود ندارد تعداد آنها در سیستم، چرا که شما می توانید آن را به راحتی از طریق تماس با لن را دریافت کنید. پس از آن ما چاپ که، پس ما در echo-args.py ترمینال ما بود. ما به عقب بر گردیم یک آرایه، که این استدلال اول است. باز هم، این است و argv 0 است، که نام از چیزی است که به نام کردم. اگر ما آن را با دیگری به نام استدلال، ما می خواهم آن را دریافت کنید. این یکی از راه های گرفتن است آرگومان های خط فرمان. اگر می خواهید که در آن شما به نوبه خود پرچم چیزهایی خاص در یا زیر پا بگذارند به طور پیش فرض خاص، دوست شما است argparse. و دوباره شما دریابید که آنلاین به پیتون در گوگل argparse. یک زن و شوهر از ابزار وجود دارد ماژول های که شما به خودتان پیدا کنید با استفاده از و دوباره، اگر شما هر زمان صرف از این زبان وارد jsons برای خواندن در داخل و خارج از JSON فایل ها، پیچیده نیست. شما برای باز کردن یک فایل، شما به نام json.load در آن فایل و شما را از پشت یک چیز است. چیزی که چیست؟ این یک شی JSON است. که در آن است که JSON است آرایه، پایتون است آرایه ها. که در آن است که JSON است آرایه های انجمنی، پایتون واژه نامه ها، رشته ها، و اعداد، و غیره. شما می خواهید به روگرفت که، شما می باز کردن یک فایل جدید، شما کمپرسی تماس بگیرید، و بارهای و افسردگی به در داخل و خارج از رشته ها. به طور مشابه، ترشی می شود به نام در واقع به همان رابط. آن را کمی مفید تر اگر شما در حال آزادسازی اشیاء پایتون. بنابراین اگر شما همیشه می خواستم به صرفه جویی یک نسخه از وضعیت فعلی یک متغیر برای آینده اجرا از برنامه خود، شور و ترشی پایتون کتابخانه برای انجام این کار. اگر شما هر گونه متغیر است که می تواند نوشته شده در کلماتی مانند و شخصیت ها و بایت مثل این فرهنگ لغت، ما می تواند نوشتن، ما می تواند آن را به عنوان ارسال مانند یک شی JSON، که بود به معنای واقعی کلمه این شخصیت. و سپس آن را بسیار آسان برای یک انسان برای باز کردن آن up-- باز کردن و آن را بخوانید. اگر ما به خصوص در مورد انسان از خواندن آن اهمیت می دهند، ما می تواند حتی بیشتر کارآمد بسته بندی به اشکال که بعدا می تواند غیر بستهای شود یا که بعدا می تواند متورم شود. و این موجب صرفه جویی 80٪ از فضایی که شما ممکن است اشیاء اگر شما آنها را کامل نویسی نوشت: از. شما ترشی پاسخ بسیار همان way-- کمپرسی، بار، و سپس شما همه چیز خود را به عقب. بنابراین اگر شما در حال نوشتن بسیار برنامه های پایتون کوتاه است که می خواهید برای ذخیره دولت، و سپس به عنوان خوانده شده آنها را به عقب بعد، همه چیز مثل این دوستان شما هستند. که شما می توانید بسیار به راحتی آنها را به عنوان JSON کمپرسی. بسیاری از اشیاء پایتون می توانید از JSON کمپرسی اگر هر گونه امید وجود دارد که ساختار آنها را می توان به این ترتیب ارائه شده است. این فقط نوک هستند کوه یخ در ماژول های که مفید هستند. بنابراین سیستم، سیستم عامل، چند، هستند مرتب کردن بر اساس اسب های کاری اساسی برای همه چیز ما نیاز به تعامل با سیستم عامل سیستم فایل.، مانند os.isfile، os.isdirectory، os.makefile، این دوستان شما هستند. اگر شما می خواهید را به ارتباط برقرار با یک نوع فایل خاص، JSON، ترشی، CSV. اگر می خواهید به تعامل با وب صفحات، urllib برای گرفتن HTTP صفحات. bs4-- BeautifulSoup-- آن یک تجزیه کننده فوق العاده برای HTML است. شما آن را اجرا بر روی اچ تی ام ال و شما این شی آرایه های تو در تو در حال حاضر، که شما می توانید بیش از گذشتن نگاه، با مانند فقط به دنبال اگر، است، در، که فوق العاده است. یک دسته از وجود دارد بسته بندی running-- برای انجام این کار به ویژه چیزهایی mathy. بنابراین اگر شما می خواهید به ضرب، برعکس، ماتریس تبدیل، numpy است که توسط مردم همه استفاده می شود در سراسر جهان برای آن است. scipy است حتی بیشتر مفید ابزار در این جهت. یادگیری ماشین sklearn--، پردازش زبان طبیعی، فوق العاده چیزهای مفید، می شود اجرا در پایتون تمام وقت. و دوباره، طول می کشد کمی دیگر به write-- با عرض پوزش، طول می کشد کمی طولانی تر برای اجرا، اما به این دلیل است که مهندسان و مستغلات تمایل استفاده پیتون است، زیرا شما تمایل به مسدود شده را بر روی شما از نوشتن کد، به جای از کامپیوتر شما در حال اجرا کد. بنابراین اگر شما در حال رفتن به ارسال برنامه، که بسیاری از افراد دیگر می رویم به استفاده برای همیشه، مانند لینوکس، شما ممکن است آن را در C. ارسال اگر شما رفتن به ارسال یک موتور محاسبه، شما ممکن است در پایتون اگر شما نیاز به ارسال به هر دو ماه آن را تغییر دهید. برخی از مردم آن را در ارسال C زیرا آنها مانند آن است. بنابراین ما دیده ایم SYS واردات به عنوان یک راه کارها گرفتن ماژول به برنامه شما. شما همچنین می توانید آن را به عنوان وارد یک نام مستعار، اگر شما می خواهم. دوباره مولتی درد است تایپ کردن در هر زمان، به طوری واردات به عنوان MP و پس از آن در هر زمان شما استفاده از آن در برنامه، شما می گویند mp.process، و یا آنچه شما داشته باشد. اگر شما می خواهم واردات تنها یک چیز واحد، بنابراین urllib تا به چیزی که به نام درخواست، بنابراین شما فقط می توانید وارد است. بعدها، شما آن را به عنوان استناد نماید urllib.request، اما فقط به عنوان درخواست توسط خودش. و شما می توانید همه چیز را وارد از یک ماژول اگر شما می خواهم. این گاهی اوقات یک idea-- خوب نیست این معمولا یک ایده خوب نیست، در واقع. از آنجا که شما چرا که اگر هر very-- در ماژول دارای یک نام که شما می خواستم به استفاده در جایی دیگر در برنامه های خود را، شما می توانید. و آن است که همیشه آشکار نیست که که این مورد. به منظور مطمئن شوید که آنچه شما انجام امن بود، شما نیاز به باز کردن ماژول و همه را ببینید از نام هایی که در نهایت در تمام توابع there--، تمام متغیرهای که زندگی در آن ماژول، دلیل این که شما در حال آوردن همه آنها را به فضای نام محلی خود را. بنابراین مردم این کار را. به طور کلی توصیه که شما این کار را نکنید. اما مردم این کار را تمام زمان زیرا آنها تنبل و نمی خواهید به نوع MP. هر چیزی، همیشه. این همه بحث در مورد ماژول من در اطراف را به یک بحث کوتاه در مورد نحوه برنامه به شما در طراحی در پایتون. گام اول این است که چک کنید اگر هر کس دیگری قبلا انجام داده است چیزی، و یا انجام 90٪ از چیزی. احتمال وجود آنها احتمالا، و شما باید چیزی را و اجرا که به. و یا ارسال یک پوشش در اطراف آن به آن انطباق با هدف خود را. آن را تنها پس از آن است شکست خورده که شما می خواهم پس از آن به در و write-- شروع فکر چگونه شما می توانید این چیزی که با هم قرار داده. بسیاری از مسائل وجود دارد خارج وجود دارد، و این یکی از مفید ترین همه چیز در مورد پایتون. مثل زبان است زیبا، زبان آسان برای استفاده، بلکه به دلیل است آن را بسیار زیبا و آسان برای استفاده، مردم اند با استفاده از آن را برای یک مدت زمان طولانی و در بسیاری از مسائل وجود دارد وجود دارد که شما می توانید مهار را برای استفاده خود. بنابراین آخرین حکومت پایتون، کسی است که دیگری در حال حاضر احتمالا نوشته یک ماژول برای که، کسی دیگری در حال حاضر احتمالا یک کتابخانه برای که نوشته شده است. قبل از اینکه شما سعی کنید به چیزی، نگاه برای دیدن اگر آن را اجرا شده است. آن است که سخت نیست. همه از ماژول که من قرار داده تا قبل، شاید با یک استثنا، از پیش نصب شده در هر نصب و راه اندازی پایتون استاندارد. و به این ترتیب با یک تماس به واردات هر چیز دیگری، شما همه از که قابلیت در نوک انگشتان خود را. شروع به نتیجه رسیدن این بحث، چند چیز وجود دارد که من به عنوان جعبه سیاه را ترک کرده ام و از روی یشمی و چند سفید نهفته است که من وجود دارد گفت که به خاطر صداقت، من در حداقل نقطه در اینجا، حتی اگر من نمی خواهد رفتن فوق العاده عمیق به همه آنها و توضیحات فنی خود را. بسیاری از چیزهایی که که من سحر و جادو به نام ام چیزی است که مردم دیگر پاسخ برنامه نویسی شی گرا. بنابراین بسیاری از چیز وجود دارد بنابراین متغیرهای بسیار اغلب نه بایت ساده نشسته در، حافظه است، اما بسیار پیچیده اشیاء است که داخلی دولت در مورد توابع و تعداد زیادی متغیرهای پنهان، تعداد زیادی از قابلیت های پنهان، که شما اجازه می دهد آنها را تبدیل به رشته ها، که اجازه می دهد شما را بر آنها تکرار. و اگر شما writing-- و به همین دلیل است که آنها همه از این قابلیت های غنی این دلیل است که people-- معماران language-- رفته اند از طریق و برای هر استاندارد شی، در قابلیت قرار دادن به این می گویند این است که چگونه این است این است که به کار اگر کسی می خواهد به تکرار بیش از آن است. بنابراین همه چیز که کسی ممکن است احتمالا می خواهید به تکرار بیش از، تا منطق نوشته شده در دستی به چگونه شما قرار به تکرار بیش از که شی. همه چیز که شما احتمالا ممکن است بخواهید ریخته را به یک رشته است منطق نوشته شده است. این تابع که شما اگر پاسخ است شما می خواهید به تخلیه این را به یک رشته است. به همین دلیل است که شما می توانید لن پاسخ در مسائل، این به همین دلیل است شما می توانید برای در پاسخ، این است دلیل شما می توانید بر روی همه چیز اگر در پاسخ که شما می خواهم می خواهم به، به دلیل کسانی که در تمام در حال انجام با آنها، دانش فنی چگونه به انجام این. این چیزی است که من است فوق العاده نیست برای رفتن به. اما برای چیزی که در لیست ماهرانه متفاوت از سبک C برای حلقه، و شما می توانید همه چیز در مورد که در به عنوان خوانده شده اینترنت اگر شما علاقه مند است. طرف تاریکی وجود دارد به همه این، که من ذکر شد، بنابراین دو چیز وجود دارد. اول این است که این شی گرا برنامه نویسی افزاید: بسیاری از سربار به چیزهای تصادفی، به طوری که شما را تا پایان تا با استفاده از حافظه خیلی بیشتر. شما را تا پایان با استفاده از یک کمی بیشتر زمان از شما را در غیر این صورت. other-- اما بیشتر سمت تاریک موذی به این است، اگر همه چیز درست عمل می کنند مثل شما آنها را می خواهید به شما را بدون نیاز به فکر می کنم فوق العاده سخت در مورد اینکه آیا این باید یک int شود و یا اینکه آیا باید وجود داشته باشد شناور، ممکن است که در اینجا شما را در تولید یک int اما در اینجا شما فکر می کنم اما آنها همیشه اعضای با عرض پوزش، ممکن است آن را که در اینجا شما تولید شناور، اما زمانی که شما به قسمت دوم از برنامه خود، فکر می کنی، آه، خب، اما آنها همیشه به من یک int منتقل می کند. و اگر آنها را انجام ندهید، این امکان وجود دارد که شما گوه جایی، اگر شما سعی می کنید برای استفاده است که به صفحه اول را به یک آرایه، و یا آنچه شما داشته باشد. بنابراین یکی از واقعی همه چیز در مورد C است مفید نیروهای شما را به فکر می کنم واقعا سخت قبل از شما را any-- قبل از اینکه شما هر متغیر را به وجود، مانند آنچه نوع این متغیر است. و آن را برای رفتن به که نوع برای همه زمان. این درست نیست پایتون، و در واقع، شما can-- اگر شما فقط هستید مرتب سازی بر رفتن از گوش، و شما را به برخی از تصمیم گیری یکی از راه های در یک مکان، و برخی از تصمیم گیری یک راه در جای دیگر بدون قرار دادن مسائل به اندازه کافی در پشت صحنه ها را در جای دیگری برای گرفتن همه چیز به درستی، شما می توانید برخی از اشتباهات بسیار عجیب و غریب است. و این برنامه می تواند در حال اجرا نگه برای مدت زمان بسیار طولانی، به دلیل آن انجام بسیاری از کار را به می گویند، خوب این چیزی که می تواند این طریق عمل، بنابراین من قصد دارم به اجرای آن است. و در واقع، این واقعیت است که آن را هل از طریق بسیاری از خطاهای کوچک رو به جلو این بدان معناست که، اغلب هنگامی که خطا در واقع بد است و شما در واقع می خواهم به آن را تعمیر، آن را پایان می رسد تا مایل away-- برنامه پایان می رسد تا توقف دور از زمانی که خطای خود را داشته باشند. و به این ترتیب یکی از چیزهایی که ما دوست داریم که برنامه انجام دهید، sometimes-- یک چیز که ما برنامه هایی مانند برای انجام به هنگام اشکال زدایی ما است شکست با صدای بلند و بسیار موفق به سرعت زمانی که چیزی را اشتباه می رود. پایتون که در آن خیلی بد است. پایتون نه بسیار خوب است عدم و نورد جلو از طریق همه چیز غیر منتظره. بنابراین این برای زمانی که مفید است شما در حال نوشتن برنامه های کوچک است. هنگامی که شما پیچیده اشکالات آن گاهی اوقات مدت زمان طولانی به آنها کسی را دست انداختن طول می کشد. بنابراین یک سمت تاریک به همه وجود دارد این، مانند آن را فقط کار می کند. این فقط کار می کند مانند شما می خواهم انتظار آن را به. تفاوت که زمانی که آن را نمی کند، شما به پایان در یک مکان کاملا متفاوت و تلاش برای کشف کردن که در آن از آن بود که شما را اشتباه رفت. جمع آوری زباله تا is-- یکی از چیزهایی که شما متوجه خواهید شد این است که هر یک از این چیزهایی که من به existence-- آورده ام این آرایه ها، این واژه نامه ها، این اشیاء، این فایل ها هرگز آزاد کنید. هیچ پاسخ وجود دارد رایگان در هر یک از این بحث. و که در C سمت بود، چرا که ما هرگز به کسانی که همه چیز است. اما در پایتون سمت است، وجود ندارد رایگان. همه چیز به طور خودکار دریافت رها شدن پایتون فکر می کند شما به دنبال نه در آنها است. این واقعا خوب است همه چیز آزاد نیست که اما ممکن است شما احتمالا به دنبال در، اما این بدان معنی است که اگر شما رفتن به تخصیص این چیز بزرگ، و شما مانند، آه هستید من انجام می شود با آن در حال حاضر، این مشکل برای پایتون به که شما با آن در حال حاضر انجام می شود. گاهی اوقات شما می توانید مجموعه ای که متغیر به هیچ، و سپس امیدواریم که در نهایت جمع آوری زباله می آید از طریق و پاک سازی آن است. اما باز هم، شما نمی کنترل بیش از آن است. و یکی از دلایلی است که مردم با استفاده از C واقعا برای عملکرد چیز مهم، این توانایی به واقعا می دانم زمانی که حافظه اختصاص داده شده است و هنگامی که آن را آزاد، و بسیاری از کنترل بر گفت، من با استفاده از هیچ حافظه بیشتر از من نیاز دارند. که چیزی است که پایتون است که بزرگ نیست. مخاطبان: آیا من می توانم از شما سوالی بپرسم؟ چه آیا منظور شما این شکست توسط صدای بلند؟ ROSS RHEINGANS-YOO: بنابراین اگر چیزی اشتباه رفتن و شما را در اشکال زدایی هستید حالت، شما می توانید اغلب می خواهید برنامه های خود را به شما بگویم جایی که دقیقا آن را اشتباه رفته، و نه فقط بی سر و صدا در حال اجرا را متوقف. اما شما می خواهم در واقع آن را به چاپ همه انواع اطلاعات در مورد دارید، در اینجا این بود. این چیزی که اتفاق افتاده اگر شما در حال چاپ wen-- اگر شما در حال اجرا یک وب server-- مخاطبان: [نامفهوم] ROSS RHEINGANS-YOO: بله، اگر شما در حال اجرا یک وب سرور، آن را گاهی اوقات بد اگر شما همیشه دور اشتباهات، و شما می گویید، خوب است که کار نمی کند. من قصد دارم به متوقف شود. من فقط رفتن را به چشم پوشی آن و نگه داشتن در رفتن. از آنجا که پس شما می توانید در صدها گرفتن از این اشتباهات و نه آنها را ببینید. آن را قطعا مفید خواهد بود برای اهداف اشکال زدایی اگر هر بار که وب سرور شما ساخته شده خطا، شما سوابق دوام داشته ام. شاید شما حتی می خواهید برنامه برای متوقف کردن، به طوری که کسانی که ثبت انجام دریافت زیر همه چیز به خاک سپرده شد. اما باز هم، که در حالت اشکال زدایی است. اغلب در حالت تولید، جهان کمی متفاوت است. و در متون بسیار کوچک است که من در حال اجرا، که در آن چیزی که من گفت به انجام ممکن است تنها کمی کردن از آنچه که من می خواهم آن را به انجام، پس از آن از طریق هل دادن خطاهای چیزی است که شما ممکن است بخواهید است. و در آن موارد، قطعا پایتون واقعا بدست آورده شروع می شود آن است. آخرین چیزی است که من صحبت نمی در this-- که من صحبت در مورد اما می تواند واقعا آزرده اولین زمان به شما یکی از این اشتباهات، و دوم و سوم و چهارم زمان شما باید یک این خطا است. پایتون، اشاره که از آن استفاده فضای سفید به شما بگوید چه سطح دندانه و آنچه از بلوک عملکردی شما هستیم، آن رفتار زبانه ها و فضاهای متفاوت است. بنابراین اگر شما تب بیش از چهار، و پس از آن خط بعدی دارای چهار فاصله، حتی اگر آنها نشان می دهد تا به عنوان همان مقدار در ویرایشگر خود را، پایتون آنها را درمان نمی همان. در واقع، پایتون زبانه رفتار و فضاهای مانند آب و روغن. آنها همه چیز فقط متفاوت است. هیچ خاص وجود دارد طول که یک تب است، پس از آن مانند یک تب برابر 8 نیست فضاهای، و بنابراین شما می توانید در اطراف آن که راه. مانند، هنگامی که آن را می گوید، چه سطح از فضای سفید من در هستم، آن است که در واقع برای دنبال الگوی فضاها و زبانه. و به این ترتیب، بهترین راه برای مقابله با این این است که همیشه استفاده از فضاهای تمام وقت. و در واقع، در از Cloud9 IDE و CS50 IDE، درج کلید Tab را چهار فضای در جای از یک تب، که فوق العاده مفید است. هر چند دوباره، اگر شما یک Python نوشته برنامه با زبانه که خوب خواهد بود، آن را فقط اگر کسی در رفت و سعی کنید برای اضافه کردن یک خط به برنامه خود را که چهار فضاهای برای هر تب بود، آن را بشکند. و آن را در راه شکستن که واقعا قابل رویت نیست. هر چند خطای واقعی پیام است که آن را می اندازد است که با جدید تورفتگی انتظار نمی رود در اینجا، or-- اگر آن را در مورد صحبت کردن را تو و به نظر می رسد این اشتباه است، آن را احتمالا به دلیل یک مشکل تب فضا وجود دارد. آنها هنوز هم برای اشکالزدایی را آزرده. بزرگترین طیف در این بحث، که من نمی به دلیل آن را واقعا پیچیده، موضوع ظریف، و لازم برای انجام هر گونه نیست از چیزهایی که ما تا کنون انجام داده ام، یک مفهوم به نام تاپل. آنها بسیار شبیه به وجود دارد آرایه های که شما نمی توانید تغییر دهید. آنها در سراسر محل به دلیل استفاده از آنها برای بسیاری از چیزهای مفید هستند که آرایه ها برای مفید نیست. اما اگر شما می خواهم به یک آرایه، و سپس وعده مفسر که شما هرگز به خواهید تغییر دهید که قضیه اینه واقع، اگر می خواهید تغییر دهید، شما یکی از جدید با جدید را ارزش ها در it-- آن تاپل می باشد. به جای تولید آنها را با براکت مربع، شما آنها را تولید با پرانتز. چرا شما این چیزها استفاده کنید، یک کمی از یک سوال است. . تنها چیزی که است که من می گویند در مورد که شما است می توانید به عنوان تاپل استفاده شاخص واژه نامه ها. شما می توانید آرایه به عنوان استفاده نمی شاخص واژه نامه ها. و به همین دلیل است، دوباره، فنی و من قصد ندارم برای اجرا به آن است. pset که من آن را لمس نمی کند در در این سخنرانی pset6 است. بنابراین در اینجا شما 'D پیاده سازی a-- در اینجا چگونه شما می pset6 در پایتون اجرا می کنند. با در نظر داشتن پایتون چرخه طراحی، اولین چیزی که که شما انجام زمانی که شما نوشتن برنامه چک است برای دیدن اگر کسی آن را انجام داده در حال حاضر. در واقع، اگر شما می خواهید به serve-- آپاچی 50 می کند در حدود این، به جز آن نمی آید استاندارد بر روی ماشین لینوکس نصب شده است. پایتون می کند، و پایتون سرور HTTP ساده می کند و همچنین. اگر تا به حال بر روی یک ماشین لینوکس هستید، و یا خارج از Cloud9 IDE از CS50 و شما می خواهم برای خدمت به این جریان دایرکتوری به یک پورت خاص، پایتون-M SimpleHTTPServer پورت آن است که. شما همچنین می توانید وارد سرور HTTP ساده و آن را کردم بسیاری از قابلیت های اگر شما می خواهید به آن را سفارشی، و یا تغییر آن، و یا در حال اجرا it-- مهار کردن آن را به اجرای خدمات سرور خود را. به طوری که پایتون به طور خلاصه. و این شده CS50. تشکر.