ROSS RHEINGANS-Yoo: Здраво, јас сум Рос. И ова е CS50 семинарот. Тоа ќе ве однесе од програмирање во C за програмирање во Python. Пајтон е јазик за скриптирање. Тоа е во голема мера како C во синтакса, иако некои на техничките детали на колку добива погубен дека синтаксата се малку различни. Тоа е помалку моќен од С, на некој начин. Тоа е помалку изразен за каде точно во вашиот компјутер меморија добива поставени, како таа добива поставени, кога ќе стане слобода и овие видови на нештата. Тоа е повеќе корисни од С, на некој начин, бидејќи тоа е полесно да програма во. Јазикот е, до одреден луѓе, повеќе интуитивна. И навистина, целта е за тоа да биде побрзо да го програмираат и потенцијално побавно да се изврши. Сега, ако се размислува за на износот на време сте потрошиле за вашата последна проблем во собата на пишување Кодот вашиот против износот на времето кое го минуваш на твојот последен проблем поставите извршување вашиот код, што би се замисли дека јазикот кој беше два пати толку брзо да се напише, и двапати како бавно за извршување, може да биде подобрување во однос Ц, на некој начин. Секако, кога ќе се обидуваш да се напише мали програми да се направи мали нешта, Пајтон е корисна јазик на избор. И на крајот на оваа Семинарот, се надевам дека ќе да биде во можност да се направи избор во идните проекти за кој јазик е точно да се користат, а не идејата дека еден јазик е многу поправите цело време. Неколку работи за тоа што на семинарот е. Овој семинар не е наменет за да научат да Пајтон од нула. Пајтон е многу слична до C, а јас сум под претпоставка дека сте студент CS50, или некој со слична блискоста со Ц. Ако сте студент CS50 целиот проблем во собата 6, Значи сте видите многу работите во C, јас ќе ви даде главните разлики, и некои од работите кои го прават различен Пајтон и посебна и корисни, но јас не одам да се обратите за она програмски јазик е и како да се пишуваат програми. Сепак, овој семинар ќе учат можете да напишете Пајтон програми ако сте еден од оние неколку групи. Повторно ќе се погледне како ќе се спроведе psets-- кој треба да биде 1-6 во Python-- и да се обезбеди совети до официјалната документација за во иднина. Од друга работа што е важно за тоа како е доделен овој разговор, Ова видео ќе биде онлајн, куртоазни на CS50, така да не треба да се чувствуваат како што треба да се забележува. Секогаш може да се врати и да се погледне на тоа подоцна како референца. Дополнително на слајдови се достапни во моментов на овој сајт, кој треба да ги правиш doc Google. Тоа е малку скратена верзија на она што јас сум покажува на екранот. Еден внимателен протест пред ние фрламе во, python 3 е различен јазик од Python 2. Тие изгледаат многу исти; има многу мали технички разлики што ќе предизвика програми напишана во Python 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 главната. Во Python, ти пишувам ќе датотека, извршување на датотеката, на програмата ќе почне извршување на врвот на датотеката. Па затоа се случува да се започне на врвот на датотеката одат надолу додека не се најде нешто друго. Ако најде дефиниција функција, тоа нема да се всушност извршување тој код, тоа едноставно ќе се дефинира функција. Но, еве, кога за првпат Програмата е n е еднакво на 10, првото нешто што оваа програма ќе го однесам вредност од 10 и го постави во променлива наречена n. Говорејќи на таа линија, една од други things-- sorry-- ова значи дека C програми, ќе ги пишувам, ќе ги направи, кој ќе се повикуваат некои ѕвекот команди, а потоа ќе се води резултира извршна. Пајтон програми, ќе се кандидира на Текстот file-- ова би можело mario.py биде оваа датотека, дека само што покажа you-- ќе се кандидира на таа датотека и ќе се изврши, и содржината на тоа ќе биде извршена од страна на Python преведувачот. Можете да го направите ова во вашиот ИРО. Па ако имам датотека Здраво, кој едноставно има оваа содржина. Ова е всушност Пајтон 2, не Пајтон 3, па не грижите за синтаксата за сега. Но, јас ќе се кандидира Пајтон, на hello.py, и тоа работи. Друг начин на кој можете да го користите дека Пајтон Јас нема да се справи со толку многу во овој разговор, е ако јас само напишете Пајтон, тоа ме капки во средина каде што Можам да го нахрани Пајтон линија по линија. Па еве, ако сум тип во печати простор "Здраво, свет". Напишете влезе. Тоа ќе ме плукаат, кој се врати на резултатите таа индивидуа линија веднаш. Ова може да биде корисно. Во овој разговор ќе се прават работите на слајдови. И така ќе биде во можност да го следат заедно или во тука, или со пишување Крај на датотеки и потоа да ги извршуваат. Но, да се вратам на оваа код, друга работа дека можете да имате noticed-- Па, има две работи кои можеби ќе известување за овие блокови. Првиот, а посекојдневни, е тоа што Пајтон нема коса запирка. Запирки се опционални насекаде и безопасно насекаде. Можете да ги додадете. Тоа може да има луѓе кои пишуваат Пајтон за дневна кикот на тебе за грб, бидејќи тие не се неопходни. Тие често се знак за се одржи во текот од В. дизајнери на јазикот чувствуваат дека тоа е повеќе јасно на овој начин и дека тоа не е потребно да се изјасни секој пат кога ќе се стави крај на линија. Уште една чудна работа за овој n е тоа не имаат еден вид спроведен. Еден од магијата парчиња Python-- а јас ќе одам да го наречеме магија, но постојат многу технички причини зошто тоа works-- еден од магијата парчиња Пајтон е дека променливи може да се прошири или да смалуваат содржи сите податоци типови што би сакале тие да се сакате. Значи ова е 10. Ако подоцна по јас доделен на овој n 0.5, тоа ќе се земе дека 0.5. Без разлика на тоа што тоа е на int тука и плови таму, нешто што го користи ова н ќе, повеќе или помалку, да бидат способни да chug заедно ако станува било кој од овие. Освен ако има некои многу реална причина зошто тоа не може да ги користат податоците напишеш дека n моментов има, на која точка ќе добиете заглавени и фрли грешка, и оние видови на нештата. Но, еве, Python навистина не се грижат што е тоа што јас ќе одам да се држиме во овој реченица, како, што го сакате тоа нешто? Ова нешто во тоа? Да, тоа е вид на нешто. Јас ќе се држи тоа на крајот. Тоа ќе биде проблем подоцна, ако некој кој сака да го искористи тој крај не може да се справи со неа. Ова е една од главните разликите помеѓу Пајтон и Ц што го прави лесен за да се пишувам многу голема C програми и го прави полесно да се напише многу мал Пајтон програма. За синтаксата не е многу различни по што таа прави. Тоа е малку поинаква во тоа како е изразена. Значи ова е многу, она што се нарекува Pythonic, начин на пишување. за ред во опсег (л), ова е спектар на броеви од 0 до n, заклучно на дното и ексклузивни на врвот. Па тоа е од 0 до n-1, кое е што точно го кодот C е тоа, освен што е многу полесно да се погледне во, можеби. Релевантните блок е не тргна од протези наместо тоа се тргна со овој вовлекување. Така што сите од овие линии се четири места во текот на правото, или како врска со ширина слон. И тие се оние кои се ќе биде извршена во ова за. Ако јас се плеткаш вовлекување на ова и јас кои им помогнам назад на печатење оригиналниот вовлекување, дека печати ќе ја напушти за телефонска линија. За разлика од Ц, каде што тука јас всушност треба да се движи оваа затворена заграда наоколу. Ова значи дека вие не добивате грешки кои скокаат на тебе затоа што стави голема заграда во погрешно место. Тоа не значи дека ќе го добиете грешки кои скокаат на тебе затоа што вовлечен линија ред. Па тоа го прави засеци супер внимателни. Се надевам дека ќе се се супер внимателни со вашите вовлекување во секој случај, и така ова не е тоа многу повеќе од товар. Но основно правило за Python, и ќе имаме и неколку од нив дека ние ќе одиме преку преку За време на разговор, се обиде природен синтакса пред да барате ништо до. Па оваа синтакса, за овој број во опсег, е многу карактеристична во смисла на стил. Многу работи во Python ќе видиме преземање на оваа форма. И така, ако дојде до со нов објект што го мислам дека треба да биде во можност да iterate во текот на овој, во овој формат, Излегува тоа веројатно го поддржува тој формат. Ние нема да оди супер длабоко во техничките причини зошто тоа е вистина. Но, тоа е корисно да имаат интуиција кога сте се приближува Пајтон програми, дека тоа нешто е само да оди на работа. Пробај. Подигнете нагоре на командната линија Преведувач, види дали таа работи, се движи со нешта, пред да дури и треба да се отвори во Google и да каже, што е синтаксата на ова особено нешто? Многу Пајтон би можеле откријат само со обидот. Ако ова е уште повеќе слично до C тогаш Форс се. Имајте на ум дека нема загради. Заградите се, повторно, безопасен, но непотребни. Постои дебелото црево на крајот исто како и за петелки, и повторно, релативната блокови се вовлечен наместо тргна од загради. Ова друго е во оригиналот ниво на вовлекување, и нејзините релевантни блок вовлечен повторно. Оние работи токму онака како што тоа го прават во В. Всушност ова е многу многу исти. Повторно, печати ја губи еден карактер исклучување на printf Вие поминат некои жици. Излегува стрингови или може да се одбележа со единечен наводник или двојни наводници. Нема разлика, освен дека внатре на единечен наводник можете да го користите двојни наводници со напуштат, наместо да ги избега сите од нив. И во внатрешноста на двојни наводници, можете може да Користете единечен наводник со напуштат без да ги избегнат. Ако сакаше да се меша нив, сигурно може да Побарајте онлајн како да се направи тоа. Ќе забележите дека овде, Јас сум донесен во крајот = тоа нешто. Ова е пример на изборен аргумент, кој е една од оние работи Пајтон дека го поддржува тоа го прави доста корисни. Па печатење всушност има многу аргументи, кои се обично поставени на нивните стандардни вредности вредност, но тука сум одлучи да го замени еден вика крај. Од причина што јас треба да се го замени со празен стринг е во тоа што за печатење во Python, од страна на Стандардно, отпечатоци од нова линија по нешто што ќе им го раскажа премногу. Па ова хаш е всушност ќе печатење на хаш во нова линија. И ако јас не сакам да се печати хаш нова линија по неа, тогаш морам да кажам не се печати една. Но, се уште е така, едно последно нешто што оваа програма изнесува недостасува дека еден има е една вклучуваат на врвот. Печати се печени во Пајтон значи, во основа дека нема заглавие или модулот дека треба да се вклучуваат, но ако сакаше да се вклучат и други работи во Python скрипта, Јас би го направил тоа на многу сличен format-- зборовите се само малку различни. Јас спомнав дека ние не треба главната тука, бидејќи Пајтон започнува извршување на врвот. Ако сакав да се заврши ова во функција, јас ќе го стори тоа како јас this-- би рекол името дефиниција функција, аргументи би можеле да одат во тука и ние ќе види некои од оние кои подоцна, дебелото црево, а потоа, повторно, ова целиот тргна блок е она што е во функција блокира за таа функција. Значи ова е дефиниција на функцијата. И таму е декларација, потоа долу овде, јас само може да се јавите на функцијата. И повторно, на програмата преведувач, со почеток во врвот, ќе го гледаат ова е дефиниција. Тоа нема да се изврши оваа додека не се добие тука, а потоа тоа е како, о сега сте го нарече, јас Претпоставувам дека треба да го изврши. Едно нешто што е многу честа за да ја видите во Python датотеки, особено Пајтон датотеки што се пуштени во јавноста и развиени by-- и развиени и одржува, е нешто на оваа форма. Ова е така затоа што basically-- Пајтон, ќе почнете на врвот а потоа ќе се изврши до дното, Мислам, ако јас само имаше Марио извика тука, тогаш секој пат кога оваа датотека вклучени во друга датотека, затоа што сакав да го користите е Марио функција, таа друга датотека би исто така, имаат овој повик да Марио во неа. И кога налетав на таа датотека, тоа би го нарекол Марио. Па можно е дека само јас сакате да ја извршите оваа, ако јас сум всушност егзекутирани конкретниов датотека. И да можам да се заврши ова во идиом како овој, каде што велам, Ако името на ова извршување Животната средина е главниот, тогаш сакам да прават вакви работи. Во спротивно некој друг може да use-- вклучите мојот function-- моето досие, и само за да добие пристап до овие функции без да се кандидира работи дека сакам да се изврши во оваа датотека. Ова е, пак, по желба но многу честа појава. Овие нешта се entirely-- се иста помеѓу C и Python, секако, во 3. Мислам дека во 2, операторот на поделба понекогаш ти дава назад лебди кога сте оперирани ints, и или си сакал тој или не сте. Но, плус, минус, а пати се однесуваат исто како што би очекувале, освен преку малку повеќе типови. За да можете да се размножуваат плови по ints, и оние видови на нештата. сет работи токму истото. Можете да го користите две еднакви знаци. inequals-- поголем од, помалку отколку, овие видови на things-- ги имаат значењата кои сте запознаени со нив. Каде што C користи овие оператори, Пајтон користи малку повеќе на англиски јазик читлив оние. Така, наместо на две, ampersands, можете буквално напишете го зборот "и", "или" или не." Како и во вашиот if-- во вашата условно извештаи, што видовме претходно дека оваа синтакса во C одговара на оваа синтакса во Python. И таму не е многу различна таму, освен за малку на интерпункција околу страни. Повторно, каде C би друго ако, python користи elif, но овие се претежно промени на нивото на површината. Повторување како ова е често напишано во овој идиом во Python. Можете да се произведуваат овој вид на Она со додека јамка за надвор ако сака, но вие секако, не треба да се. И повторно, ако си сакал на испечатите елементи на низата може да го направи тоа на овој начин. Еден од забавни нешта за Пајтон иако, е тоа што вие не треба да да се користи оваа парадигма, и можете да го користите малку повеќе домот еден. Да се ​​каже за во арен. Така, наместо да оди тука и работи во текот на индекси, и потоа извлече поединечни елементи, ви ја каже за да се, всушност, само прегазен самите елементи. И тогаш што правите во внатрешноста може да работи директно на елементите, што е прилично забавно. И ние ќе see-- ќе се послужиме повторно и повторно дека идиом чекориме во кодот. Ова е, пак, на пример на нешто што јас ќе повика Python магија, иако постојат многу технички причини зошто тоа функционира. А тука се и технички работи кои треба да бидат точни за низа со цел за ова да работи зад сцената. Работата е дека повеќето типови кои можат да се очекуваат ова да работи имале овој спроведува за ви во вграден во јазикот. Друга работа е дека тоа би било убаво ако ова работел во секој јазик, но постојат неколку причини зошто тоа не може, печати ја оваа низа пати овој број. Излезе во Python, ова го прави токму што би сакале, што е само забава, и значи дека ние всушност може да намали оваа програма, која повторно mario.c. Наместо процесирањето многу, ние можеме само да се каже, јас сакам некои број на места, Сакам бројот на хаш, а некои хаш на крајот. И повторно, ние ги користиме овој формат. Тука, ние сме поминува во променлива на овој начин. Повторно, ние не треба да се каже она што тип на променлива е тоа, и единствениот пат ќе добијат грешки е во рок време. Кога некој се обидува да помине нешто во, тоа ќе стапи на функцијата само парична казна. Ако ние клин тука, бидејќи ова не е Она што може да се создаде движи над, Јас ќе добие траење грешка таму, и јас ќе мора да го debug на тој начин. Но, во меѓувреме, јас немам да се биде многу внимателен во врска со тоа што ќе поминуваат во, се додека во конкретната извршување сето тоа функционира многу чисто. Јас би можел да се направи ова малку почиста со помош на посебен вграден во функција на жици, кој е во право оправда. Ова е само корисна функција милување библиотеката. Тоа е во документацијата ако одите и да се погледне за неа. А јас велам, и јас ќе одам да имаат оваа низа, некои број на хаш, и јас би сакал да го оправда право it-- рампа тоа надвор со места за да биде оваа должина. Повторно, ова е во документација, со што се доведува us-- Јас всушност ќе кликнат these-- што нè доведува до нашата Второто правило за Python-- стандардната библиотека Методи на функцијата се вашите пријатели. И тоа е често вреди вашето време да одат во потрага за Се прашувам ако има нешто што само го прави ова. Постојат веројатно е. Ако сакате можете да рампа конец, ако сакате сакал да ги преземе назад половина на стринг, ако сакате сакал да пребарувате низ низа, ако што би сакале да пресече неколку работи заедно со низа со запирки помеѓу нив, постојат стандардната библиотека функции за тоа. И тоа го прави вашиот живот полесно ако ги користите наместо Почнуваме сето сами во пет линии на код овде пет линии на код овде. Дека навистина започнува во додадете до реално време. Една од интересните работи за тоа како ова добива нарекува. Ќе забележите дека има нешто точка. Имам некои објекти од левата страна, и тогаш се јавив на функција точка. Ова е една од парадигми кои Пајтон користи за прикачување на методи за да се објектите. Ние ќе зборуваме за она што овој е многу кратко, на крајот, но знам дека и ние може да работат на работи со преземање на тоа нешто велејќи точка што и да, или со повик функција која трае тој објект и некои други аргументи. Значи овие се двата начини на кои работите да се сработуваат во Python. И дали одреден функционалност е имплементиран во овој стил или ова стил е нешто што можете треба да се погледне нагоре додека не се добие висат за кој е најверојатно да падне во. Има еден, повеќе или помалку смирување филозофијата зад Пајтон кои ви се апсорбираат главно со пишување на многу во него. Во одреден момент, кој од овие нешто ќе се спроведува како станува природно. Сега за сега, тоа е само нешто ви учат како да дознаам секоја индивидуална работа. Па стандардната библиотека функции се вашите пријатели, и тие ви дозволуваат да пишувате работи кои потрае ова многу простор навистина кратко време, навистина елегантно. И ова е всушност веројатно повеќе читливи, јас би рекол, од програмата C таму. Да не се спомене фактот дека е така кратко може да се вклопуваат во целина слон во просторот што ние сме спасени. Друга работа, ова е имплементацијата на Марио дека е точка C, што мислам дека е најкратко може да го добие. Тоа не мора на се int, но тешко кодови вредност од 10 на ист начин како што тоа го прави тоа. Излезе дека ова еден часовници во 84 карактери, додека Пајтон е 64. И ова е бескрајно повеќе може да се чита од ова ѓубре овде. Па Пајтон е поефикасен во вселената. Тоа е малку помалку ефикасни во тоа време, но не и од многу. Листи се важна работа во Python. Ние не сме ги виделе, но тие работат многу како низи направи во В. Па еве, ќе може да ги пријават, можете да ги помине во нешто. Сега плоштади поседува Низа на овие работи. Повторно, ние не се прогласени за тип, но ако некогаш се обидат да го користат, нешто што би очекувале да работи на низа од цели броеви се случува да работат на низа од цели броеви. Ова е нешто што сте апсолутно не може направи во C, бидејќи меморија е толку раце, но е многу лесно да се направи во Python. Ако сакам моето низа да биде поголем, што можам додадете елемент на него и тоа е во ред. Она што се случува зад сцената? Преведувачот ќе одат надвор и да добијат некои меморија, а можеби и тоа ќе се добие малку дополнителна меморија, па јас не, па јас немам да realloc секое време. Но, колку имаме повеќе меморија не е потребно? Ова не се одлуки што треба да се направи, ова се одлуки што Преведувачот ќе направи. Овде можеме да видиме опсег може земе два аргументи, но сè уште нема да биде инклузивна на почеток па го додаваме 1 таму. Ова е идиом, кој е дури и повеќе паметен начин да се пишуваат вакви работи. Таа се вика листа со разбирање, и тука она што ние го велиме се би сакал да го стави во з квадрат за секој вредноста на i во овој опсег. Ова нешто на правото може да биде друго низа, и тоа нешто на левата да биде некоја особена функција кои ќе ги преземат во I како променлива и ми даде некаков резултат. Она што јас ќе одам да направите е, Одам да се изгради низа тоа е сите овие нешта за секоја вредност во овој опсег. И ова е супер елегантен, супер кратки, и тоа е многу јасно што значи тоа. Оваа е една од things-- тоа е, повторно, еден of-- многу симптоматични за причини што луѓето како Пајтон. Ако ви се допаѓа програмирање вака, тогаш Пајтон е јазик можеби ќе сакате да се научат. И повторно, постојат технички причините зошто тоа функционира. Но, колку што ние сме загрижени, ние, повеќе или помалку, не ми е грижа. Значи, ако сакате да ја испечатите листи, некои од истите идиоми се корисни. Зашто Јас во овој опсег, ние би можеле да Индекс низ сите нешта и потоа да бидат испечатите. И ќе видите Лен тука. Ако некогаш сте сакале да се добие должината на низата, тоа е многу лесно во Python, тоа е многу тешко во В. Ова ќе се печати точно она што би го очекувале да. Ние, исто така, како што видовме претходно, iterate во текот на елементи во низа директно, а потоа само се зборува за нив, наместо да има индекс назад во низа во секое време. И ова е нешто што можете да направите. Па во C, ако прашате за нешто вака, печати би рекол, тоа е низа од цели броеви. Што дефинитивно не е стринг, не можам да го испечатите. Пајтон повеќе или помалку, не се грижи. Тоа е како, постои начин на кој јас може да се претвори ова во во низа? Да, јас ќе го направи тоа. И така јас само ќе се печати дека надвор. Ова значи дека можете да се прават работите like-- овие се поголемиот дел од хард делови на играта на петнаесет, напишана многу кратко во Python. Ќе видите дека има малку of-- тука Сум го дадат цел број во низа, и морам да го направите тоа рачно. А јас ќе одам да се додаде тоа во друга низа, или на друг начин Пајтон збунува. Но, дали и кога сте додавајќи низа на цел број, Претпоставувам дека сум за да се добие врати цел број или стринг назад? Но, повторно, ако само јавете ул за нешто, и тоа би можело во секој можен светот се конвертира во низа, тоа најверојатно ќе биде претворена во низа. Тука, ние гледаме на употребата на вгнездена листа со разбирање на левата страна, некои индексирање, која е точно како што сакате да се навикнеш на него, а некои печатење на нештата. Повторно, ние сме дефинирани некои функции, а ние ќе ги наречеме долу во главната кога ние всушност го добиете датотека. враќање работи токму како што би очекуваат од работа со В. Најди, ние да го поставите работите како this-- тука е листа со разбирање има задача да променлива, и ние, всушност, може да го направи тоа дури и полесно. Ние не треба да се напише за пребарување, бидејќи вграден на јазикот е ако тоа нешто е во оваа низа. Врати вистина, друго return false. Значи тоа е целината на откритие. Целината на вид вклучува повикувајќи вид, која is-- постојат имплементации на овој вградена во одредени C библиотеки. Ако сакате ова вид на наназад, ќе може да ја замени оваа опција аргумент во обратна насока со вистина. И ако би сакале да се најде решение преку жици, која е вградена како и. Значи ова не е да се каже овие се работи кои што треба да се направи секој ден, но идејата е дека овој е филозофијата на Пајтон, дека сите овие работи кои што би вид сакате да го направите е вграден. И повеќето стандардни функции, толку вид, должина, без разлика, поддршка на повеќето логично разумен влез. Ти се јавам Лен на низа исто начинот на кој го нарекуваме Лен на конец. Multiply-- можете да ги сортирате низи на ист начин да се најде решение за низи. Повеќето стандардни функции дека луѓето се изгради, и повеќето од трети лица библиотеки, кои луѓе изгради, затоа што тие се угледува дизајнот на стандардната библиотека, може да се нарече за се она што си како, зошто не се ова само работа, во C. Повеќе или помалку, дека ќе работи во Python затоа што луѓето работат зад да фигура што е ова и потоа да работат соодветно на тоа. Значи, повторно, техничка позадина, но тоа го прави нашиот живот полесно, како програмери. Значи тука е датотека I / O. датотека I / O има многу мали нешта кои го прават тоа комплицирано, и така постојат ресурси на интернет, но во мало, ти се јавам отворени на датотека именува со одреден тип. Значи тоа е чита, чита и пишувам, пишувам, ниту да се додаде. Го прочитате на одреден број на ликови и да ги печатите оние, ќе добиете Здраво! Мислам, како оваа датотека имаше Здраво! Во неа, јавете се да се чита, и она што ќе се вратам е стринг кој ги има сите од остатокот од низата, или сите на остатокот од датотеката. Ако ти се јавам повторно читање, ти си на крајот на датотеката, и така да не добие ништо и така ќе се затвори. Повторно, ова е .close наместо близина на датотеки, како што ќе биде во В. Ова е повеќе или помалку, затоа што f е работа, и што би сакале за f за да го затворите. Но основните датотека I / O не е особено комплицирано. Повторно, ако сакате да се отвори датотеката, ако што би сакале да читаат одредена линија, може да се добијат од особено line-- има изградена-in за тоа. Ако сакате да се напише работа, можете да ја напишам оваа. Ако сакате да се напише поединечни каснувања, може да се пишуваат тие. И ако сакате да iterate во текот на линии на датотека поединечно, како што направивме во едно парче од Пред неколку недели, можете да го направите тоа да. Повторно, повеќето објекти, кои би сакал да биде во можност да iterate во текот поддршка процесирањето над нив. Во Монти Пајтон, фајлот е можеби нешто што Би сакал да iterate во текот ред по ред. Ако тоа беше речникот на зборови, а јас бев се обидува да добие тие поединечни зборови, а потоа, во рамките на овој циклус, линија тоа се случува да биде секој збор, пак и ова ќе биде погубен за секоја линија во датотеката до крајот на датотеката. И повторно, ако јас се отпечатени секоја линија, линиите доаѓаат со нови линии, па јас сум поставување на крајот назад кон нешто како ова. Тогаш јас ќе добијам со содржината на датотеката. Втората работа која работи во некој начин слична листи, и на некој начин како нешто значително помоќен, се речници, кои се навистина кул да го користите, но во суштина се хаш маси во себе. Да се ​​создаде една, користејќи ги два лика, што е страшно ако сте се обиделе да се спроведе хаш табелата за вашиот проблем во собата, знаеш колку болка која може да биде. Но, луѓето имаат направено тоа, и тоа го прави толку добро, тоа што вие не мора да го се грижите за тоа повеќе. Тогаш можете да го внесете поединечните нешта. Хаш tables-- или речници не особено гајле што сте чување во нив. Па ако некои записи се броеви, а некои записи се листи, ако некои записи и други речници, а некои записи се стрингови, Пајтон не прави многу за заштита. Повторно, ако оди во неа очекувајќи стринг и она што ќе се вратам е низа, тоа е вашиот проблем. И можеби тоа е вина на кој мислев дека тоа е оставате работите во речникот, можеби тоа беше вас. Ако тоа беше некој друго, се надевам дека тие беа добро се однесувал за тоа што се случува во речникот и не ја напушти било стапици за да падне во. Но стандардот функции ќе ти го врати добро однесување работи. Така што тие велат дека ова се враќа се врати на речникот на стрингови, тогаш сè си оди да излезат од е стринг. Ако го направите некои од ова и патувања ви се, добро, тоа би можело да биде за вас. Пајтон секако ви дава доволно јаже да се обесиш, ако сакате. Сега ние може да се печати од индивидуалните елементи на овој и овој се враќа токму она што би очекувале. Токму она што би очекувале, претпоставувам, е фраза која јас користам многу, но тоа е повеќе или помалку како функционира Пајтон. Ако ве праша за нешто што не е тоа, python ќе го исфрли грешка и тоа ќе ви се откажат од што и програма ќе се во. Тоа, всушност, ќе се печати повеќе информации од тоа, тоа ќе се укаже you-- тоа ќе додадете линија, и така. И, повторно, можеби сакаме да iterate во текот речници и ги најдете сите работи во неа. Тука сме процесирањето над две работи во исто време. И така ние ќе го направи со клуч, вредност, но потоа печати од сите овие. И ако сакаме да cast-- ако ние всушност се стрча ова, ќе имаме некои проблеми, бидејќи on-- кога отидовме во со Давида, тоа не може да add-- ако ние не фрли го во низа, прво, ние не би можеле да додадеме дека низа на стрингови со излез на стрингот. Но, ако ние го фрли на стринг, да добиеме нешто како овој, што е можеби она што ние би сакале да ја прочитате. И ова е правопис. Ние само се читаат во нештата. Па ние може да се прочита во поединечни зборови како линии. Ние се исецка надвор последните работа, така што на дебелото црево минус 1 chomps надвор последното нешто што we-- последните карактер на стрингот. Ние ќе се каже. Во ред, секој што добива вметнува во овој речник, картирање на вредност од 1. Ние не особено се грижат за оној, но тоа е само таму да се каже, О, добро, ова нешто што ќе ги ставам во речникот. Бидејќи подоцна она што ние сме случува да направите е ние сме случува да се каже, добро, ако тоа е во речникот на сите. Повторно, овој чек за членство е до оперативниот користење на сосема поинаков алгоритам, отколку што ќе во некоја листа, но ние ја нарекуваме, на ист начин, што е дел од тие луѓе Пајтон шеќер слој работите, така што тие се полесно да се користи. И повторно, што сум го видел работи како тоа порано. Ова е во основа се најде, или тоа е точно истата синтакса како да се најде, но работи во текот на еден сосема поинаква структура. А ние не особено се грижат. Значи тоа се работи кои што беше побарано да се спроведе за правопис. Во овој случај, ние ќе треба да се добие повеќе или помалку сите psets направено. ПУБЛИКАТА: Така што во основа, само се враќа како што погрешно напишани ако не е така одговара нешто во речникот? ROSS RHEINGANS-Yoo: Да, да. И така, ова е адаптација на проблем во собата кој ќе ве праша да го прават токму тоа. ПУБЛИКАТА: Зошто е линијата минус 1 таму? ROSS RHEINGANS-Yoo: Значи кога сте процесирањето повеќе од една датотека барајќи со линии, линии дојде со нова линија карактер на крајот на it-- на минус 1 е само да купуваат оние надвор. И ова е особено флексибилни начин на индексирање во нештата. Значи, ако имате еден конец, и сакате, и јас сум ќе започне во знак на три а јас ќе одам да се оди до крај. 3 дебелото црево ќе го направи тоа за вас. Ако сте како, сакам да се започне на почнуваат и да одат во последните минус 1 карактер, дебелото црево минус 1. И ако си сакал да оди од третата до минус прв, тогаш ќе кажам 3 минус 1. Покрај тоа, ако сакате да ги индекс во работите сметано од назад, вие само индекс во минус со броеви. И поради тоа што, каде C ќе експлодира или можеби ви се хранат други меморија не сте имале пристап до, слушне може да се каже минус 1 значи предпоследниот 1 лик во серијата. Модули се version-- се аналози во библиотеките во С и се корисни за многу работи. А многу работи што би како да се направи во Python, освен едноставен манипулација на променливи, сакате да кука во поголеми библиотеки со поголеми интерфејси и повеќе можности за интеракција со другите делови на светот. Сис е еден од оние со еден куп алатки кои се корисни за интеракција со самиот систем и ќе го внесете како увозот Сис. Има повеќе документација од кои што може да оди тука, или можете да го најдете на Google со Googling Пајтон сис. Ќе напишете влезе. Првиот линк е и ќе биде документација во Python 2, вториот линк ќе биде Пајтон документација 3. И ако ние напиша датотека која изгледаше како this-- Ако особено, ние сме гледа во кои работат на командната линија аргументи, како што научивме да се направи многу на почетокот на оваа класа. Ова не е тешко. Може да се добијат argv, која е една од оние работи кој се спроведува со сис. Тоа не е вграден во база пакет, но повторно, вие да го прошири од увоз Функционалноста од сис. Ќе го наречеме сис. како и да е. Тука има argv. Има всушност нема argc во Сис, затоа што може да го добие толку лесно со повик Лен. Ние тогаш печатени дека надвор, тогаш ние трчаше на нашите терминал echo-args.py. Ние се вратам низа, која ова е првиот аргумент. Повторно, ова е argv 0, што е името на нешто што доби нарекува. Ако ние го нарече со дополнителни аргументи, ние ќе добијам оние назад. Ова е еден начин на добивање на командната линија аргументи. Ако сакате знамиња, каде ќе го вклучите одредени нешта или прескокнување одреден стандард, argparse е вашиот пријател. И повторно ќе се најде дека онлајн на питон argparse во Google. Постојат неколку комунални модули кои ќе се најдете со користење на и повторно, ако потрошите секое време на овој јазик увоз jsons за читање во и надвор од JSON додадени фајлови, не е толку комплициран. Ќе се отвори датотеката, ќе се нарекува json.load на таа датотека и ќе се вратам на работа. Што е тоа нешто? Тоа е JSON објект. Каде што JSON има низа, Пајтон има низи. Каде што има JSON асоцијативни низи, Пајтон речници, стрингови, и броеви, и така натаму. Сакате да шутнат дека надвор, вие отвори нова датотека, ти се јавам депонија, и носивост и депонии да одат во и надвор од жици. Слично на тоа, марината добива нарекува во суштина е ист интерфејс. Тоа е малку повеќе корисни, ако сте фрлање Пајтон објекти. Значи, ако некогаш сте сакале да се спаси верзија на сегашниот статус на променливата за иднина се кандидира на вашата програма, марината е Пајтон библиотека за тоа. Ако имате било каков вид на променлива која може да се запише надвор како во зборови и ликови и bytes-- вака речникот, ние би можеле да се запишам, ние би можеле да го запишете како JSON објект, кој беше буквално овие ликови. И тогаш тоа ќе биде многу лесно за човечки да се отвори тоа up-- отвори и ја прочита. Ако ние не се особено се грижат за луѓето читање, ние би можеле да ги спакувате уште поефикасно во форми кои подоцна можат да бидат уште неотпакувани или кои можат подоцна да бидат напумпани. И ова заштедува 80% од простор што вашите објекти би можеле да земе ако ги напиша longhand. Ти се јавам марината многу исто way-- депонија, оптоварување, а потоа ќе ја добиете вашата нештата. Значи, ако ви се пишува многу кратки програми кои Пајтон сакаат да се спаси државата, а потоа читаат ги врати подоцна, вакви работи се вашите пријатели. Дека вие многу лесно да ги шутнат како JSON. Повеќето Пајтон објекти може да шутнат на JSON дали има каква било надеж дека структурно тие може да се претстави на тој начин. Ова се само врв на ледениот брег на модули кои се корисни. Па Сис, ОПЕРАТИВЕН СИСТЕМ, мултипроцесирање, се вид на основните workhorses за нешта ние треба да комуницирате со os на датотечниот систем., како os.isfile, os.isdirectory, os.makefile, овие се најдобри пријатели. Ако сакате да комуницирате со одреден тип на датотека, JSON, марината, CSV. Ако сакате да комуницирате со веб- страници, urllib за добивање http страници. bs4-- BeautifulSoup-- тоа е прекрасен парсер за HTML. Можете да ја стартувате на HTML, и вие добивате ова вгнездените низа објект сега, кои можете да напречни преку торентите, like само барате ако, е, во, што е фантастично. Има еден куп на пакети за running-- за тоа особено mathy работи. Значи, ако сакате да се размножуваат, превртете, трансформирате матрици, numpy се користи од страна на луѓе целиот свет за тоа. scipy е уште повеќе корисни алатки во таа насока. sklearn-- учење машина, Обработка на природни јазици, супер корисни работи, добива имплементирани во Python цело време. И повторно, зема малку подолго да write-- ми е, трае малку подолго да се кандидира, но од причина што реално инженери имаат тенденција употреба Пајтон е затоа што имаат тенденција да бидат блокирани од вас пишување на код, наместо од вашиот компјутер работи на кодот. Значи, ако си оди за да се напише Програмата, која многу други луѓе се случува да се користи засекогаш, како Линукс, можете Може да го напише во C. Ако сте во ситуација ќе напише пресметка на моторот, може да напише во Python, ако е потребно да го промени на секои неколку месеци. Некои луѓе би го напише во Ц, бидејќи тие се допаѓа. Значи ние сме виделе увозот Сис како начин за добивање на работите за добивање на модул во вашата програма. Исто така можете да го внесете како прекар, ако сакате. Повторно мултипроцесирање е болка за да се тип надвор во секое време, па увоз како пратеник а потоа и во секое време да го користат во програмата, ќе речете mp.process, или она што го имате. Ако сакате можете да увоз само една единствена работа, па urllib има нешто што се нарекува барање, така што само може увоз тоа. Подоцна, нема да бара помош од неа како urllib.request, но само како барање само по себе. И се што може да се внесуваат од модулот, ако сакате. Ова понекогаш не е добра idea-- ова обично не е добра идеја, всушност. Бидејќи вие very-- бидејќи ако ништо друго во тој модул има име кое сакаше да го користите на некое друго место во својата програма, дека не можеш. И тоа не е секогаш очигледна дека тоа е случај. Со цел да бидете сигурни дека што правевте беше безбедно, што треба да се отвори модул и да видиме сите на имиња кои завршуваат во there-- сите функции, сите променливи кои живеат во тој модул, затоа што ти си носат сите нив во вашата локална именски простор. Па луѓето го направите тоа. Тоа е генерално се препорачува дека вие не го направите тоа. Но, луѓето го направите сето ова тоа време, бидејќи тие се мрзливи и не сакаат да се тип надвор пратеник. ништо, било кога. Сето ова зборува за модули ми донесе околу да краток разговор за тоа како да дизајн програми во Python. Првиот чекор е да се провери да се види дали некој друг веќе го направи на работа, или направиле 90% од работа. Шансите се тие, најверојатно, ќе мора, и вие треба да одам да купам нивната работа и да ја стартувате тоа. Или пишете обвивка околу тоа да го прилагоди на вашата цел. Тоа е само по тоа што има не, кои би потоа да одат на и write-- почнат да размислуваат за како ќе се стави тоа нешто заедно. Има многу работи таму, а тоа е една од најпознатите корисни работи во врска Пајтон. Како и да е јазикот домот, јазикот е лесен за употреба, но исто така и поради тоа е толку елегантен и лесен за користење, луѓето се го користите за долго време, а и нема многу нешта таму што можете да искористат за сопствена употреба. Така минатата владеењето на Пајтон е, некој друг веќе веројатно напишана модул за тоа, некој друг веќе веројатно напишана библиотека за тоа. Пред да се обиде да направи нешто, погледнете да се види дали тоа е се имплементираат. Тоа не е толку тешко. Сите модули кои ја ставив до пред, со можеби еден исклучок, доаѓаат пред-инсталиран во секој стандардна инсталација Пајтон. И така со повик за увезе без разлика, вие имаат сите дека функционалност на вашите прсти. Почнуваат да се заокружи овој разговор, постојат неколку работи кои треба што сум ги остави како црни кутии и вид на забошотува, и има неколку бели лаги што сум кажа дека за доброто на искреност, Ке се најмалку точка на тука, дури и ако не ќе супер оди длабоко во сите од нив и нивните технички објаснувања. А многу од работите што сум ги повика магија е она што другите луѓе би го нарекол објектно ориентирано програмирање. Па така постојат многу things-- така променливи не се многу често едноставна бајти седи, меморија, но се многу комплициран објекти кои имаат внатрешни државата за функциите и многу на скриени променливи, многу скриена функционалност, која Ви овозможува да ги претвори во низи, кој ви овозможува да iterate над нив. И ако сте во writing-- а од причина дека тие ги имаат сите на оваа богата функционалност е затоа што people-- архитектите на Language-- се качил преку и за секој стандард објект, се стави во функција да кажам дека ова е како тоа е како тоа се случува да работат ако некој сака да iterate над неа. Па сè што некој може да можеби сакате да iterate во текот, има логика напишан во рачно за тоа како сте би требало да iterate во текот на тој објект. Сето она што ви би можеле да сакаат фрлени во низа има логика напишано. Ова е функција која ти се јавам ако сакате да шутнат ова да стринг. Ова е причината зошто може да се Лен јавите на нештата, овој Затоа може да се јавите во за, ова е Затоа може да се јавите ако твојата работа дека ќе сакате да, затоа што сите оние кои го носат со нив, технички know-how за да го направите тоа. Ова е нешто што јас сум супер нема да одат во. Но, за работа во листа е суптилно различен од С стил за петелки, и можете да ги прочитате сите за тоа на интернет, ако сте заинтересирани. Постои темната страна на сите за тоа, што ги спомнав, па има две работи. Првата е дека ова објектно ориентирано програмирање додава многу надземни на случајни нешта, па ќе се заокружи со користење на многу повеќе меморија; ќе заврши со користење малку повеќе време отколку што би поинаку. На other-- но повеќе подмолно темната страна на оваа е, ако работите само да дејствува како што сакате тие да без да мора да се размислува супер тешко за тоа дали ова треба да биде цел број или дали треба да има плови, тоа би можело да биде дека овде ќе се произведуваат на int но овде ви но мислам дека тие ќе always-- ми е, тоа би можело да биде дека тука ќе се произведуваат со подвижна запирка, но кога ќе го добиете во вториот дел на вашата програма, си мисли, О, добро, но тие ќе Секогаш ми помине int. И ако тие не се направи, тоа е можно кои ви се заглавени некаде, ако се обидете да го користите дека за индексирање во низа, или она што го имате. Па една од вистинските корисни работи за C е тоа ве тера да мислам дека навистина хард пред да го направите any-- пред да се донесе каква било променлива во сила, како што е од типот на оваа променлива. И тоа се случува да се има тој тип за сите времиња. Ова не е вистина Пајтон, и всушност, може can-- ако сте само вид на одење од страна на уво, и ќе се направи некои одлуки еден начин на едно место, и некои одлуки еден начин во друго место без да се стави доволно работи зад сцените во друго место да го фати работи правилно, може да се добијат некои многу чудни грешки. И програма може да продолжи да работи за многу долго време, затоа што тоа е прави многу работа да се каже, и оваа работа би можеле да работат на овој начин, па јас ќе одам да се кандидира на тој начин. И всушност, тоа што го турка проследува низ многу мали грешки значи дека, често кога грешка е всушност лоша а вие всушност сакате да го поправам, тој завршува милји away-- програмата завршува запирање милји далеку од кога ќе се има вашата грешка. И така, едно нешто што ние би сакале програми за да се направи тоа, едно нешто sometimes-- дека ние би сакале програми да се направи кога сме дебагирање е гласно и не успеваат многу брзо кога нешто ќе тргне наопаку. Пајтон е многу лошо во тоа. Пајтон е многу добар во не тоа што не и се тркалаат напред преку неочекувани работи. Значи ова е корисно за кога сте пишување мали програми. Кога ќе се добие комплицирано грешки, тоа понекогаш се да трае долго време да им се размрси коренсподенцијата. Па таму е темната страна на сите на овој, како што тоа едноставно работи. Тоа си работи како што би очекувале тоа да. Освен кога тоа не се случи, ќе се заокружи во сосема поинакво место и се обидувам да дознаам каде тоа беше дека не беше во ред. Собирање на ѓубрето is-- така едно нешто што ќе забележите е дека секоја од овие работи кои Сум донесе во existence-- овие низи, овие речници, овие објекти, овие files-- никогаш не се ослободени. Немаше повик за бесплатно во било кој од овој разговор. А тоа беше на C-страна, бидејќи ние никогаш не влезе во тие работи. Но во Python-страна, таму не е бесплатно. Работите стануваат автоматски ослободени кога Пајтон мисли дека не сте во потрага по нив. Тоа е навистина добро неослободувањето работи кои сеуште може евентуално да се гледа, но тоа значи дека ако сте биле ќе одвои оваа голема работа, и сте како, о Сум се направи со тоа сега, тоа е тешко да се каже Пајтон дека ќе завршиш со тоа сега. Понекогаш може да се постави дека променливата да биде никој, а потоа се надеваат дека на крајот собирач на ѓубре доаѓа преку и чисти надвор. Но, повторно, ти не имаат контрола над тоа. И една од причините поради кои луѓето ги користат C за навистина перформанси критични работи, е оваа способност навистина да знаеш кога меморија се доделува И кога е ослободен, и имаат многу на контрола над велејќи: Јас сум користење на не повеќе меморија отколку што ми треба. Што е нешто што Пајтон не е голема во. ПУБЛИКАТА: Може ли да те прашам едно прашање? Што мислевте со гласно не успеваат? ROSS RHEINGANS-Yoo: Значи, ако нешто се случува во ред а ти си во дебагирање на владата, што би направиле многу често сакате вашата програма да ви кажам каде точно тоа е во ред, и не само тивко да престане да работи. Но ќе всушност тоа да се печати на сите видови на информации во врска со како, тука е тоа. Ако се случи тоа дали печатите на wen-- ако сте водење на веб server-- ПУБЛИКАТА: [Беззвучен] ROSS RHEINGANS-Yoo: Да, ако сте водење на веб сервер, тоа е понекогаш лошо, ако сте секогаш отфрлајќи грешки, а ти си велејќи: и тоа не работи. Одам да се запре. Јас сум само ќе да се игнорира што и да се случува. Затоа што тогаш може да се добијат во стотици за овие грешки и да не ги гледаат. Тоа, секако, би било корисно за целите на дебагирање ако секој пат кога вашиот веб сервер направи грешка, сте имале трајни записите од тоа. Можеби дури и сакате на програмата да се запре, така што овие записи Не се закопани под работи. Но, повторно, тоа е во режим за дебагирање. Често во режим на производство, Светот е малку поинаква. И во мали скрипти кои јас се кандидирам, каде што нешто што ми рече да се направи Може да биде само малку надвор од она што јас би сакал тоа да се направи, тогаш вид на туркање преку грешки е нешто што можеби ќе сакате. И во тие случаи, секако, Пајтон навистина заработува своите настапи. Последното нешто што не ми се зборува во this-- дека јас не зборувам за но може да биде навистина налутувајќи првиот Ако вие имате една од овие грешки, и на вториот и третиот и четвртиот време го имате овие грешки. Пајтон, јас спомнав тоа што користи бел простор да ви кажам што нивото на вовлекување и што функционален блок сте во, тоа го третира јазичиња и простори поинаку. Значи, ако сте табот во текот на четири, а потоа следната линија има четири места, дури и ако тие се појавуваат како истиот износ во вашиот уредник, Пајтон не се однесуваат исто. Всушност, python третира јазичиња и места како масло и вода. Тие се само различни нешта. Нема некоја посебна должина што јазичето е, па тоа не е како некој таб еднаква 8 простори, и така што ќе се добие околу него натаму. Како, кога вели, она што ниво на белиот простор да сум, што е, всушност, во потрага по шемата на места и јазичиња. И така, на најдобар начин да се справи со ова е да се секогаш да користите празни места цело време. И всушност, во Cloud9 IDE и на CS50 ИРО, Вашиот копчето Tab инсерти четири места во место на табулатор, што е супер корисни. Иако повторно, ако напиша Пајтон програма со јазичиња што ќе биде во ред, тоа е само ако некој отиде и се обидел да го додадете една линија на вашата програма која имаше четири празни места за секој таб, тоа ќе се скрши. И тоа ќе се скрши на начин што навистина не е видлива. Иако вистинските грешка порака дека тоа го фрла има врска со нова вовлекува не очекува тука, or-- ако тоа зборува алинеи и се чини дека тоа е во ред, тоа е веројатно затоа има проблем со таб-просторот. Тие се уште ги разлути да debug. Најголемите во целина овој разговор, што јас не дојде до бидејќи тоа е навистина комплициран, суптилна тема, и не е потребно да се направи било од работите што го направиле досега, се концептот наречен торки. Тие се таму за многу сличен на низи што не можете да го измените. Тие се користат насекаде, бидејќи тие се корисни за многу работи низи кои не се корисни за. Но, ако сакате да се направи низа, и тогаш ветувам толкувачот што никогаш не се случува да сакаме да го промените тоа thing-- во Всушност, ако сакате да го измените, ќе се направи нов со новите вредности во it-- тоа се торки. Наместо производство нив со квадратни загради, што ги произведуваат со круг загради. Зошто би го користите овие работи, е малку на едно прашање. . Единствено нешто што јас ќе се каже за тоа е што може да се користат како торки индекси на речници. Не можете да користите низи како индекси на речници. И зошто е, пак, техничките и Јас не одам за да работи во неа. На pset што не сум ја допрел во овој разговор е pset6. Па еве како можете 'd спроведување a-- еве како ќе се спроведе pset6 во Python. Имајќи предвид Пајтон дизајн циклус, првото нешто тоа што го правите кога сте пишување програми е проверка да се види дали некој е тоа направено веќе. Всушност, ако сакате да serve-- Апачи 50 прави околу ова, освен тоа не доаѓа стандард инсталиран на Linux машини. Python ја извршува, а питон едноставна HTTP сервер прави тоа како добро. Ако сте некогаш на Линукс машина, или Cloud9 ИРО надвор од CS50 а што би сакале да им служи на оваа струја Директориум на одредена порта, Пајтон-м SimpleHTTPServer порт служи таа. Исто така можете да увоз едноставна HTTP сервер и тоа е се здобија со многу функционалност, ако сакате да го изберете, или да го промени, или водени it-- тоа да се подигнат кандидира на вашиот сопствен сервер услуги. Значи тоа е Пајтон во мало. И ова е CS50. Ти благодарам.