Росс РХЕИНГАНС-иоо: Здраво, ја сам Росс.
И ово је ЦС50 Семинар.
То ће вас одвести од програмирања у Ц до програмирања у Питхон.
>> Питхон је скрипт језик.
То у великој мери је као Ц у синтакси, мада неки
техничких детаља како то бива погубљен синтакса
су мало другачија.
То је мање моћна од Ц на неки начин.
То је мање изражајан за где је тачно у вашем рачунару
меморија буде изложена, како се буде изложена,
када падне слободу, и Такве ствари.
>> То је много корисније него Ц на неки начин, јер је лакше програмирати у.
Језик је, на неки људи, више интуитивно.
И заиста, циљ је да да буде бржи за програмирање
и потенцијално спорије да изврши.
>> Сада, ако мислите о количина времена
сте провели на твој последњи Проблем сет за писање
Ваш код против Количина времена које проводите
на последњој проблем сет извршавање свој код,
ти би замислити да на језику што је дупло брже да напише,
и дупло споро извршавају, можда бити побољшање у односу на Ц на неки начин.
Наравно, када покушавате да напишем мали програми да раде мале ствари,
Питхон је корисна језик избора.
>> И на крају овог Семинар, надам се да ћете
бити у стању да чине Избор у будућим пројектима
о чему језик исправно користити, није идеја
да је један језик више исправити све време.
Неколико ствари о томе шта је семинар је.
Овај семинар није намењен да научити Питхон од нуле.
Питхон је веома сличан Ц, а ја претпостављам
да сте ЦС50 ученик, или неко са сличним блискости са Ц.
>> Ако сте ЦС50 Студент око проблема сет 6,
тако да сам видјети много ствари у Ц, даћу ти
Главне разлике, и неке од ствари
да направи другачији Питхон и посебан и корисно,
али ја не идем за шта је програмски језик је
и како да пишу програме.
Међутим, овај семинар ће научити да написес питон програма
ако сте један од оних неколико група.
Поново ћемо погледати како ти би спровести псетс--
која треба да буде 1-6 ин Питхон-- и пружају показивачи
службеној документацији за убудуће.
Друга ствар која је важна о томе како је додељен овај говор,
Овај видео ће бити Онлине, захваљујући ЦС50,
тако да не би требало да се осећате као морате узети белешке.
Увек можете вратити и тражити на то касније као референца.
Поред тога, слајдови су сада доступни
на овом сајту, који би требало да узме ти Гоогле доц.
То је мало скраћена верзија шта сам се приказују на екрану.
>> Један опрезни упозорење пре скока у, Питхон 3
је другачији језик од Питхон 2.
Они изгледају много исти; ima веома мале техничке разлике
који ће довести програме написан у Питхон 2
да не би могли да се изврши у Питхон 3 животну средину.
>> ЦС50 апарат долази са Питхон по дефаулту користи Питхон 2.
Можете да проверите тако што ћете куцање у вашој командној линији
питон --версион, која би требало да излаз 2.7.6 о тренутном уређају.
Покушајте Питхон 3, која се бави раде у апарату,
ако Питхон подразумевано 2.Кс.И, било на Апарат или на својим машинама.
Требало би да замени Питхон 3 у скорије време У овом разговору да пишем Питхон.
Ако је ваша машина Руннинг 2 по дефаулту, тип
Питхон 3 како би могли да стварно пратите и извршење ових ствари.
>> Осим тога, ја ћу вам указати у званичним изворима сада.
доцс.питхон.орг/3--~~В опрезни да је то 3, а не 2--
има корисне референце.
Водич ће вас провести кроз много истих ствари
да радим сада, осим у текстуалном облику.
Референца је корисно као референце за језик,
и стандардне библиотеке даје ви неке од наставцима
са додатним функцијама.
>> Дакле, први Питхон програма.
Са леве стране имамо стандардне Ц, на десној страни, имамо Питхон.
Можда сте препознали овај проблем, то је
један од првих проблема сетови за ЦС50, и то
реши користећи исто решење.
Сада, разлог да смо гледајући ове раме уз раме
је тако можемо да погледамо синтаксне разлике.
Један од слонова у соби да би сте приметили у праву
офф тхе бат, је да Питон нема Основна функција паковање око кода.
Дакле, у Ц, пишете гомилу фајлова, што их повезују,
а програм почиње извршење на ову ствар се зове маин.
>> У Питхон-у, пишете филе вас, изврши датотеку,
програм почиње извршење на врху датотеке.
Тако да ће да почне на врху датотеке
отићи док не нађемо нешто друго.
Ако пронађе дефиницију функције, неће у ствари извршава тај код,
једноставно ће се дефинисати функцију.
Али овде, када је прва Програм је н једнако 10,
прва ствар коју овај програм ће урадити је да ову вредност од 10
и постави га у променљивој под називом бр.
>> Говорећи о тој линији, један од друга ствари-- је-- ово
значи да Ц програма, ћете их пишу,
ви ћете их направити, који ће позове неке команде Цланг,
а онда ћете покренете резултира извршну.
Питхон програми, ви покренете Текст филе-- овом марио.пи мигхт
бе ову слику коју сам управо показао ти- ћете покренути тај фајл
па ћеш извршити, и садржај тога
ће обављати Питхон преводилац.
То можете да урадите у вашем ИДЕ.
>> Дакле, ако имам хелло, који једноставно има ову садржај.
Ово је заправо Питхон 2, не Питхон 3, тако да не
бринути о синтакси за сада.
Али ја ћу покренути Питхон, на хелло.пи, и то ради.
>> Други начин на који могу да користим да Питхон Нисам се бавити толико у овом разговору,
је ако сам само укуцајте Питхон, да капи ме у окружењу где
Могу да га храним Питон ред по ред.
Дакле, овде, ако откуцате у Принт простор 'Хелло, Ворлд'.
Тип ентер.
То ће ме пљувати да подржи резултате да појединац линија одмах.
>> Ово би могло бити корисно.
У том разговору ја ћу ствари на слајдовима.
И тако ћете моћи да пратите дуж било овде, или писање
стварни датотеке и затим их извршава.
>> Али, да се вратимо на ово код, још једна ствар
да би сте нотицед-- добро, ту је
две ствари које би можда приметите о овим блоковима.
Први, прилично још мундане, је то Питхон нема заостаје зарез.
>> Зарезом су опциони свуда и безопасна свуда.
Можете их додати.
То би могло да људи који пишу Питхон дневног Сницкер на вас
иза леђа, јер нису неопходни.
Они често си знак који се одржава преко из Ц. Дизајнери језика
Сматрамо да је јасније на овај начин и да није потребно да се изјасни
сваки пут када заврши линију.
>> Још једна чудна ствар о овом н је не имати тип прилогу.
Једна од магичних комада Питхон-- и ја ћу га звати магија,
али врло постоје техничких разлога зашто
воркс-- један од магиц комада Питхон
је да променљиве могу проширити или скупити да садржи податке без обзира
типови би их желе.
>> Дакле, ово је 10.
Ако касније доле сам добио ово Н 0.5, било би потребно да 0.5.
Без обзира да је инт овде и флоат тамо, било шта што користи овај број
ће, више или мање, моћи да цхуг заједно ако буде било оних.
Уколико постоји нека веома реална Разлог зашто се не може користити податке
тип да н тренутно има, На тој тачки ћете добити
заглавио и баци грешку, и оне врсте ствари.
>> Али овде, Питхон не стварно брига шта
то је да ћу се држати у ово казна, као, желите ово?
Ово у томе?
Да, то је нека врста ствари.
Ја ћу држати на крају.
То ће бити проблем касније, ако неко ко жели да користи тај крај
Не могу да поднесем.
Ово је један од главних разлике између Питхон и Ц
што га чини лако пишу врло велике Ц програме
и олакшава да напише Веома мали Питхон програма.
>> За синтаксу није много различити у оно што ради.
То је мало другачија у како се изразио.
Дакле, ово је врло, како се зове Питхониц, начин писања је.
за ред у опсегу (н), ово је опсег бројева од 0 до н,
инклузивна на дну и ексклузивни на врху.
Значи, то је од 0 до н-1, које је управо оно што Ц код ради,
само што је много лакше да погледате можда.
>> Релевантни блок је није кренуо заградама,
уместо тога је кренула овим увлачења.
Дакле, све ове линије су четири места на десну,
или као о једној ширине слона.
И то су оне које су ће бити погубљен у овоме.
Ако сам хаос у удубљење на ово и
пусх то принт натраг у оригинални ред,
да штампа ће оставити фор петље.
За разлику од Ц, где овде заправо треба да се креће, који је угашен око браце.
>> То значи да не добијете грешке да искочи на вас, јер вас
стави протезу на погрешном месту.
То значи да ћете добити грешке да искочи на вас, јер вас
увучен линију погрешно.
Дакле, чини удубљења Супер опрезан.
Надам се да си био супер опрезни са својим увлачења у сваком случају,
па то није то много више од терета.
>> Али основно правило за Питхон, и имаћемо пар њих
да ћемо проћи кроз ток разговора,
се покушати природно синтаксу Пре него гледајући ништа горе.
Дакле, ово синтакса, за овај број у опсегу,
је веома карактеристичан по питању стила.
Много ствари у Питхон видећемо узимајући овај формулар.
>> И тако ако дођете до са нови објекат који сте
Мислим да би требало да буде у стању да Посматрајте преко овога, у овом формату,
Испоставило се да вероватно подржава тај формат.
Нећемо да идемо Супер дубоко у технички разлози због којих је то истина.
>> Али то је корисно имати интуиција када се приближава Питхон програма,
да је ова ствар само иде на посао.
Пробајте.
Покртању командна линија Преводилац, види да ли ради,
идемо даље са стварима, пред вама чак ни да отвори Гоогле и рећи,
шта је синтакса за ова ствар?
Пуно Питхон Иоу Цоулд открити само покушавајући.
>> Ово ако је још сличнији Ц онда ФОРС су.
Имајте на уму да нема заграде.
Заграде су, опет, безопасна, али непотребно.
Постоји дебело црево на крају баш као што је за петље,
и поново, релативне блокови су увучен него кренули заградама.
Ово друго је у оригиналу ниво увлачења,
и његова релевантна блок поново увучен.
Они раде тачно онако како они раде у Ц.
>> Ово је заправо веома слична.
Опет, штампа губи један знак офф принтф сте проћи неке везе.
Испоставило се стрингс може бити или обележени
од полунаводника или двоструким наводницима.
Нема разлике, осим што изнутра
појединачних цитате можете да користите двокреветне цитати са напусте,
уместо да побегне све њих.
И унутар двоструким наводницима, ви Можете користити једноструке наводнике са напустити
без потребе да их побегне.
Ако сте хтели да се мешају их, сигурно може
угледају на мрежи како да то урадите.
>> Приметићете да овде, Ја сам прошао у крају = ову ствар.
Ово је пример опциона Аргумент, која је једна од оних ствари
да Питхон подржава да чини веома корисно.
Дакле, штампање заправо има доста аргументи, који су обицно
постављена на њиховом дефаулту вредност, али овде имам
одлучио да замени ону која се зове крај.
Разлог због којег морам премостити га са празан стринг
је да штампа у Питхон-у, од Уобичајено, исписује нову линију
након што га је рекао превише.
>> Дакле, ово хасх заправо ће одштампате хасх у нову линију.
А ако не желим да одштампате хасх нова линија после тога, онда морам да кажем
не одштампам.
Али, ипак је тако, једна последња ствар коју Овај програм је нестао онај има је
назначити на врху.
Штампа се пече у Питхон тако практично да нема заглавље или модул
да треба да укључују, али ако хтео
укључити друге ствари у Питхон скрипта,
Ја бих то на веома сличан формат-- речи су само мало другачије.
>> Поменуо сам да смо не треба овде главни,
јер Питхон почиње извршавање на врху.
Да сам хтео да замотати ово у функцији, ја
би то као ово-И бих деф име функције,
аргументи могу ићи у овде и ми ћемо погледајте неке од тих касније, дебелог црева,
а онда опет, овај Читав кренули блок
је оно што је оперативан блок за ту функцију.
Дакле, ово је дефиниција функције.
А ту је и изјава, онда доле овде, ја само могу да позовем функцију.
И опет, програм преводилац, са почетком у врху,
видећете да је ово дефиниција.
То неће извршити ово до ње стигну, а онда је као, ох
сад си га назвао, ја Претпостављам да би требало да га изврши.
>> Ствар је то веома уобичајено да видим у Питхон фајлове,
посебно Питхон фајлови које су пуштени у јавност
и развио по-- и развијене и одржава, је нешто овог облика.
То је зато што басицалли-- Питхон почнете на врху
а онда извршити на дно, Ја ако сам имао Марио позвао овде,
онда сваки пут сам укључен у ову слику неки други фајл, јер сам желео да користим
је функција Марио та друга слика би Такође имају овај позив Марио у њему.
И када сам водио тај фајл, да ће расписати Марио.
>> Дакле, могуће је да само ја Желим да покренем ово ако сам у ствари
извршава ову конкретну слику.
И тако ја могу завршити ово идиом овако, где ја кажем,
ако је име овог извршења окружење је главни,
онда желим да радим такве ствари.
У супротном неко други може Користи, укључују ми фунцтион--
мој досије, и само да би Приступ овим функцијама
без потребе да покренете ствари да желим да изврши у овом фајлу.
Ово је, опет, опционо али врло често.
>> Ове ствари су ентирели-- су исто између Ц и Питхон,
свакако у 3.
Мислим да је у 2, оператор подела Понекад вас враћа плута када
си оперисао интс, и било сте хтели то или ниси.
Али плус, минус, и времена раде баш као што бисте очекивали,
осим када нешто више врста.
Тако да се може размножавати пловци од ИНТС, и оне врсте ствари.
>> Сет ради исто.
Можете користити два једнака знака.
инекуалс-- већи, мање него, оваквим ствари--
имају значења која сте упознати са њима.
>> Где Ц користи ове операторе, Питон користи нешто више Енглисх
читљив онес.
Дакле, уместо да два, амперсандс, ви дословно укуцајте реч "и", "или"
ili ne."
Као у вашој ако-- у вашем условне изјаве,
видели смо раније да овај синтакса у Ц одговара овој синтакси у Питхон.
И ту није много другачији ту, осим мало
од интерпункције око стране.
Опет, где је Ц би другде ако, Питхон користи Елиф,
али то су углавном Промене површини.
>> Итерација овако је често пише у овом идиома у Питхон.
Можете производство ову врсту ствар са вхиле петље на спољашњој
ако желиш, али сигурно не морате.
А опет, ако је желео одштампати елементе у од низа
можете то учинити на овај начин.
Једна од забавних ствари о Питхон ипак,
је да не треба да користите ову парадигму,
и можете користи мало елегантније један.
Кажете фор а у Ари.
>> Дакле, уместо да овде и трчање преко индекса,
а затим извлачење појединачни елементи,
ти рећи да заправо само за прегазити самих елемената.
И онда шта радите унутар могу директно раде
на елементима, што је веома забавно.
И ми ћемо видео-- ћемо користити изнова и изнова да идиома
док ходамо кроз кода.
>> Ово је, опет, пример нечега што ћу
позовите Питхон магију, иако постоје Веома техничких разлога зашто то ради.
А постоје техничке ствари које треба да буде истина о низу како би
за то да раде иза сцене.
Ствар је у томе да већина типова коју бисте очекивали ово да радим
имали ово реализује за сте у уграђеном језику.
>> Још једна ствар која би било лепо ако је радио у сваком језику,
али постоје неки разлози зашто не може, принт Овај стринг пута овај број.
Испоставило се да у Питхон, ово ради управо шта желите, што је само забава,
што значи да можемо да смањују овај програм, поново марио.ц.
Уместо итератинг много, можемо само да кажем, хоћу мало више простора,
Желим број хешева, а неки хасхирани на крају.
И опет, ми користимо овај формат.
>> Ево, ми смо у пролазу променљиви овако.
Опет, не морамо да кажем који тип променљиве да је,
и једини пут ћемо добити грешке је у време извршавања.
Када неко покуша да прође нешто у,
да ће доћи у функцији добро.
Ако овде клин, јер ово није Оно што можете да креирате опсеге преко,
Узећу грешку рунтиме тамо, а ја ћу морати да га дебуг тај начин.
Али, у међувремену, немам бити врло опрезни шта
бива усвојен, докле год у актуелним Извршење све ради веома чисто.
>> Чак сам могао да ово мало чистач
коришћењем одређеног уграђену функцију он стрингс, који је Десно равнање.
Ово је само корисна функција леже у библиотеку.
То је у документацији ако идете и тражити њега.
И ја кажем, па ћу имати Овај стринг, одређени број хешева,
и ја бих да оправда право То-- пад Ит Оут са просторима бити овако дужине.
>> Опет, ово је у документација, која доноси нас--
Ја сам заправо ћу цлицк тхроугх тхесе-- што нас доводи до наше друге владавине
за Питхон-- стандардне библиотеке Методе функција су твоји пријатељи.
И често је вредно, а да иде у потрази за Питам се
ако постоји ствар која управо то ради.
Вероватно јесте.
Ако желите да јастуче од низа, ако бих
волим да идем назад пола низа, ако бих
волим да претражујете кроз низ, ако желите да разбије пар ствари
заједно са низом зарезима између њих,
постоје стандардна библиотека Функције за ово.
>> И то чини ваш живот лакше ако их користите
уместо избацујемо све сами
у пет линија кода овде, пет линија кода овде.
То стварно почиње у додати до реалном времену.
>> Једна од интересантних ствари како то бива зове.
Приметићете да постоји тачка ствар.
Имам неки предмет са леве стране, и онда сам позвао тачку функција.
Ово је један од парадигми које Питхон користи за причвршћивање методе за објекте.
Причаћемо о томе шта ово је веома кратко на крају,
али знам да можемо обоје раде на ствари тако што ту ствар говорећи дот
год, или позивом функција која узима
тај предмет и неки други аргументи.
>> Дакле, то су оба начина да ствари се ради у Питхон.
И да ли је одређена функционалност је имплементиран
у овом стилу или ово стил је нешто што вас
треба погледати док не добијете Ханг за које једна је вероватно да ће пасти у.
Постоји више или мање кохезивно филозофија иза Питхон
да углавном апсорбују пишући доста у њему.
У једном тренутку, који од ових нешто ће се спровести као
постаје природно.
За сада, то је само нешто учите како да откријете
свака индивидуална ствар.
>> Дакле, стандардна библиотека Функције су ваши пријатељи,
и пустили су пишете ствари које заузимају много простора ову заиста кратко,
заиста елегантно.
И то је заправо вероватно више читак, рекао бих, него Ц програма
tamo.
Да не помињемо чињеницу да је тако кратак може да стане цео слона
У простору који смо спасили.
>> Друга ствар, ово је имплементација Марио да је дот Ц, што мислим да
је најкраћа можете га добити.
То нема ГЕТ инт, али Било је тешко кодови вредност од 10
на исти начин да то неко ради.
Испоставило се да је један сатови у на 84 знакова, док Питхон је 64.
А ово је бескрајно више читљив од овог смећа овде.
Дакле, Питхон је ефикаснији у свемиру.
То нешто мање ефикасан је у времену, али не много.
>> Листе су важна ствар у Питхон.
Нисмо их видели, али они функционишу слично као низови раде у Ц.
Дакле, овде, можете их објавити, можете их проћи у ствари.
Сада квадрата држи низ од тих ствари.
Опет, нисмо проглашен тип, али ако икада покушали да га користе,
све што бисте очекивали да раде на низ целих бројева
ће радити на низ целих бројева.
>> Тхис Ис ствар која апсолутно не могу
радимо у Ц, јер Меморија је тако руке на,
али је врло лако да уради у Питхон.
Ако желим мој низа да буде већа, ја могу додајте елемент на њега и то је у реду.
>> Шта се дешава иза кулиса?
Тумач ће отићи напоље и мало меморије,
и можда ће добити мало додатне меморије,
тако да не бих ја немам да Реаллоц сваки пут.
Али колико има више меморију то треба?
Ово нису одлуке да мораш да,
То су одлуке које су преводилац ће да уради.
>> Овде видимо опсег могу узети два аргумента,
али ипак ће бити инклузивна на врху тако да смо додали 1 тамо.
Ово је начин изражавања, што је још паметан начин да пишем овакве ствари.
То се зове листа разумевање, и овде шта говоримо
се Волео бих да у пут и квадрат за сваку вриједност сам у овом опсегу.
Ова ствар на десној страни може бити још један Арраи, а ово са леве стране
да буде неки посебан функција да би се у И као променљива
и да ме неки резултат.
>> Оно што ћу да урадим је, Идем да изгради
низ то је све ове ствари за сваку вредност у овом опсегу.
А ово је супер елегантан, супер кратка, и то је врло јасно шта то значи.
Ово је један од ствари-- то је опет,
једна од-- врло симболично представљала Разлози да људи попут Питхон.
Ако вам се свиђа програмирање овако, онда Питхон
је језик да би желели да науче.
>> И опет, постоје техничке Разлози због којих се то ради.
Али колико смо забринути, смо више или мање не занима.
>> Дакле, ако желите да одштампате листе, неке од истих идиома су корисне.
За сам у овом опсегу, могли бисмо Индекс кроз све ствари
а затим их све одштампате.
И видећете лен овде.
Ако сте икада желели да се дужина низа, то је
врло лако у Питхон, веома је тешко у Ц.
То би одштампате тачно шта би то очекивали да.
Ми такође могли, као што смо раније видели, Посматрајте преко елемената у низу
директно, а онда разговарати о их, умјесто да индекса
назад у низу сваки пут.
>> И то је ствар коју можете да урадите.
Дакле, у Ц, ако питате за нешто овако, штампа би рекли,
то је низ целих бројева.
То дефинитивно није стринг не могу да штампају.
Питхон мање или више не занима.
То је као, да ли постоји начин да може претворити ово у у стринг?
Да, ја ћу то да урадим.
И тако ћу само штампање то.
То значи да можете радим ствари као-- то
су већина чврстих делова дивљачи петнаест, написано
врло кратко у Питхон.
>> Видећете да постоји мало од-- овде
Ја сам цаст цео број у стринг, и ја морам то да радим ручно.
И ја ћу да додам је у други стринг,
или на други начин Питхон збуни.
Али, да ли када сте додајући стринг у цео број,
ја претпостављам да да добијемо целим назад или низ назад?
Али опет, ако само позовите стр на ствар,
и могао би у било могуће свет бити претворена у стринг,
вероватно ће бити конвертује у стринг.
>> Овде видимо употреба Угнијежђена листа разумевање
са леве стране, неки индексирање, који је исто као да си се навикао на то,
а неки штампање ствари.
Опет смо дефинисан неки функције и ми ћемо их звати доле
у главни када смо добили датотеку.
повратак ради баш као ти би Очекујем од рада са Ц. Пронађи,
можемо поставити ствари као што су ово-- овде је списак разумевање
има задатак да променљивој, а ми заправо можемо урадити још лакше.
Ми не треба да пишу претрагу, јер су уграђени у језику
је ли ова ствар у овом низу.
Повратак истина, друго ретурн фалсе.
Дакле, то је целина налаза.
>> Целина врсте укључује зове врста,
која је- постоје имплементације ово уграђена у одређеним Ц библиотеке.
Ако желите ово некако уназад, хвала
могу занемарити овај изборни аргумент у рикверц са прави.
А ако желите да сортирају преко жице, који је уграђен у као добро.
>> Дакле, ово је да не кажем то су ствари које треба да обавите сваки дан,
али идеја је да овај је филозофија Питхон,
да све ове ствари које ти би некако желите да урадите су уграђени.
И већина стандардне функције, тако врста, дужина, шта год,
подржава већина логично разуман улаз.
Ви позив лен на истом Арраи како ви зовете лен на конопцу.
Ви мултипли-- сортирање стрингс на исти начин сортирање низова.
>> Већина стандардних функција да људи граде,
а већина независних библиотеке које људи
граде, јер они угледају дизајн стандардне библиотеке,
може бити позван на свему што си ти као, зашто не то само посао,
у Ц. Више или мање, она ће радити у Питхон
јер људи раде иза да слици шта је ствар и онда раде
одговарајући на њему.
Дакле, опет, техничка позадина, али га чини наше животе лакше и програмера.
>> Дакле, овде је фајл И / О. Филе И / О има пуно ситнице које га чине компликовано,
па постоје ресурси мрежи, али у суштини,
зовете отворен фајл име са одређеном типу.
Тако да је прочитао, прочитајте и пишу, пишу или додати.
Читаш одређени број ликови напоље и да одштампате оне,
ћете добити Хелло!
Мислим, овако фајл имала Поздрав!
У њему, позовите да чита, и шта ћете се вратити
је стринг који има све остатка низа,
или цео остатка датотеке.
Ако те поново прочитате, ти си на крају фајла,
па да не добијете ништа и тако ћете затворити.
Опет, ово је .цлосе него близу фајл, јер би у Ц.
То је мање или више, јер је ф ствар, а желите да затворите на м.
Али основни фајл И / О је не посебно компликовано.
Опет, ако желите да отворите фајл, ако желите да прочитате одређену линију,
можете добити из посебно лине-- има изграђене компоненте за то.
Ако желите написати ствар, можете написати ово.
Ако желите да напишем појединца угриза, можете да пишете оне.
А ако желите да поновити преко линија фајла
појединачно, као што смо урадили у комаду од Пре неколико недеља, можете то да.
Опет, већина објеката које бих бих да могу да поновити више
Подршка итератинг над њима.
У Питхонс, фајл је можда ствар која Волео бих да поновити преко линије линије.
Ако је то био рјечник речи и ја сам био
покушава да тих појединачних речи од, тада, у том петље,
линија да ће бити свака реч заузврат и то
ће бити погубљен за сваку линију у датотеци до краја датотеке.
А опет, ако сам одштампан сваки линија, линије долазе са новим линијама,
па сам постављање крај назад на овакве ствари.
Онда бих се садржај мом досијеу.
>> Друга ствар која послује у неки од начина попут листама, и на неки начин
као нешто суштински моћнији,
су речници, који су заиста кул за кориштење, али су у суштини хасх
табеле у дисгуисе.
Ви направите користећи управо два знака, што је супер
Ако сте покушали да имплементирати хасх табела за свој проблем сет,
знате много бол који може бити.
Али, људи су урадили да, и то учинио тако добро,
да не морате да више бринути о томе.
>> Тада можете убацити појединачне ствари.
Хасх таблес-- или речници не посебно
занима ме шта ви складиштење у њима.
Дакле, ако неки уноси су бројеви, а неки уноси листе,
ако неки уноси други речници, а неки уноси жице,
Питон не брине много.
>> Опет, ако идете у њега очекујући стринг и оно што добијете назад
је низ, то је твој проблем.
И можда је крив ко Мислио сам да је стављање ствари
у речнику, мозда да си ти.
Ако је то био неко друго, надам се да су
добро понашао о чему иде у речнику
и није оставио никакве замке за вас да упаднете у њу.
>> Али стандардне функције ће дај те назад добро поступали ствари.
Дакле, они кажу да се враћа назад А Дицтионари оф стрингс,
онда све ћеш да изађе из је стринг.
Ако радите нешто од овога и путовања ви горе, добро, то би могло бити на теби.
Питон вас сигурно даје довољно конопац да се обесе, ако желите.
Сада можемо исписати појединца елементи ово и ово враћа
управо оно што бисте очекивали.
Управо оно што бисте очекивали, претпостављам, је фраза која ја користим много,
али то је више или мање како Питхон ради.
Ако тражите неке ствари које није да, Питхон ће избацити грешку
и он ће вас напустити из год програм који су били у.
То ће заправо исписати више информација од тога,
то ће указати ти-- да ће додајте линију, и тако.
>> И, опет, можда желимо да прелазили преко речника
и пронаћи све ствари у њему.
Овде смо итератинг преко две ствари у исто време.
И тако ћемо то урадити са кеи, валуе, али онда одштампате све ово.
>> И ако смо желели да цаст-- ако стварно водио ово,
ми би имали неке невоље због ајде-- када смо ишли у са Дејвидом,
није могао адд-- ако нисмо баци у стринг прво,
нисмо могли додати ту низ жица на концима.
Али ако га баци на А стринг добијамо нешто
овако, што је можда оно што бих волео да прочитам.
>> А ово је спеловала.
Управо смо прочитали у ствари.
Тако можемо прочитати у појединачне речи као линија.
Ми одсећи последњи ствар, тако дебелог црева минус 1
цхомпс са последња ствар која бисмо-- последњи карактер стринга.
Ми ћемо рећи.
У реду, свако добија један од оних убацују у овом речнику,
мапирања у вредности од 1.
Ми не нарочито стало оног,
али то је само ту да кажу, па добро, ово ћу ставити у речнику.
Јер, касније шта смо урадити је да смо
ће рећи, добро, ако је у речнику уопште.
>> Опет, ово чек на чланство је до оперативног
коришћењем потпуно другачији алгоритам него што ће у листи,
али ми то зовемо на исти начин, који је нешто од тог Питон шећера премаз
ствари тако да су лакши за коришћење.
И опет, видели смо ствари овако.
Ово је у основи налазе, или то је исто синтакса
као наћи, али ради више од потпуно другачија структура.
И не нарочито брига.
Дакле, то су ствари које сте су се питали да спроведе за спеллер.
У овом случају, ми ћемо добити више или мање све псетс урадили.
>> ПУБЛИКА: Тако да у основи само врати
као погрешно написали ако не одговара нешто у речнику?
Росс РХЕИНГАНС-КИМ: Да, да.
И тако, ово је адаптација проблем сет
који тражи од вас да управо то.
>> ПУБЛИКА: Зашто је линија минус 1 тамо?
Росс РХЕИНГАНС-иоо: Па кад итератинг
над фајл тражи по линијама, линије
долазе са нове линије карактера крајем тога-- минус 1
је само да купују оне с.
А ово је посебно флексибилан начин индексирање у ствари.
Дакле, ако имате стринг, а желите, и ја сам
ће почети у три карактера и ја идем до краја.
3 дебелог црева ће то урадити за вас.
Ако сте као, желим да почнем од почетак и идите на последњу минус 1
карактер, дебелог црева минус 1.
А ако сте хтели да иду од трећи у минусу прво,
онда би рекао 3 минус 1.
>> Осим тога, ако желите да индекса у ствари, рачунајући од позади,
само индекс у бројевима минус.
И зато, где Ц експлодирати или можда
феед вам други меморију коју није имао приступ, чује можете рећи минус 1
значи на крају, али 1 карактер у низу.
>> Модули су версион-- су аналоге у библиотекама Ц
и корисни су за многе ствари.
Много ствари које бих воле да раде у Питхон-у,
осим једноставна манипулација варијабли,
желите да повежете Инто тхе већих библиотека са већим
интерфејси и више могућности за интеракцију
са другим деловима света.
сис је један од њих са гомилом алата
који су корисни за интеракцију са самим системом
и да ће га увести као увозних сис.
>> Има још документација да, што сте могли овде,
или можете наћи на Гоогле-у од гооглинг Питхон сис.
Ви укуцајте ентер.
Први линк ће бити Документација која је у Питхон 2,
други линк иде на бити документација Питхон 3.
>> И ако смо написали да датотеку који је изгледао као ово-ако у посебно, ми смо
гледајући ради на командне линије аргументи,
као да смо научили да радимо веома рано у овој класи.
То није тешко. Можете изаћи аргв,
која је једна од оних ствари који спроводи сис.
То није уграђена до базовиј пакет, али опет, хвала
може продужити увозом да функционалност од сис.
Ти ћеш га звати сис.
šta god.
Овде је аргв.
Заправо Нема аргц у сис, јер вас
могу добити тако лако позивом Лен.
Ми смо тада штампана да се, онда ћемо ран на нашем терминал ецхо-аргс.пи.
Ми се вратимо низ који ово је први аргумент.
Опет, ово је аргв 0, што је назив ствари које су ме позвали.
Ако смо га звали са додатним аргументи, да ћемо се вратити оне.
Ово је један од начина да се командне линије аргументи.
Ако желите заставе, где се окренете одређене ствари на или оверриде
посебан подразумевани, аргпарсе је твој пријатељ.
И опет ћете наћи да је онлине на питона аргпарсе на Гоогле.
>> Постоји неколико корисности модула који се нађете користећи
и опет, ако сте провели неко време ово језика увоз јсонс
за читање и излазак из ЈСОН фајлови, то није компликовано.
Ви отворите фајл, позвали сте јсон.лоад на тај фајл и ви се врати ствар.
Шта је то?
То је ЈСОН објекат.
Где да ЈСОН има низ, Питхон има низове.
Где да има ЈСОН асоцијативних низова, Питхон
речници, жице, и бројеви, и тако даље.
Желиш да баци то, ти отвори нову датотеку, ви зовете депоније,
и оптерећења и депонија у улазе и излазе из низова.
>> Слично томе, кисели краставац бива назван у основи истог интерфејса.
То је нешто више корисно ако ти дампинг Питхон објекте.
Дакле, ако сте икада желели да сачувате верзија тренутног стања
од променљиве за будућност рун вашег програма,
кисели краставац је Питхон библиотека за то.
>> Ако имате било какав варијабла која може бити написан од
у сличним речима и ликовима и битес-- лике тхис речника,
можемо записати, ми могао да напише како
попут јсон објекат, који је био дословно ови ликови.
И онда би било врло лако људски да отворите га их-- отвори
и прочитао га.
Ако нисмо посебно Стало људима да читају,
можемо ефикасније и пакет у форми која може да се распакује
или која може да се надуван.
А то штеди 80% простор да ваши објекти мигхт
узети ако их написали руком.
>> Ти то зовеш краставац много исто ваи-- депонија, оптерећење,
и онда се ствари вратити.
Дакле, ако сте веома писање кратки Питхон програми који
желите да сачувате државу, а затим прочитајте их касније, овакве ствари
су твоји пријатељи.
Да си могао врло лако их је одбацио као ЈСОН.
Већина Питхон објекти може избацили ЈСОН
Ако постоји било каква нада да структурно они могу бити представљено на тај начин.
>> Ово су само врх ицеберг на модулима који су корисни.
Тако сис, ос, мултипроцессинг су врста основних товарни коњи за ствари
морамо да комуницирају са датотека систем ОС.,
као ос.исфиле, ос.исдирецтори, ос.макефиле, то су твоји пријатељи.
Ако желите да комуницирате са посебним тип датотеке,
ЈСОН, кисели краставац, ЦСВ.
Ако желите да интеракцију са веб страница је урллиб за добијање хттп
пагес. бс4-- БеаутифулСоуп-- То је дивно анализатор за ХТМЛ.
Ви га покренете на хтмл и вама добити овај угњеждену низа објекат сада,
којима можете прећи преко Лоокин, са сличним јуст лоокинг фор
ако је, у који је фантастично.
>> Постоји гомила пакети за руннинг--
за то посебно МАТХИ ствари.
Дакле, ако желите да се размножавају, инверт, трансформација матрице,
НумПи се користи од стране људи свих широм света за то.
СциПи је још корисно алати у том правцу.
склеарн-- машинско учење, обрада природног језика,
Супер корисне ствари, добија имплементиран у Питхон све време.
>> И опет, треба нешто дуже врите-- је,
потребно мало дуже да ради, али разлог да прави инжењери имају тенденцију
Употреба Питхон је зато што имају тенденцију да буду блокиран на вас писање кода, а
од рачунара ради код.
Дакле, ако ћеш написати програм, који много других људи
намеравате да користите заувек, као Линук, иоу
Можда га написати у Ц. Ако сте били ће написати израчунавања мотор,
можете писати на Питхон ако је потребно да га промените на сваких пар месеци.
Неки људи би то написати у Ц зато што су такви.
>> Дакле, видели смо увоз сис као начин добијања ствари
добијања модул у свој програм.
Можете га увести као надимак, ако желите.
Опет мултипроцессинг је бол за откуцати сваки пут, тако да увозе као мп
и онда ти свако доба користите га у програму,
ћете рећи мп.процесс, или оно што имате.
Ако желите увоз само један ствар,
тако урллиб има нешто што се зове Захтев, тако да можете само да увезете то.
Касније, нећете га позове као урллиб.рекуест, али исто тако захтев
po sebi.
>> И можете да увезете све од модула ако желите.
Ово је повремено није добра идеја ово обично није добра идеја, у ствари.
Зато што вери-- јер ако ишта у том модулу има име које вас
желео да користи негде другде у вашем програму, не можеш.
>> И то није увек очигледно да је то случај.
Како би били сигурни да шта сте радили је сигурно,
морате да отворите модул и види све
од имена која завршавају у тамо-- све функције,
све варијабле који живе у том модулу,
јер сте доноси све их у своју локалну именски простор.
>> Дакле, људи раде ово.
Опште је Препоручује да не ради то.
Али, људи раде све ово време јер су
лењ и не желим да откуцати мп.
ништа, икада.
>> Сва та прича о модулима бринг ме око на кратак разговор
како да дизајнирате програм у Питхон.
Први корак је да проверите да ли неко други је већ урађено ствар,
или урадили 90% ствари.
Шансе су они вероватно имају, а ви би требало да добију ствар и покрените да.
Или написати омотач око њега да га прилагоди својој сврси.
То је тек након што је фаилед то онда бих
иди и врите-- поцну да размисљају о како би заједно ово.
Има пуно ствари тамо, и то је
један од најкориснији ствари о Питхон.
Као што је језик елегантан, језик
је једноставан за коришћење, али и због тога што тако је елегантан и једноставан за коришћење,
људи су га користите за дуго времена и има много ствари
тамо да можете искористи за сопствену употребу.
>> Дакле, последњи правило Питхон је, неко други већ вероватно написано
модул за то, неко други је већ
Вероватно написао библиотеку за то.
Пре него што покушате да урадите нешто, погледај да видим да ли се спроводи.
То није тако тешко.
Све модула који сам ставио горе раније, са можда једним изузетком,
бити унапред инсталиран у сваком Стандард Питхон инсталација.
И тако са позивом на увоз било шта, хвала
има све те функције на дохват руке.
>> Почев да ће завршити ово Разговор, постоји неколико ствари
да сам оставио као црне кутије и нека врста напоменуто изнад,
и ту је неколико Вхите Лиес да имам је рекао да због искрености,
Ја ћу барем тачке у Овде, чак и ако нећу
го Супер дубоко у свима њима и њихове техничке објашњења.
>> Много ствари које сам назвао магија
је оно што би други људи зову објецт ориентед программинг.
Дакле, постоји много ствари-- тако да варијабле су врло често не
једноставна бајтова седе у, меморије, али су врло компликовано
објекти који имају интерни држава о функцијама и много
скривених променљивих, много сакривен функционалност, која
омогућава вам да их претвори у жицама, која вам омогућава да поновити над њима.
А ако вритинг-- и зато сто
има све ове богате функционалности јер је људима--
архитеката лангуаге-- су отишли
кроз и за сваки стандард објекат, ставити у функционалности
да кажем да је како је ово како це се ово радити
ако неко жели да поновити због тога.
>> Дакле, све што неко могао можда желите да поновити више,
је логика написан у ручно како сте
треба да прелазили преко тог објекта.
Све што сте можда желети бацили у низу је логика написано.
Ово је функција коју ви зовете ако желите да бацим ово у стринг.
То је разлог зашто можете позовите лен на ствари, ово
Зато можете позвати у, ово је Зато можете позвати ако је у на свему
да би желите да, због они сви носе са њима,
техничко знање да то урадите.
>> То је нешто што сам Супер неће ићи у.
Али за ствар на листи је суптилно разликује од стила Ц за петље,
можете прочитати све о томе на интернет, ако сте заинтересовани.
Постоји тамна страна за све ово, које сам поменуо,
тако да је две ствари.
Први је да овај објекат оријентисан програмирање додаје доста изнад главе
да случајних ствари, тако да крај се користећи много више меморије;
завршите користећи А Литтле Море Време него што би иначе.
Отхер-- али више подмукао тамна страна овога
је, ако се ствари једноставно делује као да их желите да
не морате да мислите Супер Хард о томе да ли ово треба да буде инт
или да ли треба да постоји пловак, могуће је да овде
можете произвести инт, али овде сте Мислим да ће ми увијек али је,
могуће је да овде произведе флоат,
али када дођете до другог дела вашег програма, мислиш,
Па добро, али они ће ми увек донесе инт.
А ако то не ураде, то је могуће да ли негде заглављена,
ако покушате да користите то индек у низ, или оно што имате.
>> Зато је један од прави корисне ствари о Ц је
да вас тера да стварно мислите тешко пре него што донесете ани--
пре него што донесе било какву променљиву у постојање, као што
је врста ове променљиве.
И то ће имати тај тип за сва времена.
>> To nije istina Питхон и у ствари, ви
можеш-- ако ти си само некако иде по слуху,
а ти правиш неке одлуке Један од начина на једном месту,
и неке одлуке један начин на другом месту
без стављања довољно ствари иза сцене у другом месту
ухватити како треба, ви могу добити неке врло чудне грешке.
И програм мозе да води за веома дуго, јер је то
радиш пуно посла да кажем, добро ово може радити на овај начин,
па ћу покренути тај начин.
>> У ствари, чињеница да је он гура проследити кроз много малих грешака
значи да, често када грешка је заправо лоше
а ви заправо желите да га поправи, да заврши миља прошлост-- програма
завршава заустављање миљама далеко од када си имао своју грешку.
И тако једна ствар коју смо желели Програми које треба урадити, сометимес-- једну ствар
да бисмо волели програме да радимо када смо дебуггинг
је не гласно и не баш брзо када нешто крене наопако.
>> Питхон је врло лоше у томе.
Питхон је веома добар у не неуспеха и ваљање напред
кроз неочекиване ствари.
Ово је корисно када пишеш мале програме.
Када се компликују бубе понекад
Потребно је доста времена да их задиркује напоље.
>> Дакле, постоји тамна страна за све ово, као да само ради.
Само ради као што очекујете од њега.
Осим тога, када се то не догоди, можете завршити у потпуно другом месту
и покушавам да схватим где сте то пошло наопако.
>> Смећа је- тако једна ствар коју ћете приметити
је да сваки од тих ствари које Донео сам у екистенце--
ови низови, речника, те објекти, они филес-- никада се ослободили.
Није било позива да се слободно у било којој од овог разговора.
И то је било на Ц-Сиде, јер никада нисмо ушли у те ствари.
>> Али у Питхон-стране, не постоји слободан.
Ствари се аутоматски ослобођени када Питхон
мисли да не гледате у њих.
То је заиста добро не ослобађа ствари које можда још увек могуће да се гледа,
али то значи да ако сте били да издвоји ову велику ствар,
а ти си као, ох Завршио сам са тим сада,
тешко је рећи Питхон да сте завршили са њим сада.
>> Понекад можете подесити да променљива да се нико,
и онда се надам да на крају сакупљач отпадака
долази кроз и чисти га.
Али опет, ти не имају контролу над тим.
А један од разлога да људи користе Ц за стварно перформанце критичне ствари,
је та способност да се заиста знам кад је додељена меморија
а када је ослобођен, и имају много контроле над говорећи,
Ја користим нема више меморије него што је потребно.
Што је нешто што Питхон је није сјајно у.
ПУБЛИКА: Могу ли да ти поставим питање?
Шта сте мислили не гласно?
>> Росс РХЕИНГАНС-КИМ: Дакле, ако Нешто није у реду
и ти си у отклањање грешака режим, што би веома често
Желим ваш програм да ти кажем где је тачно није у реду,
и не само тихо престати да раде.
Али стварно бих га да одштампате од свих врста информација о
као, овде је то.
Ова ствар се догодила Ако штампање вен-- ако користите веб сервер--
>> ПУБЛИКА: [неразумљиво]
>> Росс РХЕИНГАНС-КИМ: Да, ако да сте покренули веб сервер,
понекад је лоше ако сте Увек одбацивање грешке,
а ви говорите, и то није успело.
Ја ћу да престанем.
Идем само игнорисати то и наставити даље.
Јер, онда можете добити у стотинама ових грешака, а не да их видим.
>> То би свакако било корисно за отклањање грешака сврхе
ако сваки пут ваш веб сервер је извео грешка, имали сте трајна евиденцију тога.
Можда чак желите да програм да се заустави, тако да ти записи
не затрпала ствари.
Али опет, то је за отклањање грешака моду.
>> Често у режиму производње, Свет је мало другачија.
И у малим скрипти које ја водим, где је ствар коју сам рекао да радим
можда само мало изван од онога што бих желео да уради,
онда некако гура кроз грешке је нешто можда желите.
И у тим случајевима, свакако Питхон стварно зарадјује своје почиње.
>> Последња ствар коју нисам разговарала у ово-- да нисам говорио о
али може бити јако бринем први време имате један од ових грешака,
а други и трећи и четврти Време имате једну те грешке.
Питхон сам споменуо да користи бели простор
да ти кажем шта ниво увлачења и шта функционални блок си унутра,
третира картице и просторе другачије.
Дакле, ако сте картицу преко четири, а затим следећи ред има четири простора,
чак и ако се појаве као исти износ у вашем едитору,
Питон их не третира исто.
>> У ствари, Питхон третира картице и простори попут уља и воде.
Они су само различите ствари.
Не постоји посебан Дужина која је картица,
тако да је као картица износи 8 простори, па би се око њега
onuda.
Као, кад се каже, шта Ниво белог простора Ја сам у,
је заправо у потрази за образац простора и наслове.
И тако, најбољи начин да се ово је да увек користите размаке све време.
>> И у ствари, у цлоуд9 ИДЕ и ЦС50 ИДЕ
Ваше кључне уметака четири места у уместо
за наслова, која је супер корисно.
Мада опет, ако је написао Питхон Програм са картицама које ће бити у реду,
то је само ако неко отишао у и покушао да дода
једна линија на ваш програм да имао четири места за сваки таб,
то би сломило.
И то би на неки начин сломити то је стварно није видљив.
Иако тхе стварној грешци Порука која се баца
има везе са новим индент овде не очекује,
или-- ако се говори о алинеја и изгледа као да је у реду,
то је вероватно због тога што је постоји проблем са картица простор.
Они још увек бринем да дебуг.
Највећи цјелини у та прича, која нисам
дођете до јер је стварно компликована, суптилна тема,
и није било потребно да урадите нешто од ствари које смо урадили до сада,
су концепт под називом торке.
Они су ту као да је много низови да не можете да мењате.
Они се користе свуда, јер они су корисни за много ствари
да низови нису корисни за.
>> Али, ако желите да направите низ, а онда обећавају преводиоца који вас
никада неће хтети да измените да ствар-- у ствари, ако желите да промените,
ћете направити нови са новим вредности у тога-- оних који су торке.
Уместо производњу их са заградама,
да их производе са округлим заградама.
Зашто би користили ове ствари, је мало питање. .
Једина ствар коју ћу кажу о томе вас је
Можете користити записе као индекси за речника.
Не можете да користите као низови индекси за речника.
А зашто је, опет, техничке и Нећу да налетим на њу.
>> Псет да нисам пипнуо у овој разговору је псет6.
Ево како се 'д имплементирати је-- ево
како би спровести псет6 у Питхон.
Имајући у виду Питхон Дизајн циклус, прва ствар
да радите кад сте писање програма је провера
да видим да ли је неко то већ урађено.
>> У ствари, ако желите да серве-- Апацхе 50
ради отприлике ово, осим што не долази
стандардни инсталиран на Линук машинама.
Питхон ради, и Питхон једноставна ХТТП Сервер ради као добро.
Ако сте икада сте на Линук машини, или Цлоуд9 ИДЕ ван ЦС50
и да би волео да служи овој струје директоријум одређеном порт,
питхон-М СимплеХТТПСервер порта служи томе.
Такође можете да увезете једноставна ХТТП Сервер
и има доста функционалности ако желите да га прилагодите, или промените га,
или имају То-- то упрегне у покренути своје услуге сервера.
>> Дакле, то је Питон у кратким цртама.
И ово је било ЦС50.
Hvala vam.