РОСС RHEINGANS-Ё: Прывітанне, я Рос.
І гэта CS50 семінар.
Гэта зойме ў вас ад праграмавання у З праграмаванні ў Python.
>> Python гэта скрыптовая мова.
Гэта ў значнай ступені, як C у сінтаксісе, хоць некаторыя
тэхнічных дэталяў як, што сінтаксіс запускаецца на выкананне
трохі адрозніваецца.
Гэта менш магутны, чым C у некаторых адносінах.
Гэта менш выразным для дзе менавіта ў вашым кампутары
памяці атрымлівае выклаў, як ён атрымлівае выклаў,
калі ён атрымлівае свабоду, і гэтыя віды рэчаў.
>> Гэта больш карысна, чым C у некаторых адносінах, таму што гэта лягчэй праграмаваць на.
Мова, з некаторымі людзі, больш інтуітыўным.
І на самай справе, мэта для гэта будзе хутчэй праграмаваць
і патэнцыйна павольней выконваць.
>> Цяпер, калі вы думаеце пра колькасць часу
вы патрацілі на ваш апошні Праблема ўсталяваць запіс
код супраць колькасць часу вы марнуеце
на апошняй задачы ўсталяваць выкананне кода,
можна сабе ўявіць, што на мове які быў у два разы хутчэй пісаць,
і ў два разы павольней, каб выканаць, магчыма, быць паляпшэнне ў параўнанні з C у некаторых адносінах.
Вядома, калі вы спрабуеце напісаць невялікія праграмы, каб зрабіць маленькія рэчы,
Python з'яўляецца карысным мове выбару.
>> І ў канцы гэтага Семінар, я спадзяюся, што вы будзеце
быць у стане зрабіць Выбар у будучых праектах
аб якіх мова правільна выкарыстоўваць, не ідэя
што адна мова больш выправіць ўвесь час.
Некалькі рэчаў, пра тое, што гэты семінар.
Гэты семінар не прызначаны для навучыць вас Python з нуля.
Python вельмі падобны З, і я мяркую,
што вы CS50 студэнт, або хтосьці з аналагічнай знаёмства з С.
>> Калі вы студэнт CS50 вакол праблемы ўсталюйце 6,
Такім чынам, вы бачыце шмат рэчы ў C, я дам вам
асноўныя адрозненні, і некаторыя з рэчаў,
якія робяць Python адрозніваецца і спецыяльныя і карысна,
але я не збіраюся ісці на якую мову праграмавання
і як пісаць праграмы.
Тым не менш, гэты семінар навучыць Вам напісаць Python праграмы
калі вы адзін з тых нешматлікіх груп.
Зноў мы будзем глядзець на тое, як Вы б ажыццявіць psets--
якія павінны быць у 1-6 Python-- і забяспечваюць паказальнікі
у афіцыйнай дакументацыі для выкарыстання ў будучыні.
Іншая справа, што важна пра тое, як гэтая размова ставіцца,
гэта відэа будзе онлайн, ласкава CS50,
так што вы не павінны адчуваць сябе, як Вы павінны прыняць да ведама.
Вы заўсёды можаце вярнуцца назад і паглядзець на яго пазней у якасці спасылкі.
Дадаткова слайды даступныя прама зараз
на гэтым сайце, якія павінны прыняць вас зрабіць дакумент Google.
Гэта крыху скарочаная версія што я паказваю на экране.
>> Адзін нюанс, перш чым асцярожна мы скачам ў, Python 3
гэта іншую мову з Python 2.
Яны выглядаюць нашмат тое ж самае; маюцца вельмі нязначныя тэхнічныя адрозненні
што выкліча праграмы напісана ў Python 2
не зможа быць выканана у асяроддзі Python 3.
>> CS50 прыбор пастаўляецца з Пітон, па змаўчанні ён выкарыстоўвае Python 2.
Вы можаце праверыць гэта, набраўшы ў камандным радку
пітон --version, які павінен вывесці 2.7.6 аб бягучым прыладзе.
Паспрабуйце Python 3, які робіць працаваць ў прыборы,
калі Python па змаўчанні 2.X.Y, альбо на прыбор або на вашых уласных машын.
Вы павінны замяніць Python 3 у любы час У гэтай гутарцы, што я пішу на Python.
Калі ваша машына працуе 2 па змаўчанні, тып
Python 3 для таго, каб быць у стане фактычна прытрымлівацца і выконваць гэтыя рэчы.
>> Акрамя таго, я пакажу вам на афіцыйных рэсурсаў у цяперашні час.
docs.python.org/3--~~V асцярожныя што гэта 3, а не 2--
мае карысныя спасылкі.
Падручнік правядзе вас праз шмат тых жа самых рэчаў
што я раблю зараз, за ​​выключэннем у тэкставай форме.
Спасылка прыдатна ў якасці спасылкі для мовы,
і стандартная бібліятэка дае Вы некаторыя з пашырэнняў
з дадатковай функцыянальнасці.
>> Такім чынам, вельмі першая праграма на Python.
Злева ў нас стандартны C, справа, у нас ёсць Python.
Вы, магчыма, здагадаліся Гэтая праблема, гэта
адзін з першых праблемы наборы ў CS50, і гэтыя
вырашыць, выкарыстоўваючы той жа раствор.
Цяпер, прычына таго, што мы Гледзячы на ​​гэтыя бок аб бок
так мы можам паглядзець на сінтаксічныя адрозненні.
Адзін з сланоў ў пакоі што вы, магчыма, заўважылі справа
з месца ў кар'ер, з'яўляецца тое, што Пітон не мае Асноўная функцыя абкручванне вакол кода.
Такім чынам, у C, вы пішаце кучу файлы, вы звязаць іх разам,
і праграма пачынае выконвацца на гэтую справу называецца INT асноўнай.
>> У Python, вы пішаце падаць табе, запусціце файл,
праграма пачынае выконвацца у верхняй частцы файла.
Так што гэта збіраецца пачаць у верхняй часткі файла
спусціцца, пакуль не знойдзеце нешта яшчэ.
Калі ён знаходзіць вызначэнне функцыі, ён не будзе на самой справе выканаць гэты код,
ён проста вызначыць функцыю.
Але тут, калі першы Праграма п роўная 10,
Першае, што гэтая праграма будзе зрабіць, гэта прыняць гэта значэнне 10
і ўсталяваць яго ў зменную пад назвай п.
>> Гаворачы аб той лініі, адзін з іншы things-- sorry-- гэта
азначае, што праграмы C, вы будзеце пісаць іх,
вы будзеце рабіць іх, што будзе выклікаць некаторыя каманды, ляск,
і тады вы будзеце запусціць у выніку выкананы файл.
Праграмы Python, вы запусціце Тэкст file-- гэтым mario.py можа
быць гэты файл, што я толькі што паказаў you-- вы будзеце працаваць файл
і вы будзеце выконваць, і змест яго
будзе выкананы інтэрпрэтатар Python.
Вы можаце зрабіць гэта ў вашым IDE.
>> Так што, калі ў мяне ёсць файл Hello, які проста мае гэта змесціва.
Гэта на самай справе Python 2, не Python 3, таму не
турбавацца аб сінтаксісе цяпер.
Але я пабягу Python, на hello.py, і ён працуе.
>> Яшчэ адзін спосаб, што я магу выкарыстоўваць Python, што Я не буду мець справу з так шмат у гэтай гутарцы,
калі я проста ўвядзіце Python, ён падае мне ў сераду, дзе
Я магу карміць яго Python парадкова.
Дык вось, калі я тыпу ў друк прастору "прывітанне, свет".
Калі ласка, увядзіце ўвесці.
Гэта будзе пляваць мне, што рэзервовае вынікі што індывідуальная лінія неадкладна.
>> Гэта можа быць карысным.
У гэтым дакладзе я буду рабіць тое, на слайдах.
І так вы будзеце мець магчымасць сачыць нароўні альбо тут, альбо ў пісьмовай форме
фактычныя файлы, а затым іх выканання.
>> Але, вяртаючыся да гэтага Код, іншая справа,
што вы, магчыма, прыйдзецца noticed-- добра, ёсць
дзве рэчы, якія вы, магчыма, апавяшчэнне аб такіх блокаў.
Па-першае, а больш зямной, што Пітон не мае касую коскі.
>> Кропка з коскі не з'яўляюцца абавязковымі ўсюды і бясшкодныя ўсюды.
Вы можаце дадаць іх.
Гэта можа зрабіць людзей, якія пішуць Python для гасцінай смяшок ў Вас
за вашай спіной, таму што яны не неабходна.
Яны часта прыкмета праходзіць над ад С. дызайнеры мовы
адчуваю, што гэта больш зразумела, што гэта шлях і што гэта не трэба, каб абвясціць
кожны раз, калі вы ў канчатковым лінію.
>> Іншая дзіўная рэч пра гэта п гэта не ёсць тып прыкладаецца.
Адзін з магічных штук Python-- і я буду называць яго магія,
але ёсць вельмі тэхнічныя прычыны, чаму гэта
works-- адно з магічныя кавалкі Python
з'яўляецца тое, што зменныя могуць пашырацца або скароціцца ўтрымліваць любыя дадзеныя
тыпы вы хочаце іх да.
>> Так што гэта 10.
Калі пазней ўніз, я прызначаны на гэта п 0.5, было б лічыць, што 0,5.
Незалежна ад таго, што што гэта тут і INT плаваць там, усё, што выкарыстоўвае гэты п
будзе больш ці менш, зможа пыхценне нароўні калі ён атрымлівае небудзь з іх.
Калі няма некаторыя вельмі рэальныя Прычына, чаму ён не можа выкарыстоўваць дадзеныя
тып, які ў цяперашні час мае п, у які момант ён будзе атрымліваць
ўкліньваецца і выдасць памылку, і тыя віды рэчаў.
>> Але тут, у Python на самай справе не хвалюе, што
гэта тое, што я збіраюся прытрымлівацца ў гэтым Прысуд, як вы хочаце, каб гэтая рэч?
Гэтая рэч у тым, што?
Так, гэта свайго роду рэчы.
Я буду прытрымлівацца яго ў рэшце рэшт.
Гэта будзе праблема пазней, калі хто, хто хоча выкарыстоўваць гэтую канец
не можа справіцца з гэтым.
Гэта адзін з найважнейшых Адрозненні паміж Python і C
што робіць яго лёгка напісаць вельмі вялікіх праграм C
і робіць яго лягчэй пісаць вельмі маленькая праграма Python.
>> Сінтаксісу не вельмі адрозніваецца ў тым, што ён робіць.
Гэта крыху адрозніваецца у тым, як гэта выказаў.
Так што гэта вельмі, што называецца Питоновских, спосаб напісання.
для радкі ў дыяпазоне (п), гэта Дыяпазон лікаў ад 0 да п,
ўключана ў ніжняй і эксклюзіўны зверху.
Такім чынам, гэта ад 0 да N-1, які менавіта тое, што код З робіць,
за выключэннем таго, гэта нашмат прасцей паглядзець на магчыма.
>> Адпаведны блок не залічваецца ў фігурныя дужкі,
замест гэтага ён адправіўся гэтай водступу.
Такім чынам, усе гэтыя ліній чатыры прасторы над направа,
ці як аб шырыні слана.
І тыя з іх, якія будзе выканана ў гэтым для.
Калі я сапсаваць паглыбленне на гэта, і я
націснуць гэтую пячатку вярнуцца да арыгінал водступы,
што друк будзе пакінуць для цыклу.
У адрозненне ад C, дзе я на самой справе тут трэба рухацца, што замкнёнае дужкі вакол.
>> Гэта азначае, што вы не атрымаеце памылкі што скакаць на вас, таму што вы
пакласці клямку ў няправільным месцы.
Гэта азначае, што вы атрымліваеце памылкі што скакаць на вас, таму што вы
водступ лінію няправільна.
Так што мае паглыблення супер асцярожныя.
Спадзяюся, вы былі супер асцярожныя з водступам ў любым выпадку,
і такім чынам, гэта не тое, што значна больш цяжару.
>> Але асноўнае правіла для Python, і мы будзем мець некалькі з іх
што мы пойдзем скрозь ход гутаркі,
гэта паспрабаваць натуральны сінтаксіс перш чым шукаць што-небудзь да.
Так гэты сінтаксіс, для гэта лік у дыяпазоне,
вельмі своеасаблівая у плане стылю.
Шмат рэчаў у Python мы ўбачым, прымаючы гэтую форму.
>> І так, калі вы прыдумалі з новым аб'ектам, які вы
думаю, што вы павінны быць у стане перабору гэта, у гэтым фармаце,
Аказваецца ён, верагодна, падтрымлівае гэты фармат.
Мы не збіраемся ісці глыбока ў супер тэхнічныя прычыны, чаму гэта так.
>> Але гэта карысна мець інтуіцыя калі вы набліжаецца праграмы Python,
што гэтая рэч проста будзе працаваць.
Паспрабуйце яго.
Загрузіце камандны радок Перакладчык, бачыць, калі ён працуе,
рухацца з рэчамі, перад вамі нават трэба, каб адкрыць Google і сказаць,
што сінтаксіс гэта асобная рэч?
Шмат Python вы маглі адкрыць проста паспрабаваць.
>> Гэта, калі нават больш падобны ў C то форс ёсць.
Звярніце ўвагу, што няма ніякіх дужак.
Дужкі, зноў жа, бясшкодныя, але непатрэбным.
Існуе двукроп'е ў канцы гэтак жа, як для завес,
і зноў, адносныя блокі водступам, а не адправіўся ў фігурныя дужкі.
Гэта з'яўляецца яшчэ на арыгінал Узровень водступу,
і яго стаўленне блок зноў з водступам.
Тыя, праца менавіта так, як яны робяць у С.
>> Гэта на самай справе вельмі шмат ж.
Зноў жа, друк губляе адзін сімвал оф Printf Вы праходзіце некалькі радкоў.
Аказваецца радкоў можа быць альбо адзначаны
у адзінарныя двукоссі або падвойныя двукоссі.
Там няма розніцы, акрамя таго, што ўнутры
адзінарных двукоссяў можна выкарыстоўваць падвойныя двукоссі з адмовіцца,
замест таго, каб пазбегнуць ўсіх з іх.
А ўнутры падвойных двукоссяў, вы можна выкарыстоўваць адзінарныя двукоссі з адмовіцца
без іх пазбегнуць.
Калі вы хочаце, каб змяшаць ім, вядома, вы можаце
паглядзець онлайн, як гэта зрабіць.
>> Вы заўважыце, што тут, Я прайшоў у канцы = гэтую справу.
Гэта прыклад факультатыўнага Аргумент, які з'яўляецца адным з тых рэчаў,
што Python падтрымлівае, што робіць яго вельмі карысным.
Так на самай справе мае пячатку шмат Аргументы, якія, як правіла,
ўсталяваць значэнні па змаўчанні значэнне, але тут я маю
вырашылі перавызначыць адзін пад назвай канец.
Прычына таго, што я павінен перавызначыць яго з пустым радком
з'яўляецца тое, што друку ў Python, з дапамогай па змаўчанні, раздрукоўвае новую лінію
пасля, што вы сказалі гэта занадта.
>> Так што гэта хэш на самай справе адбываецца ў раздрукаваць хэш ў новым радку.
А калі я не хачу хэш раздрукаваць новая лінія пасля яго, то я павінен сказаць,
ня друкаваць адзін.
Але, пакуль гэта так, то адна апошняя рэч, што гэтая праграма адсутнічае, што адзін мае,
уключаны ў верхняй частцы.
Раздрукаваць выпякаецца ў Python так у асноўным што няма загалоўка ці модуль
што вам трэба ўключаюць у сябе, хоць, калі хацеў
уключыць іншыя рэчы у сцэнары Python,
Я хацеў бы зрабіць гэта ў вельмі падобнай format-- словы з'яўляюцца толькі трохі адрозніваюцца.
>> Я згадаў, што мы ня трэба галоўным тут,
таму што пачынаецца Пітон выкананне на самым версе.
Калі б я хацеў, каб абгарнуць гэта функцыя, я
будзе рабіць гэта як this-- I скажа выразнасці імя функцыі,
Аргументы могуць перайсці адсюль і мы ўбачыць некаторыя з іх пазней, тоўстай кішкі,
і зноў жа, гэта Уся адправіўся блок
гэта тое, што з'яўляецца аператыўным блакаваць для выканання гэтай функцыі.
Так што гэта вызначэнне функцыі.
І ёсць дэкларацыя, затым ўніз тут, я магу проста выклікаць функцыю.
І зноў, праграма Інтэрпрэтатар, пачынаючы з верхняй,
ўбачыце гэта вызначэнне.
Гэта не будзе выконваць гэта, пакуль гэта сюды, а потым як, аб
Цяпер вы назвалі, я думаю, я павінен выканаць яго.
>> Рэч, што вельмі часта бачыць у Python файлы,
асабліва файлы Python, што якія апублікаваныя
і распрацавалі по-- распрацаваў і падтрымліваецца, гэта нешта з гэтай формы.
Гэта так, таму што basically-- Python, вы пачынаеце на вяршыні
і тады вы выканаць да дна, Я, калі я толькі што назваў Марыё тут,
то ў любы час я ўключыў гэты файл у іншы файл, таму што я хацеў выкарыстаць
ёсць функцыя Марыё, што іншы файл будзе таксама гэты выклік Марыё ў ім.
І калі я пабег гэты файл, было б назваць Марыё.
>> Таму цалкам магчыма, што толькі я хачу, каб запусціць гэта, калі я на самой справе
Выканаўшы гэтую канкрэтны файл.
І таму я магу абгарнуць гэта ў ідыёмы, як гэта, дзе я кажу,
калі імя гэтай пакарання серада з'яўляецца асноўным,
то я хачу, каб зрабіць гэтыя рэчы.
У адваротным выпадку хтосьці іншы можа use-- ўключыць мой function--
мой файл, і толькі, каб атрымаць Доступ да гэтых функцый
без таго, каб запусціць рэчы што я хачу, каб выканаць у гэтым файле.
Гэта, зноў жа, па жаданні але вельмі часта.
>> Гэтыя рэчы з'яўляюцца entirely-- сапраўды гэтак жа паміж З і Python,
вядома, у 3.
Я думаю, што ў 2, аператар дзялення часам дае Вам плавае, калі
Вы аперавалі цэлых лікаў, і альбо Вы хацелі, каб ці вы гэтага не зрабілі.
Але плюс, мінус, і раз працаваць гэтак жа, як і варта было чакаць,
за выключэннем Злёгку больш тыпаў.
Такім чынам, вы можаце памножыць плытах па Інтс, і тыя віды рэчаў.
>> Набор працуе сапраўды гэтак жа.
Вы можаце выкарыстоўваць дзве роўныя знакі.
inequals-- больш чым, менш чым, такога роду things--
маюць значэння, якія Вы знаёмыя з імі.
>> Дзе C выкарыстоўвае гэтыя аператары, Python выкарыстоўвае крыху больш па-ангельску
счытваць тыя.
Такім чынам, замест двух, Ампэрсанд, вы літаральна увядзіце слова "і", "або",
ці не."
Як у if-- ў ваш ўмоўныя аператары,
мы бачылі раней, што гэты сінтаксіс ў C адпавядае гэтым сінтаксісам ў Python.
І там не шмат адрозніваецца там, за выключэннем трохі
пунктуацыі вакол бакоў.
Зноў жа, дзе З будзе яшчэ калі Python выкарыстоўвае Эліф,
але яны ў асноўным Змены ўзроўню паверхні.
>> Ітэрацыя, як гэта часта напісана ў гэтай ідыёмы ў Python.
Вы можаце вырабіць такую што з час цыкла на вонкавым боку
калі вы хочаце, але вы вядома, не давядзецца.
І зноў жа, калі вы хацелі, раздрукаваць элементы ў масіве з
Вы маглі б зрабіць гэта такім чынам.
Адзін з пацешных рэчаў, аб Python, хоць,
з'яўляецца тое, што вам не трэба каб выкарыстоўваць гэтую парадыгму,
і вы можаце выкарыстоўваць крыху больш за элегантнай.
Вы кажаце, для ря ст.
>> Так замест таго, тут і працуе над паказчыкамі,
а затым пацягнуўшы асобныя элементы,
Вы кажаце на самай справе проста, каб прабягаюць саміх элементаў.
І тады ўсё, што вы робіце ўнутры можа працаваць непасрэдна
на элементах, які з'яўляецца даволі весела.
І мы будзем see-- мы будзем выкарыстоўваць што ідыёмы зноў і зноў
а мы ходзім з дапамогай кода.
>> Гэта, зноў жа, прыклад пра нешта, што я буду
патэлефанаваць Python магію, хоць ёсць вельмі тэхнічныя прычыны, чаму гэта працуе.
І ёсць тэхнічныя рэчы, якія трэба, каб быць праўдай аб масіве ў парадку
для гэтага, каб працаваць за кулісамі.
Справа ў тым, што большасць відаў якія вы чакалі б, каб гэта працавала
былі рэалізаваны ў гэтым Вы ў убудаванага мовы.
>> Іншая справа, што было б нядрэнна калі гэта працуе на любой мове,
але ёсць некалькі прычын, чаму ён не можа, раздрукаваць гэты радок раз гэты лік.
Аказваецца ў Python, гэта робіць менавіта што вы хочаце, які з'яўляецца толькі весела,
і азначае, што мы можам рэальна знізіць гэтую праграму, зноў mario.c.
Замест перабору шмат, мы можам проста сказаць, я хачу некаторы колькасць прабелаў,
Я хачу колькасць хэшаў, і некаторыя хэшы ў канцы.
І зноў, мы выкарыстоўваем гэты фармат.
>> Тут мы перадаем у пераменная гэты шлях.
Зноў жа, мы не павінны гаварыць які тып зменнай яна ёсць,
і толькі раз мы атрымаць памылак падчас выканання.
Калі хто-то спрабуе каб перадаць што-то ў,
гэта прыйдзе ў функцыі проста выдатна.
Калі мы клін сюды, таму што гэта не што вы можаце стварыць прабягае,
Я атрымліваю паведамленне пра памылку выканання там, і я буду мець, каб адладзіць яго такім чынам.
Але ў той жа час, я не быць вельмі асцярожнымі, пра тое, што
атрымлівае прыняты ў тых часоў, пакуль у фактычны выкананне усё гэта працуе вельмі чыста.
>> Я мог бы нават зрабіць гэта трохі чысцей
з выкарыстаннем канкрэтнага убудаваную функцыю на радках, які па правым краі.
Гэта проста карысная функцыя валяецца ў бібліятэцы.
Гэта ў дакументацыі калі вы ідзяце і глядзіце на яго.
І я кажу, ну я збіраюся мець гэты радок, некаторы колькасць хэшаў,
і я хацеў бы, каб апраўдаць права it-- пляцоўку гэта з прабеламі, каб быць гэтая даўжыня.
>> Зноў жа, гэта ў Дакументацыя, якая прыносіць us--
Я на самой справе па спасылцы these-- які прыносіць нам да нашага другога правілу
для стандартнай бібліятэкі Python-- Метады функцый Вашы сябры.
І гэта часта варта ваш час ісці за Цікава
калі ёсць рэч, якая проста робіць гэта.
Там, верагодна, ёсць.
Калі вы хацелі б пляцоўку з радка, калі б вы
хацеў узяць назад палова радкі, калі б вы
падабаецца шукаць праз радок, калі Вы хацелі б, каб разбіць пару рэчаў
разам са радком коскамі паміж імі,
Ёсць стандартная бібліятэка Функцыі для гэтага.
>> І гэта робіць вашу жыццё лягчэй, калі вы выкарыстоўваеце іх
замест выкатывания усё па сваім меркаванні
у пяць радкоў кода тут, пяць радкоў кода тут.
Гэта сапраўды пачынаецца дадаць да рэальнага часу.
>> Адзін з самых цікавых рэчаў пра тое, як гэта выклікаецца.
Вы заўважыце, што ёсць кропка рэч.
У мяне ёсць аб'ект злева, а затым я назваў кропку функцыі.
Гэта адзін з парадыгмаў, што Python выкарыстоўвае для мацавання метады аб'ектаў.
Мы будзем казаць пра тое, што гэта Вельмі коратка ў рэшце рэшт,
але ведаю, што мы абодва можам працаваць на рэчы, прымаючы, што рэч, кажучы кропка
усё, ці па тэлефоне функцыя, якая прымае
што аб'ект і некаторыя іншыя аргументы.
>> Такім чынам, гэтыя абодва спосабу, што ўсё робіцца ў Python.
І ці з'яўляецца канкрэтны функцыянальнасць рэалізавана
у гэтым стылі ці гэта стыль з'яўляецца тое, што вам
павінен выглядаць, пакуль вы не атрымаеце павесіць для якіх яна, хутчэй за ўсё, трапляюць у.
Там гэта больш-менш згуртаванай Філасофія Python
што вы паглынае ў асноўным напісаўшы шмат у ім.
У нейкі момант, што адзін з іх што-то будзе рэалізавана як
становіцца натуральным.
У цяперашні час, гэта проста нешта Вы даведаецеся, як вы высветліць
кожны індывідуальная рэч.
>> Так стандартная бібліятэка функцыі вашыя сябры,
і яны дазваляюць вам напісаць рэчы, якія ўзяць на сябе гэтую сапраўды шмат месца ў бліжэйшы час,
сапраўды элегантна.
І гэта на самай справе, верагодна, больш пераборлівымі, я б сказаў, чым праграмы C
там.
Не кажучы ўжо пра тое, што так Карацей кажучы вы можаце размясціць цэлы слон
ў прасторы, што мы выратаваны.
>> Яшчэ адна рэч, гэта рэалізацыя Марыё гэта кропка C, які я думаю,
з'яўляецца найкароткім вы можаце атрымаць яго.
Гэта не мае Атрымаць Int, але Цяжка коды кошт 10
гэтак жа, як гэта робіць.
Аказваецца, што гэта адзін гадзіны ў ў 84 сімвалаў, у той час як Python 64.
І гэта значна больш чытэльным, чым гэты смецце тут.
Так Python з'яўляецца больш эфектыўным ў прасторы.
Гэта крыху менш эфектыўна, у той час, але не нашмат.
>> Спісы з'яўляюцца важным рэч у Python.
Мы не бачылі іх, але яны працуюць як масівы рабіць у З
Дык вось, іх можна абвясціць, Вы можаце перадаць іх у рэч.
Цяпер трымае квадратаў А. Масіў з гэтых рэчаў.
Зноў жа, мы не абвешчаны тып, але, калі мы калі-небудзь паспрабаваць выкарыстоўваць яго,
усё, што вы чакалі б працаваць на масіў цэлых лікаў
будзе працаваць на масіў цэлых лікаў.
>> Гэта рэч, якая вы абсалютна не можаце
зрабіць у C, таму што памяці гэта так рукі,
але вельмі лёгка зрабіць у Python.
Калі я хачу, каб мой масіў, каб быць больш, я магу дадаць элемент да яго, і гэта нармальна.
>> Што адбываецца за кулісамі?
Перакладчык пойдзе і атрымаць некаторую памяць,
і, магчыма, гэта будзе атрымаць трохі дадатковай памяці,
так што я не так што я не каб пераразмеркаваць кожны раз.
Але колькі больш памяць гэта трэба?
Гэта не рашэння што вы павінны зрабіць,
гэта рашэнні, якія перакладчык збіраецца рабіць.
>> Тут мы бачым, дыяпазон можа два аргументу,
але яна па-ранейшаму будзе ўключана у верхняй таму мы дадаем 1 ёсць.
Гэта мова, які з'яўляецца яшчэ больш разумны спосаб напісаць нешта накшталт гэтага.
Гэта называецца спіс разуменне, і вось што мы гаворым
, Я хацеў бы паставіць у квадрат я для кожнага значэння I ў гэтым дыяпазоне.
Гэтая рэч на праве можа быць іншай Масіў, і гэта самае злева
каб быць любой канкрэтнай функцыі што б узяць у I ў якасці зменнай
і даць мне нейкі вынік.
>> Тое, што я збіраюся зрабіць, гэта, Я збіраюся пабудаваць
масіў, які ўсе гэтыя рэчы для кожнага значэння ў дадзеным дыяпазоне.
І гэта супер элегантны, супер кароткія, і гэта вельмі ясна, што гэта значыць.
Гэта з'яўляецца адной з things-- гэта зноў,
адным of-- вельмі сімвалічна з Прычыны, па якіх людзі, як Python.
Калі вам падабаецца праграмаванне як гэта, то Python
гэта мова, які вы хацелі б вучыцца.
>> І зноў, ёсць тэхнічная Прычыны, чаму гэта працуе.
Але, наколькі нам вядома, мы больш-менш не хвалюе.
>> Так што, калі вы хочаце, каб раздрукаваць спісы, некаторыя з тых жа ідыём карысныя.
Бо я ў гэтым дыяпазоне, мы маглі б Індэкс праз усе рэчы
а затым раздрукаваць іх усе.
І вы ўбачыце, Лён тут.
Калі вы калі-небудзь хацелі атрымаць даўжыня масіва, гэта
вельмі лёгка ў Python, гэта вельмі цяжка ў С.
Гэта будзе друкаваць дакладна тое, што вы чакалі б яго.
Мы маглі б таксама, як мы бачылі раней, перабору элементаў масіва ў
непасрэдна, а затым проста казаць пра ім, замест таго, індэкс
назад у масіве кожны раз.
>> І гэта, што вы можаце зрабіць.
Такім чынам, у C, калі вы спытаеце што-то як гэта, друк будзе сказаць,
гэта масіў цэлых лікаў.
Гэта, безумоўна, не з'яўляецца Радок, я не магу раздрукаваць яго.
Python больш ці менш не хвалюе.
Гэта як, ці ёсць спосаб, што я можа ператварыць гэта ў ў радок?
Так, я зраблю гэта.
І таму я проста раздрукаваць гэта.
Гэта азначае, што вы можаце рабіць рэчы like-- іх
Найбольш з цвёрдых частак гульні пятнаццаці, напісаная
вельмі коратка ў Python.
>> Вы ўбачыце, што ёсць трохі of-- тут
Я кінуў цэлае ў радок, і я павінен зрабіць гэта ўручную.
І я збіраюся дадаць гэта іншае радком,
ці іншым чынам Python блытаецца.
Але ці то, калі вы дадаць радок у цэлы лік,
Я мяркую, я атрымліваю цэлае назад або радок назад?
Але, зноў жа, калі вы проста патэлефанаваць на вул рэчы,
і мог у любой магчымай Свет быць ператвораныя ў радок,
гэта, верагодна, будзе пераўтворыцца ў радок.
>> Тут мы бачым выкарыстанне укладзены спіс разуменне
злева, некаторыя індэксацыі, якая менавіта так, як вы б прывыкнуць да яго,
і некаторыя друку з рэчаў.
Зноў жа, мы вызначылі некаторыя Функцыі і мы будзем называць іх
У галоўным, калі мы на самай справе атрымаць файл.
Вяртанне працуе сапраўды, як вы б чакаць ад працы з К. Знайсці,
мы можам усталяваць такія рэчы, як this-- вось спіс разуменне
ёсць прысвойванне зменнай, і мы можам на самай справе зрабіць гэта яшчэ прасцей.
Нам не трэба, каб напісаць пошуку, таму што ўбудаваны ў мову
, Калі гэтая рэч знаходзіцца ў гэтым масіве.
Вярнуцца праўда, яшчэ вярнуцца ілжывым.
Так што гэта сукупнасць знаходцы.
>> Сукупнасць роду ўключае ў сябе выклік роду,
якія is-- існуюць рэалізацыі гэта убудаваны ў некаторых бібліятэках C.
Калі вы хочаце гэта роду ў зваротным кірунку, вам
можна перавызначыць гэты неабавязковы Аргумент у зваротным з сапраўдным.
І калі вы хочаце, каб адсартаваць па струны, які ўбудаваны ў а.
>> Так што гэта не азначае, гэта рэчы, якія трэба рабіць кожны дзень,
але ідэя, што гэта філасофія Python,
што ўсе гэтыя рэчы, якія вы б накшталт хачу зрабіць убудаваныя.
І большасць стандартных функцый, так накшталт, даўжыня, усё,
падтрымлівае большасць лагічна разумны ўваход.
Вы называеце LEN на масіву ж як вы называеце LEN на радок.
Вы multiply-- адсартаваць радкі гэтак жа, як вы сартаваць масівы.
>> Большасць стандартных функцый што людзі будуюць,
і большасць іншых Бібліятэкі, людзі
будаваць, таму што яны эмуляцыі Канструкцыя стандартнай бібліятэкі,
можна назваць на ўсё, што ты як, чаму гэта не проста праца,
у C. Больш ці менш, ён будзе працаваць у Python
таму што людзі працуюць за малюнку , Што рэч, а затым працаваць
адпаведна на ім.
Такім чынам, яшчэ раз, тэхнічны фон, але яго робіць нашу жыццё прасцей, так як праграмістаў.
>> Дык вось файлавы ўвод / выснова. падаць ўводу / высновы мае мноства дробязі, якія робяць яго складаным,
і так ёсць рэсурсы у Інтэрнэце, але ў двух словах,
Вы тэлефануеце адкрыты файл назваць з пэўнага тыпу.
Так што гэта чытаць, чытаць і пісаць, пісаць ці дадаць.
Вы чытаеце пэўную колькасць персанажы, і вы друкаваць тыя,
Вы атрымаеце Hello!
Я маю на ўвазе, як гэта файл меў Прывітанне!
У ім, тэлефануйце, каб чытаць, і тое, што вы атрымаеце назад
гэта радок, якая мае ўсе у астатняй частцы масіва,
ці ўсё астатняй часткі файла.
Калі вы тэлефануеце зноў чытаць, Вы ў канцы файла,
і так вы не атрымаеце нічога, і таму вы будзеце зачыняць.
Зноў жа, гэта .close чым зачыніць файл, як гэта было б у C.
Гэта больш ці менш, таму што F з'яўляецца рэч, і вы хацелі б для F, каб закрыць.
Але асноўны файлавы ўвод / выснова ня Асабліва складаным.
Зноў жа, калі вы хочаце, каб адкрыць файл, калі Вы хацелі б прачытаць пэўную лінію,
Вы можаце выйсці з прыватнасці line-- ёсць убудаваныя модулі для гэтага.
Калі вы хочаце, каб напісаць рэч, вы можаце напісаць гэта.
Калі вы хочаце, каб напісаць чалавека Ўкусы, вы можаце напісаць іх.
І калі вы хочаце, каб ітэрацыі за радкоў файла
індывідуальна, як мы гэта рабілі ў кавалку ад Некалькі тыдняў таму, вы можаце зрабіць што.
Зноў жа, большасць аб'ектаў, якія вы б хацеў бы мець магчымасць перабору
падтрымка ітэрацыі над імі.
У пітонаў, файл, можа быць, гэта рэч, якая Я хацеў бы, каб перабраць парадкова.
Калі б гэта быў слоўнік слоў, і я быў
спрабуючы атрымаць гэтыя асобныя словы з, а затым, на працягу гэтага цыклу,
лінія гэта будзе кожнае слова, у сваю чаргу, і гэта
будзе выконвацца для кожнага радка у файле да канца файла.
І зноў жа, калі я раздрукаваў сябар лінія, лініі аснашчаны новых ліній,
таму я усталяваўшы канец вярнуцца да рэчы, як гэта.
Тады я атрымаць змесціва майго файла.
>> Другая рэч, якая працуе ў некаторыя спосабы, як спісы, а ў некаторых адносінах
як-то істотна больш магутны,
слоўнікі, якія сапраўды выдатна выкарыстоўваць, але ў асноўным хэш
Сталы ў маскіроўцы.
Вы стварыць яго, выкарыстоўваючы менавіта два знака, які з'яўляецца дзіўным
калі вы спрабавалі рэалізаваць Хэш-табліца для вашай праблемы набору,
Вы ведаеце, боль, што можа быць.
Але людзі зрабілі гэта і зрабіў гэта так добра,
што вы не павінны турбавацца пра гэта больш.
>> Затым вы можаце ўстаўляць асобныя рэчы.
Хэш tables-- або слоўнікі ня асабліва
ўсё роўна, што вы захоўваеце ў іх.
Так што, калі некаторыя дадзеныя колькасці, і некаторыя запісы спісы,
калі некаторыя запісы і іншыя слоўнікі, і некаторыя запісы з'яўляюцца радкамі,
Python ня шмат сыходу.
>> Зноў жа, калі вы ідзяце ў яго чакалі радок і тое, што вы атрымаеце назад
з'яўляецца масівам, гэта ваша праблема.
І, можа быць, гэта той, хто вінаваты думаў, што гэта было пакласці рэчы
ў слоўніку, можа быць, гэта была ты.
Калі хто-то яшчэ, спадзяюся, яны былі
добра сябе пра што збіраецца ў слоўніку
і не пакідаюць ніякіх памылак для вас, каб патрапіць у.
>> Але стандартныя функцыі будуць вярнуць вам добра сябе рэчы.
Так яны кажуць, гэта вяртае рэзервовае слоўнік радкоў,
то ўсе вы збіраецеся каб выйсці з радок.
Калі вы зрабіць некаторыя гэта, і гэта спрацоўвае Вы да, ну, што можа быць на вас.
Python, безумоўна, дае вам дастаткова вяроўку, каб павесіцца, калі вы хацелі б.
Цяпер мы можам раздрукаваць чалавека элементы гэта і гэта вяртаецца
менавіта тое, што вы чакалі.
Менавіта тое, што вы чакалі б, я думаю ,, з'яўляецца фраза, што я выкарыстоўваю шмат,
але гэта больш ці менш, як працуе Python.
Калі вы папытаеце рэчы, якая не з'яўляецца гэта, у Python выкіне памылку
і ён будзе кінуць вас з усе праграмы, былі ст.
Гэта сапраўды будзеце раздрукаваць больш інфармацыі, чым,
гэта будзе ўказваць you-- гэта будзе дадаць радок, і так.
>> І, зноў жа, можа быць, мы хочам перабраць слоўнікі
і знайсці ўсё, што ў ім.
Тут мы перабору дзве рэчы, у той жа час.
І таму мы будзем рабіць гэта з ключом, значэнне, але затым раздрукаваць ўсе гэтыя.
>> І калі мы хочам cast-- калі мы на самай справе пабег гэта,
мы б мець некаторыя праблемы, таму што on--, калі мы пайшлі ў з Давідам,
ён не мог add-- калі мы не кінуць яго ў радок-першае,
мы не маглі дадаць, што масіў радкоў на радок.
Але калі мы кінем яго ў Радок, мы што-небудзь
як гэта, якога, можа быць тое, што мы хацелі б прачытаць.
>> І гэта правапісу.
Мы толькі што прачытаў у рэчах.
Такім чынам, мы можаце прачытаць у асобныя словы, як лініі.
Мы адсекчы апошні рэч, так тоўстай кішкі мінус 1
чмякае ад апошняе, што we-- апошні сімвал радка.
Мы скажам.
ОК, кожны з тых, хто атрымлівае ўстаўляецца ў гэты слоўнік,
адлюстраванне на значэнне 1.
Мы не асабліва клапаціцца аб тым, што адзін,
але гэта толькі там, каб сказаць, ды добра, гэтая рэч я пакладу ў слоўніку.
Таму што пазней тое, што мы збіраюся зрабіць, гэта мы
хачу сказаць, добра, калі гэта ў слоўніку наогул.
>> Зноў жа, гэта праверка на сяброўства да аперацыйнай
выкарыстоўваючы зусім розныя Алгарытм, чым гэта будзе ў спісе,
але мы называем гэта ж шлях, які некаторыя з гэтага цукру Python пакрыцця
рэчы так, каб яны прасцей у выкарыстанні.
І зноў, мы бачылі такія рэчы, як гэта раней.
У асноўным гэта знайсці, або гэта сапраўды той жа сінтаксіс
а знайсці, але працуе больш зусім розныя структуры.
І мы не асабліва хвалюе.
Так што тыя рэчы, якія вы было прапанавана рэалізаваць для правапісу.
У гэтым выпадку, мы збіраемся, каб атрымаць больш ці менш усё psets зрабілі.
>> АЎДЫТОРЫЯ: Так што у асноўным толькі вяртаецца
а няправільна пішацца, калі яно не адпавядаць нешта ў слоўніку?
РОСС RHEINGANS-Ё: Так, так.
І так, гэта адаптацыя праблемы ўсталюйце
які просіць вас зрабіць менавіта гэта.
>> АЎДЫТОРЫЯ: Чаму лінія мінус 1 там?
РОСС RHEINGANS-Ё: Так калі вы ітэрацыі
над файл прасіць па лініі, лініі
прыйшоў з новага радка У канцы it-- мінус 1
гэта проста магазін тых, ад.
І гэта асабліва гнуткім спосаб індэксацыі ў рэчы.
Так што, калі ў вас ёсць радок, і вы хацелі б, ну я
збіраецца пачаць у трох характар і я збіраюся ісці да канца.
3 тоўстай кішкі будзе рабіць гэта за вас.
Калі вы, як і я хачу, каб пачаць на пачатак і перайсці да апошняй мінус 1
характар, тоўстай кішкі мінус 1.
І калі вы хочаце, каб перайсці ад трэці мінус-першае,
то вы б сказалі 3 мінус 1.
>> Акрамя таго, калі вы хочаце, каб індэкс ў рэчы, лічачы ад задняй,
вы проста індэкс ў мінус з нумарамі.
А паколькі, у якім C выбухне або, можа быць
карміць цябе іншы памяці ў вас не было доступ да, пачуць можна сказаць мінус 1
азначае, што ў мінулым, але 1 знак у радку.
>> Модулі з'яўляюцца version-- аналагаў у бібліятэках C
і з'яўляюцца карыснымі для многіх рэчаў.
Шмат рэчаў, якія вы б хацелі займацца Python,
акрамя просты маніпуляцыі зменных,
Вы хочаце, каб крук у буйныя бібліятэкі з вялікім
Інтэрфейсы і больш Магчымасці для ўзаемадзеяння
з іншымі часткамі свету.
SYS з'яўляецца адным з тых, з кучай інструментаў
, Якія карысныя для ўзаемадзеяння з самай сістэмай
і імпартаваць яго як імпартных SYS.
>> Там больш дакументацыя ад што, што вы маглі б ісці сюды,
ці вы маглі б знайсці на Google звяртаючыся да дапамогі Python SYS.
Вы ўводзіце ў ўвайсці ў сістэму.
Першае звяно будзе дакументацыя ў Python 2,
Другое звяно збіраецца быць дакументацыя Python 3.
>> І калі мы выпісвалі файл, які выглядаў як this-- калі ў прыватнасці, мы
гледзячы на ​​якія працуюць на Аргументы каманднага радка,
як мы навучыліся рабіць вельмі рана ў гэтым класе.
Гэта не складана. Вы можаце выйсці з ARGV,
які з'яўляецца адным з тых рэчаў, які рэалізуецца SYS.
Гэта не убудаваны ў да базавы пакет, але зноў жа, вам
можа падоўжыць яго імпарту што функцыянальнасць ад SYS.
Вы буду называць яго SYS.
што заўгодна.
Тут ёсць ARGV.
Там на самай справе няма гэта ARGC ў SYS, таму што вы
можа атрымаць яго так лёгка, патэлефанаваўшы Лен.
Мы затым друкуецца, што, тады мы пабег на нашым тэрмінале echo-args.py.
Мы вернемся масіў, які гэта першы аргумент.
Зноў жа, гэта ARGV 0, які з'яўляецца найменне рэчы, якія атрымалі пад назвай.
Калі мы называлі яго з дадатковым Аргументы, мы атрымаем іх назад.
Гэта адзін са спосабаў атрымання Аргументы каманднага радка.
Калі вы хочаце сцягі, дзе вы ператварыць канкрэтныя рэчы на ​​або адмяняць
канкрэтны змаўчанні, argparse з'яўляецца вашым сябрам.
І зноў вы выявіце, што ў Інтэрнэце на пітона argparse ў Google.
>> Ёсць пара карыснасці модулі, якія вы будзеце выкарыстоўваць
і зноў жа, калі вы марнуеце ў любы час гэта мова імпарту jsons
для чытання ў і з JSON Файлы, не так ужо складана.
Вы адкрываеце файл, вы назвалі json.load на гэтым файле, і вы атрымаеце назад рэч.
Што гэта такое?
Гэта аб'ект JSON.
Дзе, што JSON мае масіў, Пітон мае масівы.
Там, дзе гэта мае JSON асацыятыўныя масівы, у Python
слоўнікі, радкі, і лічбы, і гэтак далей.
Вы хочаце, каб зваліць, што з вас, адкрыць новы файл, вы выклікаеце дампа,
і грузы і звалкі ў ўваходзіць і выходзіць з радкоў.
>> Сапраўды гэтак жа, саленні выклікаецца у асноўным гэтак жа інтэрфейс.
Гэта крыху больш карысным, калі Вы пахавання аб'ектаў Python.
Так што калі вы калі-небудзь хацелі, каб захаваць версія аб бягучым стане
зменнай для будучыні запусціць вашай праграмы,
расол з'яўляецца пітонаў бібліятэка для працы з гэтым.
>> Калі ў вас ёсць якой-небудзь пераменная, якая можа быць выпісаны
у, як слоў і сімвалаў, і bytes-- як гэты слоўнік,
мы маглі б запісаць, мы мог бы напісаць яе ўніз, як
як аб'ект JSON, які быў літаральна гэтыя сімвалы.
І тады гэта будзе вельмі лёгка для чалавек, каб адкрыць up-- адкрыць
і прачытаць яго.
Калі мы не асабліва клапаціцца пра людзей, якія чытаюць гэта,
мы маглі спакаваць яшчэ больш эфектыўна у формах, якія пасля могуць быць распакаваны
або, што можа быць пазней завышаныя.
І гэта эканоміць 80% ад прастору, што вашы аб'екты могуць
прыняць, калі вы напісалі іх звычайны ліст.
>> Вы называеце расол вельмі тое ж самае way-- самазвал, грузападымальнасць,
і тады вы атрымаеце вашы рэчы назад.
Так што, калі вы пішаце вельмі кароткія праграмы Python, што
хочаце захаваць стан і затым прачытаць ім пазней, падобныя рэчы
Вашы сябры.
Што вы маглі б вельмі лёгка скінуць іх у якасці JSON.
Большасць аб'ектаў Python можа дамп JSON
калі ёсць надзея, што канструктыўна яны могуць быць прадстаўлены такім чынам.
>> Гэта ўсяго толькі вярхушка айсберг модуляў, якія карысныя.
Так SYS, АС, шматпрацэсарныя, з'яўляюцца Сартаваць асноўных рабочых конікаў для рэчаў
мы павінны ўзаемадзейнічаць з файлавая сістэма АС.,
як os.isfile, os.isdirectory, os.makefile, гэта вашы сябры.
Калі вы хочаце, каб ўзаемадзейнічаць з пэўным тыпам файла,
JSON, саленні, CSV.
Калі вы хочаце, каб ўзаемадзейнічаць з вэб старонкі, то URLLIB для атрымання HTTP
старонак. bs4-- BeautifulSoup-- гэта выдатны парсер HTML.
Вы запусціце яго на HTML і вы атрымаць гэтую укладзены аб'ект масіва ў цяперашні час,
якія вы можаце прайсці на працягу Лукін, з, як проста шукаеце
калі ёсць, у, які з'яўляецца фантастычным.
>> Там куча пакеты для running--
для гэтага асабліва Mathy рэчы.
Так што, калі вы хочаце, каб размнажацца, інвертаваць, пераўтварэнні матрыц,
NumPy выкарыстоўваецца людзьмі ўсіх свету для гэтага.
SciPy нават больш карысным інструменты ў гэтым кірунку.
sklearn-- машыннага навучання, апрацоўкі натуральнай мовы,
супер карысны матэрыял, атрымлівае рэалізаваны ў Python ўвесь час.
>> І зноў, займае крыху больш часу, каб write-- прабачце,
займае крыху больш часу, каб бегчы, але прычынай таго, што сапраўдныя інжынеры, як правіла,
Выкарыстанне Python, таму што вы, як правіла, заблякаваны на вас напісання кода, а
чым ваш кампутар працуе код.
Так што, калі вы збіраецеся напісаць Праграма, якая шмат іншых людзей
збіраецеся выкарыстоўваць назаўсёды, як Linux, вы
можа напісаць яго на C. Калі вы былі збіраюся напісаць вылічэнні рухавік,
Вы маглі б напісаць у Python, калі вам трэба каб змяніць яго кожныя некалькі месяцаў.
Некаторыя людзі пішуць яго ў З, таму што яны, як, што.
>> Такім чынам, мы бачылі на імпарт SYS як спосаб атрымання рэчаў
атрымання модуля ў вашай праграме.
Вы таксама можаце імпартаваць яго ў якасці мянушку, калі вы хацелі б.
Зноў шматпрацэсарнай з'яўляецца боль увядзіце кожны раз, так як дэпутат імпартаваць
а затым у любы час вам выкарыстоўваць яго ў праграме,
Вы скажаце mp.process, або тое, што ў вас.
Калі вы хочаце імпартаваць толькі адну рэч,
так URLLIB ёсць рэч пад назвай просьба, так што вы можаце проста імпартаваць гэта.
Пазней, вы не будзеце выклікаць яго як urllib.request, але толькі як запыт
сам па сабе.
>> І вы можаце імпартаваць ўсе з модуля, калі вы хацелі б.
Гэта часам не вельмі добрая idea-- гэта, як правіла, не вельмі добрая ідэя, на самай справе.
Таму што вы very-- таму што, калі што-небудзь у гэтым модулі мае імя, якое вам
хацеў выкарыстаць дзесьці яшчэ у вашай праграме, вы не можаце.
>> І гэта не заўсёды відавочна, што гэта так.
Для таго, каб пераканацца, што тое, што вы рабілі, было бяспечна,
Вы павінны адкрыць модуль і ўбачыць усё
з імёнаў, якія ў канчатковым выніку ў there-- усе функцыі,
ўсе зменныя якія жывуць у гэтым модулі,
таму што вы чаго ўсё іх у вашым мясцовым імёнаў.
>> Такім чынам, людзі гэта зрабіць.
Гэта, як правіла, рэкамендуецца што вы не зробіце гэтага.
Але людзі робяць гэта ўсё час, таму што яны
гультаяватыя і не хочуць, каб ўдрукавалася пл.
што-небудзь, калі-небудзь.
>> Усе гэтыя размовы пра модулях прынясі мне вакол кароткага размовы
пра тое, як вы распрацоўваць праграмы ў Python.
Першым крокам з'яўляецца, каб праверыць, калі хто-то ўжо зрабіў рэч,
або зрабіць 90% рэч.
Хутчэй за ўсё, яны, верагодна, ёсць, і вы павінны пайсці атрымаць сваю рэч і запусціць гэта.
Або напісаць абгортку вакол яго каб адаптаваць яго да вашай мэты.
Гэта толькі пасля гэтага не ўдалося, што вы б тады
пайсці далей і write-- пачаць думаць аб як вы б паставіў гэтую справу разам.
Там шмат рэчаў там, і гэта
адным з самых карысных рэчы, пра Python.
Як мова Элегантны, мова
простая ў выкарыстанні, але і таму, гэта так элегантна і лёгка ў выкарыстанні,
людзі выкарыстоўваюць яго для доўгі час, і ёсць шмат рэчаў
там, што вы можаце выкарыстоўваць для ўласнага выкарыстання.
>> Таму ў мінулым правіла Python ёсць, хтосьці то ўжо, верагодна, напісаны
модуль для таго, нехта яшчэ ужо
верагодна, напісаў бібліятэку для гэтага.
Перш чым спрабаваць рабіць рэчы, паглядзець каб убачыць, калі ён быў рэалізаваны.
Гэта не так складана.
Усе модулі, якія я ўздымаў перш, магчыма з адным выключэннем,
загадзя ўстаноўлены ў кожным Стандартная ўстаноўка Python.
І так з заклікам да імпартаваць любы іншы, вам
ёсць усё, што функцыянальнасць на кончыках вашых пальцаў.
>> Пачынаючы абгарнуць гэта казаць, ёсць некалькі рэчаў,
што я пакінуў як чорныя скрыні і накшталт замоўчваецца,
і ёсць некалькі белых ляжыць, што я сказаў, што дзеля сумленнасці,
Я буду прынамсі, на момант тут, нават калі я не буду
перайсці супер ўглыб ўсе з іх і іх тэхнічныя тлумачэнні.
>> Шмат рэчаў, што я назваў магія
гэта тое, што іншыя людзі маглі б назваць аб'ектна-арыентаванага праграмавання.
Такім чынам, ёсць шмат things-- так зменныя часта ня
простыя байт, седзячы ў, памяць, але вельмі складаныя
аб'екты, якія маюць ўнутраны Дзяржава пра функцыі і шмат
схаваных зменных, мноства схаваны функцыянальнасць, якая
Дазваляе ўключыць іх у радкі, які дазваляе перабраць іх.
І калі вы writing-- і таму, што яны
ёсць усе гэта багатай функцыянальнасцю гэта таму, што people--
Архітэктары language-- пайшлі
праз і для кожнага стандарту Аб'ект, пакласці ў функцыянальнасці
сказаць, што гэта, як гэта як гэта будзе працаваць
калі хто-небудзь хоча перабраць яго.
>> Такім чынам, усё, што хто-то можа магчыма, хочаце перабраць,
была логіка напісана на ўручную, як вы
Мяркуецца, перабраць гэтага аб'екта.
Усё, што вы маглі б, магчыма, хочуць скідалі ў радок ўжо логіка напісана.
Гэтая функцыя, якую вы называеце, калі Вы хочаце, каб зваліць на гэта ў радок.
Менавіта таму вы можаце Лён называць на рэчы, гэта
Таму вы можаце патэлефанаваць па ў гэты Таму вы можаце патэлефанаваць, калі ў на ўсім
што вы хацелі б, таму што тыя ўсе вядуць з імі,
тэхнічнае ноу-хау, каб зрабіць гэта.
>> Гэта тое, што я супер не збіраецца ісці ў.
Але, рэчы ў спісе тонка адрозніваецца ад C стыль для завес,
і вы можаце прачытаць усё пра тое, што на Інтэрнэт, калі вы зацікаўленыя.
Існуе цёмная бок усё гэта, што я згадаў,
так што дзве рэчы.
Па-першае, гэта аб'ектна-арыентаваны праграмаванне дадае шмат накладных выдаткаў
выпадковых рэчаў, так што вы ў канчатковым з выкарыстаннем значна больш памяці;
вы ў канчатковым выніку з дапамогай трохі больш часу, чым вы б інакш.
Other-- але больш падступная цёмная бок гэтага
ёсць, калі рэчы проста дзейнічаць як вы хочаце, каб
без неабходнасці думаць звышцвёрдых пра тое, ці варта гэта быць INT
або ці павінны быць паплавок, можа быць, што тут
Вы зрабілі Int, але тут вы думаю, але яны always-- прабачце,
гэта можа быць, што тут Вы робіце паплавок,
але калі вы атрымліваеце на другой частцы вашай праграмы, вы думаеце,
Ну добра, але яны заўсёды праходзяць мне Int.
А калі яны гэтага не робяць, то, магчыма што вы дзесьці заклінавала,
калі вы паспрабуеце выкарыстоўваць гэта, каб індэкс у масіў, ці што там у вас.
>> Такім чынам, адна з рэальнага карысныя рэчы, аб З
яна прымушае вас думаць сапраўды цяжка, перш чым зрабіць any--
перш чым прынесці любую зменную у існаванні, як тое, што
тып гэтай зменнай.
І гэта будзе мець што тып для ўсіх час.
>> Гэта не дакладна Python, і на самай справе, вы
can-- калі вы проста Сартаваць ісці на слых,
і вы робіце некаторыя рашэнні адзін спосаб у адным месцы,
і некаторыя рашэнні адной спосаб у іншым месцы
без здачы дастаткова матэрыялу за сцэны ў іншым месцы
злавіць рэчы належным чынам, вы можаце атрымаць некаторыя вельмі дзіўныя памылкі.
І праграма можа працягваць працаваць на працягу вельмі доўгага часу, таму што гэта
рабіць шмат працы, каб сказаць, добра гэтая рэч можа працаваць гэты шлях,
так што я збіраюся запусціць гэты шлях.
>> І на самай справе, той факт, што ён штурхае наперад праз шмат дробных памылак
азначае, што, калі часта памылка на самай справе дрэнна
і вы на самой справе хочаце, каб выправіць гэта, гэта сканчаецца міль away-- праграмы
заканчваецца прыпынку міль ад таго, калі ў Вас быў свой памылку.
І так адна рэч, якую мы хацелі б праграмы, каб зрабіць, sometimes-- адно
што мы хацелі б праграмы рабіць, калі мы адладкі
гэта так і не гучна і не вельмі хутка, калі нешта ідзе не так.
>> Python вельмі дрэнна ў гэтым.
Python вельмі добра, ня няўдачу і накату
праз нечаканыя рэчы.
Так што гэта карысна, калі Вы пішаце невялікія праграмы.
Калі вы атрымаеце складаны памылкі часам
займае шмат часу, каб дражніць іх.
>> Такім чынам, ёсць цёмная бок усё гэта, як ён проста працуе.
Ён проста працуе, як вы чакаеце.
Акрамя таго, што, калі гэта не так, вы ў канчатковым ў зусім іншым месцы
і спрабуе высветліць, дзе было тое, што вы пайшлі не так.
>> Вываз смецця is-- так Адзінае, што вы заўважыце,
з'яўляецца тое, што любы з гэтых рэчаў, якія Я прынёс у existence--
гэтыя масівы, гэтыя слоўнікі, гэтыя аб'екты, яны files-- ніколі не атрымаеце вызваленыя.
Там не было ні аднаго выкліку на бясплатна ў любы з гэтай гутаркі.
І гэта было на C-бок, таму што мы ніколі не атрымалі ў гэтых рэчах.
>> Але ў Python баку, там не з'яўляецца свабоднай.
Рэчы становяцца аўтаматычна вызвалены, калі Python
думае, што вы не гледзячы на ​​іх.
Гэта сапраўды добра, ня вызваляючы тое, што Вы маглі б, магчыма, яшчэ будзе глядзець на,
але гэта азначае, што калі вы былі збіраецца вылучыць гэтую вялікую рэч
і вы, як пра Я зрабіў з ім цяпер,
цяжка сказаць Python што вы зрабілі з ім у цяперашні час.
>> Вы часам можаце ўсталяваць што зменная не будзе ні аднаго,
і потым спадзявацца, што ў канчатковым выніку зборшчык смецця
прыходзіць праз і ачышчае яго.
Але, зноў жа, вы не кантроль над гэтым.
І адна з прычын таго, што людзі выкарыстоўваюць C для сапраўды важных рэчаў, прадукцыйнасць,
гэтая здольнасць па-сапраўднаму ведаеце, калі памяць вылучаецца
і калі ён вызваляецца, і ёсць шмат кантролю над кажучы,
Я не буду выкарыстоўваць не больш памяці, чым мне трэба.
Нешта, што Пітон не тое, што выдатна атрымліваецца.
АЎДЫТОРЫЯ: Ці магу я задаць вам пытанне?
Што вы мелі на ўвазе няўдачу гучна?
>> РОСС RHEINGANS-Ё: Так што, калі што-то ідзе не так
і вы ў адладкі Рэжым, вы б вельмі часта
каб праграма вам сказаць, дзе менавіта пайшло не так,
і не проста спакойна спыніцца.
Але вы на самой справе гэта, каб надрукаваць з усіх відаў інфармацыі аб
як, вось гэта было.
Гэта здарылася Калі вы друкуеце wen-- калі вы працуеце ў вэб-server--
>> АЎДЫТОРЫЯ: [неразборліва]
>> РОСС RHEINGANS-Ё: Так, калі вы працуеце ў вэб-сервер,
гэта часам дрэнна, калі вы заўсёды адкідаючы памылкі,
і вы кажаце, добра, што не працуюць.
Я збіраюся спыніцца.
Я проста хачу, каб ігнараваць гэта і будзе трымаць на.
Таму што тады вы можаце атрымаць у сотні з гэтых памылак і ня бачыць іх.
>> Гэта, несумненна, будзе карысна для адладкі
калі кожны раз, ваш вэб-сервер прадпрынятая памылка, вы мелі трывалыя запісу, што.
Можа быць, вы нават хочаце, каб праграма , Каб спыніць, так што гэтыя запісы
Не зразумейце пахаваны пад рэчаў.
Але зноў жа, гэта ў рэжыме адладкі.
>> Часта ў рэжыме вытворчасці, свет крыху інакш.
І ў маленькіх скрыптоў, якія я бягу, дзе тое, што я сказаў, каб зрабіць
можа быць толькі трохі ад ад таго, што я хацеў бы гэта рабіць,
потым накшталт проталківанія Памылкі-то вы, магчыма, захочаце.
І ў гэтых выпадках, вядома, Python сапраўды зарабляе свае запускі.
>> Апошняе, што я не казаў у this--, што я не казаў пра
але можа быць сапраўды прыводзіць у шаленства першым раз у вас ёсць адзін з гэтых памылак,
а другі і трэці і чацвёрты раз у вас ёсць адзін гэтыя памылкі.
Python, я згадаў што ён выкарыстоўвае прабелы
каб сказаць вам, які ўзровень водступу і тое, што функцыянальная блок вы знаходзіцеся,
ён разглядае ўкладкі і прабелы па-рознаму.
Так што калі вы ўкладка на працягу чатырох, а затым наступная радок мае чатыры месцы,
нават калі яны з'яўляюцца, як столькі ж у рэдактары,
Python ня ставіцца да іх гэтак жа.
>> На самай справе, Python апрацоўвае ўкладкі і прабелы, як алей і вада.
Яны проста розныя рэчы.
Там няма канкрэтнага Даўжыня, што закладка,
так што гэта не так, як ўкладка роўная 8 прасторы, і таму вы б абыйсці гэта
такім чынам.
Маўляў, калі ён кажа, тое, што ўзровень белага прасторы я на,
гэта на самай справе шукае мадэль прасторы і ўкладак.
І так, лепшы спосаб справіцца з гэтым заўсёды выкарыстоўваць прабелы ўвесь час.
>> І на самай справе, у Cloud9 IDE і IDE CS50,
Вашы ключавыя Tab ўстаўкі чатыры прасторы, у замест
з ўкладцы, якая супер карысна.
Хоць зноў жа, калі вы напісалі Python Праграма з укладкамі, якія былі б у парадку,
гэта проста калі хто-то пайшоў і спрабаваў дадаць
адна радок з вашай праграмай, што чатыры месцы для кожнага ўкладцы
было б зламаць.
І гэта было б перапынак у шляху што на самой справе не відаць.
Хоць фактычныя памылкі паведамленне, што ён кідае
мае справу з новым водступ не чакаецца тут,
или--, калі ён кажа пра абзацах і, падобна, што гэта няправільна,
гэта, верагодна, таму ёсць праблема ўкладка-прастору.
Яны да гэтага часу прыводзіць у шаленства для адладкі.
Самы вялікі ў цэлым гэтая размова, які я не зрабіў
дабрацца да, таму што гэта сапраўды складаны, тонкі тэма,
і не трэба было рабіць любы з рэчаў, якія мы зрабілі да гэтага часу,
гэта канцэпцыя, называецца картэжаў.
Яны там вельмі як масівы, якія вы не можаце змяніць.
Яны прывыкаюць паўсюль, таму што яны карысныя для многіх рэчаў
што масівы не зьяўляюцца карыснымі для.
>> Але калі вы хочаце, каб масіў, і то абяцаюць, што вам перакладчыка
ніколі не захоча, каб змяніць што thing-- на самай справе, калі вы хочаце змяніць,
вы будзеце рабіць новы з новым Значэння ў it-- тыя картэжы.
Замест вытворчасці іх у квадратныя дужкі,
Вы вырабіць іх з круглых дужках.
Чаму вы павінны выкарыстоўваць гэтыя рэчы, трохі пытання. ,
Адзінае, што я буду кажуць пра тое, што гэта ты
можна выкарыстоўваць картэжы ў Індэксы слоўнікаў.
Вы не можаце выкарыстоўваць масівы Індэксы слоўнікаў.
І чаму, зноў жа, тэхнічныя і Я не збіраюся бегчы ў яго.
>> PSET, што я не закрануў у гэтай гутарцы з'яўляецца pset6.
Дык вось, як вы 'D ажыццявіць a-- вось
як вы будзе ажыццяўляць pset6 ў Python.
Маючы на ​​ўвазе, Пітон цыкл праектавання, першае, што
што вы робіце, калі вы Напісанне праграмы з'яўляецца праверка
каб убачыць, калі хто-то зрабіў гэта ўжо.
>> На самай справе, калі вы хочаце каб serve-- Apache 50
робіць прыкладна гэта, за выключэннем таго, не прыходзяць
Стандарт усталяваны на машынах Linux.
Python робіць, і Пітон проста HTTP-сервер робіць таксама.
Калі вы калі-небудзь на машыне Linux, або Cloud9 IDE межамі CS50
і вы хацелі б, каб служыць гэтай ток Каталог для канкрэтнага порта,
пітон-м SimpleHTTPServer порт служыць для таго.
Вы таксама можаце імпартаваць просты HTTP-сервер
і ён атрымаў шмат функцыянальных калі Вы хочаце, каб наладзіць яго, або змяніць яго,
або запусціць it-- выкарыстоўваць яго запусціць свой уласны сервер паслугі.
>> Дык вось Python у двух словах.
І гэта было CS50.
Дзякуй.