РОСС 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.
Дякую.