1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-YOO: Hi, Ako Ross. 3 00:00:06,800 --> 00:00:08,570 At ito ay isang CS50 seminar. 4 00:00:08,570 --> 00:00:12,100 Ito ay magdadala sa iyo mula programming sa C upang programming sa sawa. 5 00:00:12,100 --> 00:00:15,120 >> Python ay isang scripting wika. 6 00:00:15,120 --> 00:00:17,870 Ito ay higit sa lahat ay tulad ng C sa syntax, kahit na ilang 7 00:00:17,870 --> 00:00:20,390 sa mga teknikal na detalye ng paano na syntax ay naisakatuparan 8 00:00:20,390 --> 00:00:22,240 ay bahagyang naiiba. 9 00:00:22,240 --> 00:00:24,780 Ito ay mas malakas kaysa sa C sa ilang mga paraan. 10 00:00:24,780 --> 00:00:28,130 Ito ay mas makahulugan para sa kung saan eksakto sa iyong computer 11 00:00:28,130 --> 00:00:30,030 memory ay makakakuha ng inilatag, kung paano ito ay makakakuha ng inilatag, 12 00:00:30,030 --> 00:00:32,030 kapag ito ay makakakuha ng kalayaan, at mga uri ng mga bagay. 13 00:00:32,030 --> 00:00:36,150 >> Ito ay mas kapaki-pakinabang kaysa sa C sa ilang mga paraan, dahil ito ay mas madali sa programa in. 14 00:00:36,150 --> 00:00:39,920 Ang wika ay, sa ilang mga mga tao, mas madaling maunawaan. 15 00:00:39,920 --> 00:00:44,820 At talagang, ang layunin ay para sa ito upang maging mas mabilis mag-program 16 00:00:44,820 --> 00:00:46,490 at potensyal na mas mabagal upang maipatupad. 17 00:00:46,490 --> 00:00:48,198 >> Ngayon kung sa tingin mo ang tungkol sa ang halaga ng oras 18 00:00:48,198 --> 00:00:50,514 ginastos mo sa iyong huling hanay ng problema sa pagsusulat 19 00:00:50,514 --> 00:00:52,430 ang iyong code laban sa mga halaga ng oras na ginagamit mo 20 00:00:52,430 --> 00:00:55,310 sa iyong huling problema itakda Isinasagawa ang iyong code, 21 00:00:55,310 --> 00:00:58,300 Gusto mong isipin na ang wika na kung saan ay dalawang beses nang mas mabilis sa pagsulat, 22 00:00:58,300 --> 00:01:02,170 at dalawang beses bilang mabagal upang maipatupad, baka maging isang pagpapabuti sa C sa ilang mga paraan. 23 00:01:02,170 --> 00:01:05,730 Totoong kapag sinusubukan mong isulat maliit na mga programa na gawin ang maliit na bagay, 24 00:01:05,730 --> 00:01:08,520 Python ay isang kapaki-pakinabang na wika ng mga pagpipilian. 25 00:01:08,520 --> 00:01:10,620 >> At sa dulo ng mga ito seminar, Umaasa ako na makikita mo 26 00:01:10,620 --> 00:01:12,950 ay maaaring gumawa ng mga pagpili sa mga proyekto sa hinaharap 27 00:01:12,950 --> 00:01:17,710 tungkol sa kung aling mga wika ay tama na gamitin, hindi ang ideya 28 00:01:17,710 --> 00:01:21,405 na ang isang wika ay higit pa tama ang lahat ng oras. 29 00:01:21,405 --> 00:01:23,030 Ang ilang mga bagay tungkol sa kung ano ang seminar ay. 30 00:01:23,030 --> 00:01:25,910 Seminar na ito ay hindi inilaan upang magturo sa iyo Python mula sa simula. 31 00:01:25,910 --> 00:01:28,310 Python ay halos katulad sa C, at ako sa pag-aakala 32 00:01:28,310 --> 00:01:34,056 na ikaw ay isang CS50 mag-aaral, o isang tao na may isang katulad na pagkikilala sa C. 33 00:01:34,056 --> 00:01:36,700 >> Kung ikaw ay CS50 ng mag-aaral sa paligid ng problema set 6, 34 00:01:36,700 --> 00:01:38,866 kaya ikaw makita ang marami ng bagay sa C, Bibigyan kita 35 00:01:38,866 --> 00:01:40,740 ang mga pangunahing pagkakaiba, at ang ilan sa mga bagay-bagay 36 00:01:40,740 --> 00:01:42,840 na gumawa ng Python iba't ibang at mga espesyal na at kapaki-pakinabang, 37 00:01:42,840 --> 00:01:45,256 ngunit hindi ako pagpunta sa pumunta para sa kung ano ang isang programming language ay 38 00:01:45,256 --> 00:01:46,920 at kung paano sumulat ng mga programa. 39 00:01:46,920 --> 00:01:49,820 Gayunman, ito seminar ay magturo sa iyo na magsulat ng isang Python programa 40 00:01:49,820 --> 00:01:52,310 kung ikaw ay isa sa mga ilang mga pangkat sa iyo. 41 00:01:52,310 --> 00:01:54,820 Muli kami ay tumingin sa kung paano gusto mo ipatupad psets-- 42 00:01:54,820 --> 00:01:57,550 na dapat ay 1-6 in Python-- at magbigay ng payo 43 00:01:57,550 --> 00:02:00,322 sa mga opisyal na dokumento para sa pagsangguni sa hinaharap. 44 00:02:00,322 --> 00:02:03,030 Ang iba pang mga bagay na mahalaga tungkol sa kung paano ito makipag-usap ay itinalaga, 45 00:02:03,030 --> 00:02:05,360 ang video na ito ay magiging online, kagandahang-loob ng CS50, 46 00:02:05,360 --> 00:02:07,550 kaya hindi ka dapat makaramdam kailangan mong kumuha ng mga tala. 47 00:02:07,550 --> 00:02:11,180 Maaari mong palaging bumalik at tumingin sa ito sa ibang pagkakataon bilang isang sanggunian. 48 00:02:11,180 --> 00:02:13,340 Bukod dito ang mga slide magagamit sa ngayon 49 00:02:13,340 --> 00:02:16,480 sa site na ito, na dapat kumuha ng gagawin mo ang isang Google doc. 50 00:02:16,480 --> 00:02:21,010 Ito ay isang bahagyang abridged bersyon ng kung ano ang ako ng pagpapakita sa screen. 51 00:02:21,010 --> 00:02:24,850 >> One-ingat caveat bago Tumalon kami sa, Python 3 52 00:02:24,850 --> 00:02:26,700 ay isang iba't ibang mga wika mula sa Python 2. 53 00:02:26,700 --> 00:02:30,020 Tumingin sila ng isang pulutong ng parehong; may mga tunay bahagyang teknikal na mga pagkakaiba 54 00:02:30,020 --> 00:02:32,530 na magiging sanhi ng mga programa nakasulat sa Python 2 55 00:02:32,530 --> 00:02:37,140 hindi na ma-pinaandar sa Python 3 kapaligiran. 56 00:02:37,140 --> 00:02:41,969 >> Ang CS50 appliance ay may Python, sa pamamagitan ng default na ito ay gumagamit ng Python 2. 57 00:02:41,969 --> 00:02:44,010 Maaari mong suriin ito sa pamamagitan ng pag-type sa iyong command line 58 00:02:44,010 --> 00:02:51,310 python --version, na kung saan ay dapat na output 2.7.6 sa kasalukuyang appliance. 59 00:02:51,310 --> 00:02:53,580 Subukan Python 3, na kung saan ay magtrabaho sa appliance, 60 00:02:53,580 --> 00:02:58,500 kung sawa ang mga default upang 2.X.Y, alinman sa ang appliance o sa iyong sariling machine. 61 00:02:58,500 --> 00:03:03,730 Dapat mong palitan ang Python 3 anumang oras sa ganitong talk na isulat ko Python. 62 00:03:03,730 --> 00:03:05,760 Kung ang iyong machine ay patakbuhin ang 2 sa pamamagitan ng default, i-type 63 00:03:05,760 --> 00:03:09,770 Python 3 in upang ma upang aktwal sundin kasama at isakatuparan ang mga bagay-bagay. 64 00:03:09,770 --> 00:03:12,280 >> Bukod dito, kukunin ko na ituro sa iyo sa opisyal na mapagkukunan ngayon. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V ingat na iyon ang isang 3 at hindi isang 2-- 66 00:03:16,082 --> 00:03:17,030 may makatutulong na sanggunian. 67 00:03:17,030 --> 00:03:19,280 Tutorial ay magdadala sa iyo sa pamamagitan ng marami sa mga parehong bagay 68 00:03:19,280 --> 00:03:21,460 na ako ng paggawa ngayon, maliban sa text form. 69 00:03:21,460 --> 00:03:23,725 Reference ay kapaki-pakinabang bilang isang reference para sa mga wika, 70 00:03:23,725 --> 00:03:26,100 at ang Standard Library ay nagbibigay sa ilang ka ng mga extension 71 00:03:26,100 --> 00:03:27,770 may karagdagang mga pag-andar. 72 00:03:27,770 --> 00:03:31,300 >> Kaya isang napaka-unang programa Python. 73 00:03:31,300 --> 00:03:34,410 Sa kaliwang mayroon kaming standard C, sa kanan, mayroon kaming sawa. 74 00:03:34,410 --> 00:03:36,780 Maaaring may kinikilala mo ang problemang ito, ito ay 75 00:03:36,780 --> 00:03:40,760 ang isa sa mga unang problema nagtatakda sa CS50, at ang mga ito 76 00:03:40,760 --> 00:03:42,677 malutas ito gamit ang parehong solusyon. 77 00:03:42,677 --> 00:03:45,010 Ngayon, ang dahilan na hindi namin tumitingin sa mga tabi-tabi 78 00:03:45,010 --> 00:03:46,830 ay upang maaari naming tingnan syntactic pagkakaiba. 79 00:03:46,830 --> 00:03:49,580 Isa sa mga elepante sa kuwarto na maaari mong napansin karapatan 80 00:03:49,580 --> 00:03:56,350 off ang bat, ay na ay walang sawa pangunahing pag-andar wrapping sa buong code. 81 00:03:56,350 --> 00:03:59,170 Kaya sa C, isulat mo ang isang grupo ng mga file, i-link mo ang mga ito nang sama-sama, 82 00:03:59,170 --> 00:04:02,590 at ang programa ay nagsisimula sa Isinasagawa sa bagay na tinatawag int main. 83 00:04:02,590 --> 00:04:04,930 >> Sa Python, sumulat ka ng isang ikaw file, execute ang file, 84 00:04:04,930 --> 00:04:07,882 nagsisimula sa programa Isinasagawa sa tuktok ng file. 85 00:04:07,882 --> 00:04:09,590 Kaya ito ay pagpunta sa simulan sa tuktok ng file 86 00:04:09,590 --> 00:04:11,280 bumaba hanggang sa matagpuan ito sa ibang bagay. 87 00:04:11,280 --> 00:04:14,440 Kung ito nahahanap ang isang function ng kahulugan, hindi ito aktwal na ay execute na code, 88 00:04:14,440 --> 00:04:15,940 ito lamang na tukuyin ang mga function. 89 00:04:15,940 --> 00:04:18,459 Ngunit dito, kapag ang unang programa ay n ay katumbas ng 10, 90 00:04:18,459 --> 00:04:21,273 ang unang bagay na programa na ito ay gawin ay kumuha ng ganitong halaga ng 10 91 00:04:21,273 --> 00:04:24,120 at itakda ito sa isang variable na tinatawag na n. 92 00:04:24,120 --> 00:04:27,690 >> Eto na ng na linya, ang isa sa mga iba pang mga bagay- sorry-- ito 93 00:04:27,690 --> 00:04:31,040 ay nangangahulugan na ang C programa, makikita mo isulat ang mga ito, 94 00:04:31,040 --> 00:04:34,899 Makikita mo ang mga iyon, na kung saan ay tumawag sa diyos ang ilang mga utos kalatungin, 95 00:04:34,899 --> 00:04:36,690 at pagkatapos ay makikita mo magpatakbo ng isang nagreresulta executable. 96 00:04:36,690 --> 00:04:41,030 Python programa, patakbuhin mo ang text file-- ito mario.py baka 97 00:04:41,030 --> 00:04:44,900 maging ang file na ito na ako lang ay nagpakita you-- kayo tumakbo file na 98 00:04:44,900 --> 00:04:47,450 at kayo execute, at ang mga nilalaman ng mga ito 99 00:04:47,450 --> 00:04:50,390 ay naisakatuparan sa pamamagitan ng ang Python interpreter. 100 00:04:50,390 --> 00:04:52,470 Maaari mong gawin ito sa iyong IDE. 101 00:04:52,470 --> 00:05:02,260 >> Kaya kung mayroon akong isang Hello file, kung saan ay may lamang na ito ang mga nilalaman. 102 00:05:02,260 --> 00:05:04,840 Ito ay tunay na Python 2, hindi Python 3, kaya hindi 103 00:05:04,840 --> 00:05:06,600 mag-alala tungkol sa syntax para sa ngayon. 104 00:05:06,600 --> 00:05:14,230 Ngunit kukunin ko na tumakbo Python, sa hello.py, at ito ay tumatakbo. 105 00:05:14,230 --> 00:05:18,890 >> Ang isa pang paraan na maaari kong gamitin Python na Hindi ako humarap sa kaya marami sa mga ito talk, 106 00:05:18,890 --> 00:05:21,840 ay kung type lang ako Python, ito patak sa akin sa isang kapaligiran kung saan 107 00:05:21,840 --> 00:05:24,370 Maaari kong feed na ito Python linya sa pamamagitan ng linya. 108 00:05:24,370 --> 00:05:31,260 Kaya dito, kung nag-type sa ko space print 'hello, world'. 109 00:05:31,260 --> 00:05:32,360 I-type ang enter. 110 00:05:32,360 --> 00:05:37,430 Ito ay dumura sa akin na i-back ang mga resulta na ang mga indibidwal na linya kaagad. 111 00:05:37,430 --> 00:05:38,470 >> Ito ay maaaring maging kapaki-pakinabang. 112 00:05:38,470 --> 00:05:40,700 Sa talk kailangan kong gawin ang mga bagay-bagay sa mga slide. 113 00:05:40,700 --> 00:05:43,940 At kaya makikita mo na sundin kasama ang alinman sa dito, o sa pamamagitan ng pagsulat 114 00:05:43,940 --> 00:05:45,725 aktwal na mga file at pagkatapos ay Isinasagawa ang mga ito. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Ngunit, balik sa ito code, isa pang bagay 117 00:05:50,995 --> 00:05:53,230 na maaaring mayroon ka noticed-- well, may 118 00:05:53,230 --> 00:05:55,980 dalawang bagay na maaari ka paunawa tungkol sa mga bloke. 119 00:05:55,980 --> 00:05:59,280 Ang una, sa halip mas pandaigdig, ay na ang Python Wala trailing semicolon. 120 00:05:59,280 --> 00:06:02,630 >> Semicolons ay opsyonal sa lahat ng dako at hindi makasasama sa lahat ng dako. 121 00:06:02,630 --> 00:06:03,722 Maaari mong idagdag ang mga ito. 122 00:06:03,722 --> 00:06:06,430 Maaaring gumawa ng mga tao na magsulat Python para sa isang buhay paghagikgik sa iyo 123 00:06:06,430 --> 00:06:08,860 sa likod ng iyong likod, dahil ang mga ito ay hindi kinakailangan. 124 00:06:08,860 --> 00:06:13,497 Ang mga ito ay madalas na isang palatandaan na gaganapin sa paglipas ng mula sa C. Ang mga designer ng mga wika 125 00:06:13,497 --> 00:06:16,580 pakiramdam na ito ay mas malinaw sa ganitong paraan at na ito ay hindi kinakailangan na idedeklara 126 00:06:16,580 --> 00:06:18,700 sa bawat oras na magtapos ka ng isang linya. 127 00:06:18,700 --> 00:06:21,799 >> Ang isa pang kakaibang bagay tungkol sa n ay hindi ito ay may isang uri ng kalakip. 128 00:06:21,799 --> 00:06:24,590 Isa sa mga magic piraso ng Python-- at ako pagpunta sa tawag na ito magic, 129 00:06:24,590 --> 00:06:26,381 ngunit may mga tunay teknikal na dahilan kung bakit ito 130 00:06:26,381 --> 00:06:28,560 works-- ang isa sa mga magic piraso ng Python 131 00:06:28,560 --> 00:06:32,700 ay na variable na maaari palawakin o pag-urong upang maglaman ng anumang data 132 00:06:32,700 --> 00:06:34,530 mga uri ay iyong gusto sa kanila na. 133 00:06:34,530 --> 00:06:35,580 >> Kaya ito ay isang 10. 134 00:06:35,580 --> 00:06:40,060 Kung sa ibang pagkakataon pababa itinalaga ko rito n 0.5, ito ay tumagal na 0.5. 135 00:06:40,060 --> 00:06:43,770 Walang bagay na ito ay isang int dito at lumutang doon, ang anumang bagay na ito ay gumagamit ng n 136 00:06:43,770 --> 00:06:47,057 ay, higit pa o mas kaunti, mas ma-chug kasama kung ito ay makakakuha ng alinman sa mga iyon. 137 00:06:47,057 --> 00:06:49,640 Maliban na lamang kung may ilang mga tunay na tunay dahilan kung bakit hindi ito maaaring gamitin ang data 138 00:06:49,640 --> 00:06:52,170 type na n kasalukuyan ay may, at sa puntong ito ay makakuha 139 00:06:52,170 --> 00:06:54,490 maipit at magtapon ng isang error, at ang mga uri ng bagay. 140 00:06:54,490 --> 00:06:57,050 >> Ngunit dito, Python hindi talagang pakialam ang kung ano ang 141 00:06:57,050 --> 00:06:59,140 ito ay na ako ng pagpunta sa stick sa ito pangungusap, tulad ng, gusto mo ba ito? 142 00:06:59,140 --> 00:06:59,840 Ito bagay na iyon? 143 00:06:59,840 --> 00:07:00,640 Oo, ito ay isang uri ng bagay. 144 00:07:00,640 --> 00:07:01,810 Kukunin ko stick ito sa dulo. 145 00:07:01,810 --> 00:07:04,740 Makikita ito ay isang problema sa susunod, kung isang tao na nais na gumamit ng end na 146 00:07:04,740 --> 00:07:05,710 hindi maaaring hawakan ito. 147 00:07:05,710 --> 00:07:08,500 Ito ay isa sa mga pangunahing pagkakaiba sa pagitan ng Python at C 148 00:07:08,500 --> 00:07:10,790 na ginagawang mas madaling isulat napakalaking C programa 149 00:07:10,790 --> 00:07:15,120 at ginagawang mas madali na magsulat napakaliit na programa Python. 150 00:07:15,120 --> 00:07:19,564 >> Ang para sa syntax ay hindi masyadong ibang-iba sa kung ano ang ginagawa nito. 151 00:07:19,564 --> 00:07:21,480 Ito ay bahagyang naiiba sa kung paano ito ay ipinahayag. 152 00:07:21,480 --> 00:07:25,370 Kaya ito ay isang tunay, kung ano ang tinatawag Pythonic, paraan ng pagsulat ng mga ito. 153 00:07:25,370 --> 00:07:28,969 para sa hilera sa hanay (n), ito ay ang hanay ng mga numero mula 0 hanggang n, 154 00:07:28,969 --> 00:07:31,010 inclusive sa ibaba at eksklusibong sa itaas. 155 00:07:31,010 --> 00:07:34,790 Kaya ito ay mula 0 hanggang n-1, na kung saan ay eksakto kung ano ang ginagawa ang C code, 156 00:07:34,790 --> 00:07:38,690 maliban ito ay isang mas madaling na tingnan ang mga marahil. 157 00:07:38,690 --> 00:07:42,710 >> Ang mga kaugnay na block ay hindi nakatakda off sa pamamagitan ng braces, 158 00:07:42,710 --> 00:07:44,540 sa halip ito ay set off sa pamamagitan ng ito indentation. 159 00:07:44,540 --> 00:07:47,580 Kaya lahat ng mga linya ay apat na mga puwang sa ibabaw ng mga karapatan, 160 00:07:47,580 --> 00:07:50,410 o tulad ng tungkol sa isang lapad elephant. 161 00:07:50,410 --> 00:07:54,570 At ang mga ito ay ang mga na pagpunta sa ay pinaandar sa na ito para sa. 162 00:07:54,570 --> 00:07:57,020 Kung ako guluhin ang indentation sa mga ito at ako 163 00:07:57,020 --> 00:08:01,420 itulak na print pabalik sa ang orihinal na indentation, 164 00:08:01,420 --> 00:08:04,320 na print ay iwanan ang para sa loop. 165 00:08:04,320 --> 00:08:08,560 Sa kaibahan sa C, kung saan dito ko talaga kailangan upang ilipat na closed suhay paligid. 166 00:08:08,560 --> 00:08:11,820 >> Nangangahulugan ito na hindi mo makuha ang mga error na tumalon sa iyo dahil ikaw 167 00:08:11,820 --> 00:08:13,580 maglagay ng isang suhay sa maling lugar. 168 00:08:13,580 --> 00:08:16,460 Ito ay hindi nangangahulugan na makakuha ka ng mga error na tumalon sa iyo dahil ikaw 169 00:08:16,460 --> 00:08:17,620 indent isang linya mali. 170 00:08:17,620 --> 00:08:19,290 Kaya ito ay gumagawa indentations sobrang maingat. 171 00:08:19,290 --> 00:08:22,123 Inaasahan namin na kayo ay pagiging sobrang maingat anyway sa iyong indentation, 172 00:08:22,123 --> 00:08:25,300 at kaya hindi ito ay na mas higit pa sa isang pabigat. 173 00:08:25,300 --> 00:08:28,762 >> Ngunit isang pangunahing patakaran para sa Python, at kami ay may isang pares ng mga 174 00:08:28,762 --> 00:08:30,970 na makikita namin pumunta sa pamamagitan sa pamamagitan ng ang mga kurso ng talk, 175 00:08:30,970 --> 00:08:33,840 ay subukan natural syntax bago naghahanap ng anumang bagay up. 176 00:08:33,840 --> 00:08:37,610 Kaya ang syntax na ito, para sa ang bilang na ito sa mga hanay, 177 00:08:37,610 --> 00:08:41,460 ay katangi-tangi sa mga tuntunin ng estilo. 178 00:08:41,460 --> 00:08:45,260 Maraming mga bagay sa sawa ipapakita namin makita ang pagkuha ng form na ito. 179 00:08:45,260 --> 00:08:47,420 >> At kaya kung dumating ka up gamit ang isang bagong bagay na iyong 180 00:08:47,420 --> 00:08:50,870 tingin mo ay dapat ma- umulit sa mga ito, sa format na ito, 181 00:08:50,870 --> 00:08:53,720 lumiliko out ito marahil Sinusuportahan format na iyon. 182 00:08:53,720 --> 00:08:56,990 Hindi namin pagpunta upang pumunta super malalim sa ang mga teknikal na dahilan kung bakit na totoo. 183 00:08:56,990 --> 00:09:00,167 >> Ngunit ito ay isang kapaki-pakinabang na Swersey na magkaroon kapag ikaw ay papalapit na Python programa, 184 00:09:00,167 --> 00:09:01,750 na ang bagay na ito ay lamang ang pagpunta sa trabaho. 185 00:09:01,750 --> 00:09:03,020 Subukan mo. 186 00:09:03,020 --> 00:09:06,480 Boot up ang Command Line Interpreter, tingnan kung gumagana ito, 187 00:09:06,480 --> 00:09:09,827 lumipat sa sa bagay na ito, bago mo kahit na kailangan upang buksan ang Google at sabihin, 188 00:09:09,827 --> 00:09:11,660 ano ang syntax para sa ang partikular na bagay? 189 00:09:11,660 --> 00:09:14,740 Maraming ng Python dati mo matuklasan lamang sa pamamagitan ng pagsubok. 190 00:09:14,740 --> 00:09:19,005 >> Kung ito ay mas katulad sa C pagkatapos ay ang fors ay. 191 00:09:19,005 --> 00:09:20,380 Tandaan na walang mga panaklong. 192 00:09:20,380 --> 00:09:23,490 Ang mga panaklong ay, muli, hindi makasasama ngunit hindi kinakailangan. 193 00:09:23,490 --> 00:09:25,750 May isang colon sa dulo tulad lamang ang para sa loop, 194 00:09:25,750 --> 00:09:30,800 at muli, ang mga kamag-anak na mga bloke ay naka-indent sa halip na i-set off sa pamamagitan ng braces. 195 00:09:30,800 --> 00:09:33,080 Ibang tao na ito ay ang orihinal antas ng indentation, 196 00:09:33,080 --> 00:09:35,930 at sa mga kaugnay block muli naka-indent. 197 00:09:35,930 --> 00:09:41,720 Mga trabaho eksakto tulad ng ginagawa nila sa C. 198 00:09:41,720 --> 00:09:44,520 >> Ito ay talagang napaka pareho. 199 00:09:44,520 --> 00:09:49,430 Muli, i-print ang mawalan sa isang character off ng printf mong pumasa sa ilang mga string. 200 00:09:49,430 --> 00:09:51,520 Ito ay lumiliko out string maaaring alinman ay minarkahan off 201 00:09:51,520 --> 00:09:53,562 sa pamamagitan ng solong quote o double quotes. 202 00:09:53,562 --> 00:09:55,270 Walang pagkakaiba, maliban na loob 203 00:09:55,270 --> 00:09:57,722 ng solong quotes maaari mong gamitin ang double quotes sa aabandunahin, 204 00:09:57,722 --> 00:09:59,430 sa halip na sa pagkakaroon ng makatakas sa lahat ng mga ito. 205 00:09:59,430 --> 00:10:01,480 At sa loob ng double quotes, mo maaaring gumamit ng single quotes sa abandunahin 206 00:10:01,480 --> 00:10:02,420 nang hindi na kinakailangang i-escape ang mga ito. 207 00:10:02,420 --> 00:10:04,253 Kung iyong nais na ihalo mga ito, maaari mong tiyak 208 00:10:04,253 --> 00:10:06,100 maghanap ng online kung paano gawin iyon. 209 00:10:06,100 --> 00:10:09,581 >> Mapapansin mo na sa paglipas dito, Na dumaan ako sa dulo = bagay na ito. 210 00:10:09,581 --> 00:10:12,580 Ito ay isang halimbawa ng isang opsyonal argument, na kung saan ay isa sa mga bagay 211 00:10:12,580 --> 00:10:14,990 na sumusuporta sa Python na ginagawang masyadong kapaki-pakinabang. 212 00:10:14,990 --> 00:10:18,240 Kaya print talaga ay may isang pulutong ng mga arguments, na kung saan ay karaniwang 213 00:10:18,240 --> 00:10:20,140 nakatakda sa kanilang mga default na halaga, ngunit dito na ko 214 00:10:20,140 --> 00:10:21,924 nagpasya na pawalang-bisa ang isa na tinatawag na dulo. 215 00:10:21,924 --> 00:10:24,340 Ang dahilan na kailangan kong override ito sa isang walang laman na string 216 00:10:24,340 --> 00:10:26,756 ay na-print sa Python, sa pamamagitan ng default, mga print out ng isang bagong linya 217 00:10:26,756 --> 00:10:28,630 matapos ang mga bagay na sinabi mo rin ito. 218 00:10:28,630 --> 00:10:31,462 >> Kaya ito hash ay talagang pagpunta sa mag-print ng hash sa isang bagong linya. 219 00:10:31,462 --> 00:10:34,670 At kung hindi ko gusto hash upang i-print out ng isang bagong linya matapos na ito, at pagkatapos ay kailangan kong sabihin 220 00:10:34,670 --> 00:10:35,340 hindi i-print ng isa. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Ngunit, gayon pa man ito, ang isang huling bagay na ang program na ito ay nawawala na ang isa ay ang 223 00:10:43,690 --> 00:10:44,960 isang isama sa itaas. 224 00:10:44,960 --> 00:10:48,120 Print ay lutong sa Python kaya talaga na walang header o module 225 00:10:48,120 --> 00:10:49,869 na kailangan mong isama, kahit na kung nais 226 00:10:49,869 --> 00:10:52,029 upang isama ang iba pang mga bagay sa isang Python script, 227 00:10:52,029 --> 00:10:55,320 Gusto kong gawin ito sa isang katulad na format-- ang mga salita ay lamang bahagyang naiiba. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Nabanggit ko na tayo hindi kailangan ng isang main dito, 230 00:11:01,360 --> 00:11:03,372 dahil nagsisimula ang sawa Isinasagawa sa itaas. 231 00:11:03,372 --> 00:11:05,080 Kung Nais kong i-wrap ito sa isang function, ako 232 00:11:05,080 --> 00:11:07,667 Gusto gawin ito tulad this-- ko sasabihin def name function, 233 00:11:07,667 --> 00:11:10,500 Baka pumunta sa argumento dito at bibigyan namin ng makita ang ilan sa mga mas bago, colon, 234 00:11:10,500 --> 00:11:13,040 at pagkatapos ay muli, ito buong set off block 235 00:11:13,040 --> 00:11:16,810 ay kung ano ang pagpapatakbo harangan para sa na function. 236 00:11:16,810 --> 00:11:18,560 Kaya ito ay ang kahulugan ng function. 237 00:11:18,560 --> 00:11:21,587 At mayroong isang deklarasyon, pagkatapos ay down dito, maaari kong tumawag lamang ang function. 238 00:11:21,587 --> 00:11:23,920 At muli, ang programa interpreter, simula sa itaas, 239 00:11:23,920 --> 00:11:25,280 makikita ito ay ang kahulugan. 240 00:11:25,280 --> 00:11:27,960 Hindi ito ay maipatupad ito hanggang sa ito ay makarating dito, at pagkatapos ay ito ay tulad ng, oh 241 00:11:27,960 --> 00:11:30,860 ngayon ko na tinatawag na ito, ako Hulaan ko dapat itong maisagawa. 242 00:11:30,860 --> 00:11:33,850 >> Ang isang bagay na ay napaka-pangkaraniwan makita sa Python file, 243 00:11:33,850 --> 00:11:36,700 lalo na Python file na ay inilabas sa publiko 244 00:11:36,700 --> 00:11:41,650 at nakabuo ng by-- at binuo at pinananatili, ay isang bagay ng form na ito. 245 00:11:41,650 --> 00:11:44,540 Ito ay basically-- kaya dahil Python, simulan mo sa tuktok 246 00:11:44,540 --> 00:11:50,310 at pagkatapos mong pairalin pababa sa ilalim, Mario ko kung ko lang ay sumigaw dito, 247 00:11:50,310 --> 00:11:54,190 pagkatapos ay anumang oras na kasama ko ang file na ito sa isa pang file, dahil Nais kong gamitin ang 248 00:11:54,190 --> 00:11:58,580 ay Mario function, na ang ibang mga file ng gagawin mayroon din ang panawagang ito sa Mario sa loob nito. 249 00:11:58,580 --> 00:12:01,000 At kapag nagpatakbo ako ng file na iyon, ito ay tumawag sa Mario. 250 00:12:01,000 --> 00:12:04,520 >> Kaya ito ay posible na ang ako lamang nais na patakbuhin ito kung hindi ko na talaga 251 00:12:04,520 --> 00:12:07,290 pinaandar ang partikular na file. 252 00:12:07,290 --> 00:12:11,520 At sa gayon maaari kong ibalot ito sa isang kawikaan tulad nito, kung saan ko sabihin, 253 00:12:11,520 --> 00:12:14,820 kung ang pangalan ng pagpapatupad na ito kapaligiran ay main, 254 00:12:14,820 --> 00:12:16,200 pagkatapos ay gusto kong gawin ang mga bagay-bagay. 255 00:12:16,200 --> 00:12:18,710 Kung hindi man sa ibang tao ay maaaring isama use-- aking function-- 256 00:12:18,710 --> 00:12:22,510 aking mga file, at upang makakuha ng access sa mga function 257 00:12:22,510 --> 00:12:25,552 nang hindi na tumakbo ang mga bagay-bagay na gusto kong magpatakbo ng sa file na ito. 258 00:12:25,552 --> 00:12:27,260 Ito ay, muli, opsyonal ngunit karaniwan. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Ang mga bagay ay entirely-- ay eksaktong pareho sa pagitan ng C at Python, 261 00:12:33,840 --> 00:12:35,100 tiyak sa 3. 262 00:12:35,100 --> 00:12:38,610 Sa tingin ko sa 2, ang division operator kung minsan ay nagbibigay sa iyo pabalik sa kamay kapag 263 00:12:38,610 --> 00:12:41,450 ikaw ay pinamamahalaan sa ints, at alinman sa Nais mo na o hindi mo. 264 00:12:41,450 --> 00:12:44,777 Ngunit plus, minus, at oras gumana nang eksakto tulad ng gusto mong asahan, 265 00:12:44,777 --> 00:12:46,110 maliban sa paglipas ng bahagyang higit pang mga uri. 266 00:12:46,110 --> 00:12:49,740 Kaya maaari mong i-multiply sa kamay sa pamamagitan ng ints, at ang mga uri ng bagay. 267 00:12:49,740 --> 00:12:52,480 >> set gumagana nang eksakto ang parehong. 268 00:12:52,480 --> 00:12:54,310 Maaari mong gamitin ang dalawang pantay na mga palatandaan. 269 00:12:54,310 --> 00:12:59,000 inequals-- mas malaki kaysa sa, mas kaysa sa, mga uri ng mga bagay- 270 00:12:59,000 --> 00:13:02,580 may kahulugan na hindi ka pamilyar sa mga ito. 271 00:13:02,580 --> 00:13:05,770 >> Saan C ay gumagamit ng mga operator, Python ay gumagamit ng bahagyang mas English 272 00:13:05,770 --> 00:13:06,390 nababasa iyan. 273 00:13:06,390 --> 00:13:09,348 Kaya sa halip ng dalawang, ampersand, ikaw literal-type ang salitang "at", "o," 274 00:13:09,348 --> 00:13:10,740 o hindi." 275 00:13:10,740 --> 00:13:13,420 Tulad ng sa iyong if-- sa iyong kondisyon na pahayag, 276 00:13:13,420 --> 00:13:17,670 Nakita namin na mas maaga na ito syntax sa C tumutugon sa syntax na ito sa sawa. 277 00:13:17,670 --> 00:13:21,010 At doon ay hindi isang pulutong ng iba't ibang doon, maliban para sa isang maliit na piraso 278 00:13:21,010 --> 00:13:24,780 ng bantas sa paligid ng mga gilid. 279 00:13:24,780 --> 00:13:28,890 Muli, kung saan C gagawin ng iba pa kung, Python gumagamit elif, 280 00:13:28,890 --> 00:13:33,960 ngunit ang mga ito ay halos pagbabago sa antas ng ibabaw. 281 00:13:33,960 --> 00:13:38,450 >> Pag-ulit na tulad nito ay madalas nakasulat sa kawikaan sa sawa. 282 00:13:38,450 --> 00:13:42,350 Maaari mong likhain ang ganitong uri ng bagay sa isang loop habang nasa labas 283 00:13:42,350 --> 00:13:46,387 kung nais mo, ngunit ikaw tiyak na hindi kailangang. 284 00:13:46,387 --> 00:13:48,970 At muli, kung nais mong ang i-print ang mga sangkap sa ng isang array 285 00:13:48,970 --> 00:13:50,560 maaari mong gawin ito sa ganitong paraan. 286 00:13:50,560 --> 00:13:52,927 Isa sa mga bagay na masaya tungkol sa Python bagaman, 287 00:13:52,927 --> 00:13:54,760 ay na hindi mo na kailangan gamitin ito tularan, 288 00:13:54,760 --> 00:13:57,290 at maaari mong gamitin ang isang bahagyang mas eleganteng isa. 289 00:13:57,290 --> 00:13:59,370 Sabihin mo para sa isang in ary. 290 00:13:59,370 --> 00:14:02,980 >> Kaya sa halip na pagpunta dito at tumatakbo sa ibabaw ng mga indeks, 291 00:14:02,980 --> 00:14:05,630 at pagkatapos ng paghila sa labas indibidwal na mga elemento, 292 00:14:05,630 --> 00:14:08,644 sabihin sa iyo ang para sa tunay na makatarungan tumakbo sa ibabaw ng mga elemento ng kanilang sarili. 293 00:14:08,644 --> 00:14:11,060 At pagkatapos ay kahit anong ginagawa mo sa loob ay maaaring gumana nang direkta 294 00:14:11,060 --> 00:14:13,260 sa mga elemento, na kung saan ay medyo masaya. 295 00:14:13,260 --> 00:14:16,710 At kami see-- gagamitin namin muli at muli na kawikaan 296 00:14:16,710 --> 00:14:18,050 habang naglalakad kami sa pamamagitan ng code. 297 00:14:18,050 --> 00:14:20,091 >> Ito ay, muli, ang isang halimbawa ng isang bagay na makikita ko 298 00:14:20,091 --> 00:14:23,300 tumawag Python magic, kahit na may mga napaka-teknikal na mga kadahilanan kung bakit ito gumagana. 299 00:14:23,300 --> 00:14:26,340 At may mga teknikal na mga bagay-bagay na kailangan na maging totoo tungkol sa array upang 300 00:14:26,340 --> 00:14:28,340 para sa upang gumana sa likod ng mga eksena. 301 00:14:28,340 --> 00:14:31,390 Ang bagay ay na karamihan ng mga uri na kung saan gusto mong asahan na ito upang gumana 302 00:14:31,390 --> 00:14:36,610 nagkaroon ito ipinapatupad para sa mo sa built-in na wika. 303 00:14:36,610 --> 00:14:40,030 >> Isa pang bagay na magiging maganda kung ito ay nagtrabaho sa lahat ng wika, 304 00:14:40,030 --> 00:14:45,460 ngunit may ilang mga kadahilanan kung bakit hindi na ito, i-print ang mga oras string na ito bilang. 305 00:14:45,460 --> 00:14:48,860 Ino-out sa Python, ito gumagana nang eksakto ano ang gusto mo, na kung saan ay katuwaan lamang, 306 00:14:48,860 --> 00:14:52,840 at nangangahulugan na maaari naming aktwal mabawasan ang program na ito, muli mario.c. 307 00:14:52,840 --> 00:14:57,150 Sa halip na iterating isang pulutong, maaari naming sabihin lang, gusto ko ng ilang bilang ng mga puwang, 308 00:14:57,150 --> 00:15:01,120 Gusto ko ang bilang ng mga hash, at ilang mga hash sa dulo. 309 00:15:01,120 --> 00:15:02,640 At muli, ginagamit namin ang format na ito. 310 00:15:02,640 --> 00:15:05,340 >> Dito, kami ay pagpasa sa isang variable sa ganitong paraan. 311 00:15:05,340 --> 00:15:08,050 Muli, hindi namin kailangan sabihin ano ang uri ng variable na ito ay, 312 00:15:08,050 --> 00:15:11,322 at ang tanging oras bibigyan namin ng makakuha ng mga error ay sa run oras. 313 00:15:11,322 --> 00:15:13,030 Kapag ang isang tao sumusubok upang pumasa sa isang bagay sa, 314 00:15:13,030 --> 00:15:14,860 ito ay darating sa function masarap lamang. 315 00:15:14,860 --> 00:15:18,240 Kung kalso namin dito dahil hindi ito ang bagay na maaari kang lumikha ng mga saklaw ng higit sa, 316 00:15:18,240 --> 00:15:22,100 Kukunin ko ang isang error runtime doon, at kukunin ko upang i-debug ang mga ito na paraan. 317 00:15:22,100 --> 00:15:25,050 Ngunit pansamantala, hindi ko alam kung upang maging maingat tungkol sa kung ano 318 00:15:25,050 --> 00:15:32,800 makakakuha ng lumipas sa, hangga't sa ang aktwal na execution ang lahat ng ito gumagana masyadong malinis. 319 00:15:32,800 --> 00:15:35,080 >> Maaari ko bang kahit na gumawa ito isang maliit na piraso ng dumi 320 00:15:35,080 --> 00:15:41,770 paggamit ng isang partikular na built-in function sa mga string, na kung saan ay Kanan justify. 321 00:15:41,770 --> 00:15:45,250 Ito ay lamang ng isang kapaki-pakinabang na function nakahiga sa paligid ng library. 322 00:15:45,250 --> 00:15:47,660 Ito ay sa papeles kung ikaw ay pumunta at hanapin ito. 323 00:15:47,660 --> 00:15:51,650 At sinasabi ko, well ako pagpunta sa may ang string na ito, ang ilang bilang ng mga hash, 324 00:15:51,650 --> 00:15:56,390 at gusto kong tamang basehan para it-- pad ito na may mga puwang na ito ang haba. 325 00:15:56,390 --> 00:16:00,584 >> Muli, ito ay nasa dokumentasyon, na nagdudulot us-- 326 00:16:00,584 --> 00:16:03,500 Kukunin ko talagang i-click sa pamamagitan ng these-- na nagdadala sa amin sa aming pangalawang patakaran 327 00:16:03,500 --> 00:16:06,990 para Python-- standard library pamamaraan function na ang iyong mga kaibigan. 328 00:16:06,990 --> 00:16:09,880 At ito ay madalas na nagkakahalaga ng iyong habang pumunta naghahanap ng paghanga ko 329 00:16:09,880 --> 00:16:12,310 kung may isang bagay na gumagana ito lamang. 330 00:16:12,310 --> 00:16:13,830 May marahil ay. 331 00:16:13,830 --> 00:16:15,990 Kung gusto mong i-pad ang isang string, kung gusto mo sa 332 00:16:15,990 --> 00:16:17,470 nais na kumuha ng likod kalahati ng isang string, kung gusto mo sa 333 00:16:17,470 --> 00:16:20,370 tulad ng paghahanap sa pamamagitan ng isang string, kung gusto mo upang basagin ang isang pares ng mga bagay-bagay 334 00:16:20,370 --> 00:16:22,420 kasama ang isang string may mga kuwit sa pagitan ng mga ito, 335 00:16:22,420 --> 00:16:24,640 may mga standard library pag-andar para sa paggawa nito. 336 00:16:24,640 --> 00:16:27,190 >> At ito ay gumagawa ng iyong buhay mas madali kung gagamitin mo ang mga ito 337 00:16:27,190 --> 00:16:29,240 sa halip ng mga pagulong sa labas lahat sa inyong sarili 338 00:16:29,240 --> 00:16:31,650 sa limang linya ng code dito, limang linya ng code dito. 339 00:16:31,650 --> 00:16:34,430 Na talagang nagsisimula sa magdagdag ng hanggang sa real time. 340 00:16:34,430 --> 00:16:37,430 >> Isa sa mga kagiliw-giliw na mga bagay-bagay tungkol sa kung paano makakakuha ng mga ito na tinatawag na. 341 00:16:37,430 --> 00:16:39,980 Mapapansin mo na may isang tuldok na bagay. 342 00:16:39,980 --> 00:16:43,490 Mayroon akong ilang mga object sa kaliwa, at pagkatapos ay tumawag ako ng isang tuldok sa isang function. 343 00:16:43,490 --> 00:16:49,780 Ito ang isa sa mga paradigms na sawa ay gumagamit ng para sa paglakip pamamaraan sa mga bagay. 344 00:16:49,780 --> 00:16:54,410 Susubukan naming makipag-usap tungkol sa kung ano ito ay tunay madaling sabi sa dulo, 345 00:16:54,410 --> 00:16:58,510 pero alam na maaaring pareho naming patakbuhin sa mga bagay-bagay sa pamamagitan ng pagkuha na ang bagay na sinasabi dot 346 00:16:58,510 --> 00:17:01,690 ano man, o sa pamamagitan ng pagtawag isang function na tumatagal 347 00:17:01,690 --> 00:17:04,339 na object at ilang iba pang mga argumento. 348 00:17:04,339 --> 00:17:07,450 >> Kaya ang mga ito ay parehong mga paraan na mga bagay na makapag tapos sa Python. 349 00:17:07,450 --> 00:17:09,780 At kung ang isang partikular pag-andar ay ipinatupad 350 00:17:09,780 --> 00:17:14,230 sa ganitong estilo o ito style ay isang bagay na ikaw ay 351 00:17:14,230 --> 00:17:19,990 dapat magmukhang up hanggang sa makuha mo ang isang hang para sa kung saan ang isa ito ay malamang na mapunta sa. 352 00:17:19,990 --> 00:17:22,660 May isang mas marami o mas cohesive pilosopiya sa likod ng Python 353 00:17:22,660 --> 00:17:24,930 na maunawaan mo karamihan sa pamamagitan ng pagsusulat ng maraming sa mga ito. 354 00:17:24,930 --> 00:17:28,190 Sa ilang mga punto, na kung saan ang isa sa mga isang bagay ay ipinatupad bilang 355 00:17:28,190 --> 00:17:29,470 nagiging natural. 356 00:17:29,470 --> 00:17:32,420 Sa ngayon, ito ay isang bagay lamang sa inyo na malaman bilang kang malaman 357 00:17:32,420 --> 00:17:34,140 bawat indibidwal na bagay. 358 00:17:34,140 --> 00:17:36,420 >> Kaya standard library function ay iyong mga kaibigan, 359 00:17:36,420 --> 00:17:41,320 at hayaan mo sila isulat ang mga bagay na tumagal ito maraming space talaga sa ilang sandali, 360 00:17:41,320 --> 00:17:42,040 talagang elegante. 361 00:17:42,040 --> 00:17:45,670 At ito ay tunay na marahil mas mababasa, gusto kong sabihin, kaysa sa programa C 362 00:17:45,670 --> 00:17:46,780 doon. 363 00:17:46,780 --> 00:17:49,730 Hindi sa banggitin ang katunayan na kaya maikling maaari mong magkasya sa isang buong elepante 364 00:17:49,730 --> 00:17:52,250 sa puwang na nai-save namin. 365 00:17:52,250 --> 00:17:56,270 >> Isa pang bagay, ito ay isang pagpapatupad ng Mario na dot C, na sa palagay ko 366 00:17:56,270 --> 00:17:57,890 ang pinakamaikling maaari mo itong makuha. 367 00:17:57,890 --> 00:18:00,757 Hindi nito ay may mga get int, ngunit ito mahirap codes ang halaga ng 10 368 00:18:00,757 --> 00:18:02,090 sa parehong paraan na ang isang ito ay. 369 00:18:02,090 --> 00:18:06,080 Ino-out na ang isang ito clocks in sa 84 na mga character, samantalang Python ay 64. 370 00:18:06,080 --> 00:18:11,490 At ito ay walang hanggan mas nababasa kaysa ito ng basura dito. 371 00:18:11,490 --> 00:18:14,610 Kaya sawa ay mas mahusay sa space. 372 00:18:14,610 --> 00:18:17,260 Ito ay bahagyang mas mahusay sa oras, ngunit hindi sa pamamagitan ng magkano. 373 00:18:17,260 --> 00:18:18,890 >> Listahan ay isang mahalagang bagay sa Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Hindi namin nakita ang mga ito, ngunit sila gumana marami tulad array gawin sa C. 376 00:18:24,587 --> 00:18:27,170 Kaya dito, maaari mong ipahayag ang mga ito, maaari mong ipasa ang mga ito sa isang bagay. 377 00:18:27,170 --> 00:18:29,810 Ngayon parisukat humahawak ng isang ang dami ng mga bagay na ito. 378 00:18:29,810 --> 00:18:33,480 Muli, hindi pa namin na ipinahayag bilang uri, ngunit kung namin kailanman subukang gamitin ito, 379 00:18:33,480 --> 00:18:36,260 anumang bagay na gusto mong asahan na magtrabaho sa isang array ng mga integer 380 00:18:36,260 --> 00:18:40,130 ay pagpunta sa trabaho sa isang array ng mga integer. 381 00:18:40,130 --> 00:18:42,030 >> Ito ay isang bagay na ikaw ay ganap na hindi maaari 382 00:18:42,030 --> 00:18:47,390 gawin sa C, dahil ang memory ito ay kaya mga kamay sa, 383 00:18:47,390 --> 00:18:48,950 ngunit ito ay tunay madali na gawin sa Python. 384 00:18:48,950 --> 00:18:55,310 Kung gusto ko ang aking array na maging mas malaki, maaari ko ikakabit ang isang elemento sa mga ito at ito ay multa. 385 00:18:55,310 --> 00:18:57,150 >> Ano ang nangyayari sa likod ng mga eksena? 386 00:18:57,150 --> 00:18:59,150 Interpreter ay pumunta out at makakuha ng ilang memory, 387 00:18:59,150 --> 00:19:00,860 at marahil ito ay makakuha ng isang maliit na piraso ng dagdag na memorya, 388 00:19:00,860 --> 00:19:03,090 kaya hindi ko kaya wala akong upang realloc bawat oras. 389 00:19:03,090 --> 00:19:04,897 Ngunit kung magkano ang kailangan pa memory ay kailangan ito? 390 00:19:04,897 --> 00:19:06,730 Hindi na ito ay mga desisyon na kailangan mong gawin, 391 00:19:06,730 --> 00:19:10,540 ang mga ito ay mga desisyon na ang interpreter ay pagpunta sa gawin. 392 00:19:10,540 --> 00:19:12,270 >> Dito makikita natin na hanay Maaari tumagal ng dalawang argumento, 393 00:19:12,270 --> 00:19:16,430 ngunit ito ay pagpunta pa rin upang maging inclusive sa mga top kaya namin magdagdag ng 1 doon. 394 00:19:16,430 --> 00:19:21,970 Ito ay isang wika, na kung saan ay isang mas matalino na paraan upang isulat ang mga bagay na tulad nito. 395 00:19:21,970 --> 00:19:25,980 Ito ay tinatawag na listahan unawa, at dito kung ano ang sinasabi namin 396 00:19:25,980 --> 00:19:32,560 ay nais kong ilagay sa i nakalapat para sa bawat halaga ng i sa hanay na ito. 397 00:19:32,560 --> 00:19:35,770 Ito bagay sa kanang ay maaaring isa pang array, at ang bagay na ito sa kaliwang 398 00:19:35,770 --> 00:19:40,740 upang maging anumang partikular na function na nais kumuha sa i bilang isang variable 399 00:19:40,740 --> 00:19:42,250 at magbigay sa akin ang ilang mga resulta. 400 00:19:42,250 --> 00:19:43,480 >> Ano ako pagpunta sa gawin ay, Pupunta ako sa tayuan 401 00:19:43,480 --> 00:19:46,200 isang array na ang lahat ng mga bagay na ito para sa bawat halaga sa hanay na ito. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 At ito ay sobrang elegante, sobrang maikli, at ito ay napakalinaw kung ano ang ibig sabihin nito. 404 00:19:55,670 --> 00:19:59,190 Ito ay isa sa mga bagay- ito ay muli, 405 00:19:59,190 --> 00:20:03,860 isa of-- very tumutukoy sa mga dahilan na ang mga tao tulad ng Python. 406 00:20:03,860 --> 00:20:05,900 Kung gusto mo programming tulad nito, pagkatapos ay Python 407 00:20:05,900 --> 00:20:07,830 ay isang wika na maaaring gusto mo upang matuto. 408 00:20:07,830 --> 00:20:10,950 >> At muli, may mga teknikal na mga dahilan kung bakit ito gumagana. 409 00:20:10,950 --> 00:20:14,730 Ngunit tulad ng kami ay nababahala, kami ay mas mababa o hindi pag-aalaga. 410 00:20:14,730 --> 00:20:18,500 >> Kaya kung nais mong i-print out ng mga listahan, ilan sa mga parehong idioms ay kapaki-pakinabang. 411 00:20:18,500 --> 00:20:20,940 Para i sa hanay na ito, maaari namin index sa lahat ng mga bagay-bagay 412 00:20:20,940 --> 00:20:23,140 at pagkatapos ay i-print ang mga ito sa lahat ng out. 413 00:20:23,140 --> 00:20:24,650 At makikita mo makita len dito. 414 00:20:24,650 --> 00:20:27,150 Kung kailanman na iyong nais na makakuha ng ang haba ng array, na ang 415 00:20:27,150 --> 00:20:31,150 napakadaling sa Python, ito ay lubhang mahirap sa C. 416 00:20:31,150 --> 00:20:33,720 Ito ay i-print out eksakto kung ano ang gusto mong asahan ito sa. 417 00:20:33,720 --> 00:20:36,986 Maaari rin namin, tulad ng nakita natin dati, umulit sa ibabaw ng mga elemento sa array 418 00:20:36,986 --> 00:20:39,860 direkta, at pagkatapos ay makipag-usap lamang tungkol sa ang mga ito, sa halip ng pagkakaroon ng index 419 00:20:39,860 --> 00:20:43,190 sa likod ng array sa bawat oras. 420 00:20:43,190 --> 00:20:45,990 >> At ito ay isang bagay na maaari mong gawin. 421 00:20:45,990 --> 00:20:49,984 Kaya sa C, kung magtatanong kayo para sa isang bagay tulad nito, i-print ang mga nais sabihin, 422 00:20:49,984 --> 00:20:51,150 iyan ay isang hanay ng mga integer. 423 00:20:51,150 --> 00:20:53,456 Iyan ay tiyak na hindi isang string, hindi ko maaaring i-print ito. 424 00:20:53,456 --> 00:20:54,830 Python mas mababa o hindi pag-aalaga. 425 00:20:54,830 --> 00:20:57,496 Ito ay tulad ng, ay may isang paraan na ako maaaring i-in na ito sa isang string? 426 00:20:57,496 --> 00:20:58,500 Oo, kailangan kong gawin iyon. 427 00:20:58,500 --> 00:21:01,600 At kaya lang makikita print ko na out. 428 00:21:01,600 --> 00:21:03,640 Nangangahulugan ito na maaari mong gawin ang mga bagay like-- mga 429 00:21:03,640 --> 00:21:06,530 ay halos lahat ng mga matitigas na bahagi ng laro ng labinlimang, nakasulat 430 00:21:06,530 --> 00:21:08,930 napaka daglian sa sawa. 431 00:21:08,930 --> 00:21:11,320 >> Makikita mo na ang may Medyo of-- dito 432 00:21:11,320 --> 00:21:14,441 Palayasin ko na isang integer sa isang string, at kailangan kong gawin na mano-mano. 433 00:21:14,441 --> 00:21:16,190 At ako pagpunta upang magdagdag ng ito sa isa pang string, 434 00:21:16,190 --> 00:21:17,590 o kung hindi man Python makakakuha ng nalilito. 435 00:21:17,590 --> 00:21:19,840 Ngunit kung kapag ikaw ay pagdagdag ng isang string sa isang integer, 436 00:21:19,840 --> 00:21:22,630 am ipagpalagay kong makakuha ng isang integer likod o isang string sa likod? 437 00:21:22,630 --> 00:21:24,480 Ngunit muli, kung ikaw lamang tumawag str sa isang bagay, 438 00:21:24,480 --> 00:21:27,240 at ito ay maaaring sa anumang mga posibleng mundo ma-convert sa isang string, 439 00:21:27,240 --> 00:21:30,390 ito ay marahil ay convert sa isang string. 440 00:21:30,390 --> 00:21:33,120 >> Dito, makikita natin ang paggamit ng nested list intindi 441 00:21:33,120 --> 00:21:38,690 sa kaliwa, ang ilang mga pag-index, na kung saan ay eksakto tulad ng gusto mo ay ginagamit upang ito, 442 00:21:38,690 --> 00:21:40,060 at ang ilang mga pag-print out ng mga bagay. 443 00:21:40,060 --> 00:21:42,560 Muli, na tinukoy namin ang ilang mga function at kami ay tumawag sa kanila down 444 00:21:42,560 --> 00:21:45,820 sa main kapag aktwal naming makuha ang file. 445 00:21:45,820 --> 00:21:52,004 return gumagana nang eksakto tulad Gusto mo asahan mula sa nagtatrabaho sa C. Maghanap, 446 00:21:52,004 --> 00:21:54,420 maaaring i-set up ang mga bagay tulad namin this-- narito ang listahan intindi 447 00:21:54,420 --> 00:21:59,245 mayroong isang assignment sa isang variable, at maaari naming aktwal na gawin itong mas madali. 448 00:21:59,245 --> 00:22:01,870 Hindi namin kailangan upang isulat ang paghahanap, dahil built-in na mga wika 449 00:22:01,870 --> 00:22:04,230 ay kung ang bagay na ito ay sa array na ito. 450 00:22:04,230 --> 00:22:05,680 Bumalik totoo, iba bumalik false. 451 00:22:05,680 --> 00:22:08,830 Kaya na ang kabuuan ng hanapin. 452 00:22:08,830 --> 00:22:12,230 >> Ang kabuuan ng pag-uuri nagsasangkot ng pagtawag sa mga uri, 453 00:22:12,230 --> 00:22:15,462 saan is-- may mga pagpapatupad ng mga ito na binuo sa mga tiyak na aklatan C. 454 00:22:15,462 --> 00:22:17,170 Kung gusto mo ito uri ng paurong, ikaw 455 00:22:17,170 --> 00:22:20,450 maaaring i-override ito opsyonal argument sa laban sa isang true. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 At kung gusto mong i-uri-uriin sa paglipas ng string, na built-in na rin. 458 00:22:27,860 --> 00:22:31,950 >> Kaya ito ay hindi sabihin ang mga ito ay mga bagay na kailangan mong gawin sa bawat araw, 459 00:22:31,950 --> 00:22:34,280 ngunit ang ideya ay na ito ay ang pilosopiya ng Python, 460 00:22:34,280 --> 00:22:37,530 na ang lahat ng mga bagay na Gusto mo Gusto uri ng gawin ay built-in. 461 00:22:37,530 --> 00:22:42,410 At pinaka-karaniwang mga pag-andar, kaya uri, haba, kahit na ano, 462 00:22:42,410 --> 00:22:44,380 suporta sa karamihan ng lohikal matino input. 463 00:22:44,380 --> 00:22:49,020 Ikaw tawag len sa isang array ng parehong paraan mo tawagan len sa isang string. 464 00:22:49,020 --> 00:22:55,785 Multiply-- mo mong ayusin string sa parehong paraan mong ayusin array. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Karamihan sa mga standard na function na bumuo ng mga tao, 467 00:23:00,740 --> 00:23:03,000 at karamihan sa mga third-party aklatan na tao 468 00:23:03,000 --> 00:23:06,980 magtayo, dahil sila ay emulating ang disenyo ng standard library, 469 00:23:06,980 --> 00:23:10,190 maaaring tinatawag na sa lahat ng bagay na kayo ay tulad ng, kung bakit hindi ito gumagana lamang, 470 00:23:10,190 --> 00:23:12,800 sa C. Higit pa o mas mababa, ito ay gumagana sa sawa 471 00:23:12,800 --> 00:23:15,930 dahil ang mga tao sa trabaho sa likod na figure kung ano ang isang bagay ay at pagkatapos ay gumana 472 00:23:15,930 --> 00:23:17,510 naaangkop sa mga ito. 473 00:23:17,510 --> 00:23:22,760 Kaya muli, teknikal na background, ngunit ito ginagawang mas madali ang ating buhay bilang programmer. 474 00:23:22,760 --> 00:23:26,820 >> Kaya dito ang file I / O. maghain I / O ay may maraming mga maliit na bagay na gawin itong kumplikado, 475 00:23:26,820 --> 00:23:29,890 at kaya may mga resources online, ngunit sa maikling sabi, 476 00:23:29,890 --> 00:23:33,010 tumawag ka bukas sa isang file pangalan sa isang partikular na uri. 477 00:23:33,010 --> 00:23:37,640 Kaya na basahin, basahin at isulat, isulat o ikakabit. 478 00:23:37,640 --> 00:23:41,790 Nabasa mo ang isang tiyak na bilang ng mga character out at i-print mo ang mga, 479 00:23:41,790 --> 00:23:42,595 makakakuha ka ng Hello! 480 00:23:42,595 --> 00:23:43,970 Ibig kong sabihin, tulad ng sa file na ito ay nagkaroon ng Hello! 481 00:23:43,970 --> 00:23:46,480 Sa ito, tumawag sa pagbasa, at kung ano ang makakakuha ka ng bumalik 482 00:23:46,480 --> 00:23:49,520 ay isang string na may lahat ng ang magpahinga ng ang array, 483 00:23:49,520 --> 00:23:50,860 o lahat ng mga natitirang bahagi ng file. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Kung ikaw ay tumawag basahin muli, ikaw ay nasa dulo ng mga file, 486 00:23:56,055 --> 00:23:58,138 at upang hindi ka makakakuha ng kahit ano at kaya magagawa mong isara. 487 00:23:58,138 --> 00:24:02,510 Muli, ito ay .close sa halip na malapit file, tulad ng ito ay sa C. 488 00:24:02,510 --> 00:24:07,190 Ito ay higit pa o mas mababa dahil f ay isang bagay, at gusto mo para sa f upang isara. 489 00:24:07,190 --> 00:24:12,092 Ngunit basic file I / O ay hindi partikular na kumplikado. 490 00:24:12,092 --> 00:24:15,300 Muli, kung gusto mo upang buksan ang isang file, kung gusto mo upang basahin ang isang partikular na linya, 491 00:24:15,300 --> 00:24:17,870 maaari kang makakuha ng out ng mga partikular na line-- mayroong built-in na para sa. 492 00:24:17,870 --> 00:24:19,995 Kung gusto mo na magsulat ng isang bagay, maaari mong isulat ito. 493 00:24:19,995 --> 00:24:23,412 Kung gusto mo upang isulat ang mga indibidwal na kagat, maaari mong isulat ang mga iyon. 494 00:24:23,412 --> 00:24:25,620 At kung gusto mo na umulit sa ibabaw ng linya ng isang file 495 00:24:25,620 --> 00:24:29,557 paisa-isa, tulad ng ginawa namin sa isang piraso mula sa ilang linggo na ang nakaraan, maaari mong gawin iyon sa. 496 00:24:29,557 --> 00:24:32,140 Muli, karamihan sa mga bagay na Gusto mo upang ma upang umulit sa 497 00:24:32,140 --> 00:24:33,780 pag iterating sa kanila. 498 00:24:33,780 --> 00:24:37,430 Sa Pythons, ang isang file ay marahil isang bagay na Gusto kong umulit sa linya sa pamamagitan ng linya. 499 00:24:37,430 --> 00:24:39,138 Kung ito ay isang diksyunaryo ng mga salita at ako ay 500 00:24:39,138 --> 00:24:42,181 sinusubukan mong makakuha ng mga indibidwal salita out, pagkatapos, sa loob ng loop, 501 00:24:42,181 --> 00:24:44,180 line na ito ay magiging bawat salita naman at ito 502 00:24:44,180 --> 00:24:47,880 ay pagpunta sa maisasakatuparan para sa bawat linya sa file hanggang sa katapusan ng file. 503 00:24:47,880 --> 00:24:52,280 At muli, kung naka-print ko ang bawat line, ang mga linya ay may bagong linya, 504 00:24:52,280 --> 00:24:54,740 kaya ako ng setting sa dulo i-back sa isang bagay tulad nito. 505 00:24:54,740 --> 00:24:56,580 At gusto ko makukuha ang mga nilalaman ng aking file. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Ang ikalawang bagay na kung saan ay nagpapatakbo sa ang ilang mga paraan tulad ng mga listahan, at sa ilang mga paraan 508 00:25:07,480 --> 00:25:11,870 bilang isang bagay na malaki mas makapangyarihan, 509 00:25:11,870 --> 00:25:16,170 mga diksyunaryo, kung saan ay talagang cool na gamitin ngunit talaga hash 510 00:25:16,170 --> 00:25:17,670 tables sa panlilinlang. 511 00:25:17,670 --> 00:25:23,330 Lumikha ka ng isa gamit ang eksaktong dalawang character, na kung saan ay kahanga-hangang 512 00:25:23,330 --> 00:25:25,959 kung sinubukan mo upang ipatupad ang hash talahanayan para sa iyong hanay ng problema, 513 00:25:25,959 --> 00:25:27,250 alam mo magkano ang sakit na maaaring. 514 00:25:27,250 --> 00:25:29,390 Subalit ang mga tao ay tapos na ito, at tapos na ito nang maayos, 515 00:25:29,390 --> 00:25:32,260 na hindi mo na kailangang mag-alala tungkol sa mga ito anymore. 516 00:25:32,260 --> 00:25:35,180 >> Pagkatapos ay maaari mong ipasok ang mga indibidwal na mga bagay-bagay. 517 00:25:35,180 --> 00:25:38,110 Hash tables-- o mga diksyunaryo hindi lalo 518 00:25:38,110 --> 00:25:40,240 pag-aalaga kung ano ang iyong pag-iimbak sa kanila. 519 00:25:40,240 --> 00:25:44,210 Kaya kung ilang mga entry sa mga numero, at ang ilang mga entry ay mga listahan, 520 00:25:44,210 --> 00:25:47,360 kung ilang mga entry sa mga iba pang mga diksyunaryo, at ang ilang mga entry ay mga string, 521 00:25:47,360 --> 00:25:49,930 Python ay hindi gaanong pag-aalaga. 522 00:25:49,930 --> 00:25:53,460 >> Muli, kung ikaw ay pupunta sa mga ito na umaasa isang string at kung ano ang makakakuha ka pabalik 523 00:25:53,460 --> 00:25:56,269 ay isang array, iyon ang iyong problema. 524 00:25:56,269 --> 00:25:58,810 At marahil ito ay kasalanan ng sinumang naisip ito ay paglalagay ng mga bagay 525 00:25:58,810 --> 00:26:00,476 sa diksyunaryo, marahil na sa iyo. 526 00:26:00,476 --> 00:26:02,350 Kung iyon ay isang tao iba pa, sana sila ay 527 00:26:02,350 --> 00:26:04,520 mahusay pagkilos tungkol sa kung ano ay pagpunta sa diksiyunaryo 528 00:26:04,520 --> 00:26:07,420 at hindi iwan ang anumang mga pitfalls para sa inyo na mapunta sa. 529 00:26:07,420 --> 00:26:10,890 >> Ngunit ang mga karaniwang pag-andar ay bigyan ka pabalik mabuti ang pagkilos ng bagay. 530 00:26:10,890 --> 00:26:13,500 Kaya sinasabi nila na ito ay nagbabalik likod ng isang diksyunaryo ng mga string, 531 00:26:13,500 --> 00:26:15,860 at pagkatapos ang lahat na iyong pupuntahan upang makakuha ng isang string. 532 00:26:15,860 --> 00:26:20,710 Kung gagawin mo ang ilan sa mga ito at ito biyahe up mo, well, na maaaring sa iyo. 533 00:26:20,710 --> 00:26:25,542 Tiyak na nagbibigay sa iyo ng Python sapat lubid na mag-hang ang iyong sarili, kung gusto mo. 534 00:26:25,542 --> 00:26:28,250 Ngayon ay maaari naming i-print ang mga indibidwal na mga sangkap na ito at ito ay nagbabalik 535 00:26:28,250 --> 00:26:29,935 kung ano mismo ang gusto mo inaasahan. 536 00:26:29,935 --> 00:26:32,810 Kung ano mismo ang gusto mong asahan, hulaan ko, ay isang parirala na gumagamit ako ng isang pulutong, 537 00:26:32,810 --> 00:26:35,070 ngunit iyan ay mas o mas mababa sa kung paano gumagana Python. 538 00:26:35,070 --> 00:26:39,880 Kung hihiling ka ng isang bagay na hindi ito, Python ay dumura ng isang error 539 00:26:39,880 --> 00:26:43,194 at ito ay umalis sa labas ng ka anumang programa na kayo ay sa. 540 00:26:43,194 --> 00:26:45,360 Makikita ito talagang i-print out higit pang impormasyon sa na, 541 00:26:45,360 --> 00:26:49,110 makikita ito ituro you-- idedetalye ito magdagdag ng isang linya, at iba. 542 00:26:49,110 --> 00:26:52,190 >> At, muli, marahil gusto namin upang umulit sa mga diksyunaryo 543 00:26:52,190 --> 00:26:54,410 at hanapin ang lahat ng mga bagay sa loob nito. 544 00:26:54,410 --> 00:26:57,440 Narito kami ay iterating sa paglipas ng dalawang bagay nang sabay-sabay. 545 00:26:57,440 --> 00:27:03,040 At kaya kami ay gawin ito na may isang key, halaga, ngunit pagkatapos ay i-print out ang lahat ng mga ito. 546 00:27:03,040 --> 00:27:06,300 >> At kung gusto naming cast-- kung talagang tumakbo namin ito, 547 00:27:06,300 --> 00:27:10,840 gusto naming magkaroon ng ilang mga problema dahil on-- kapag nagpunta kami sa kasama ni David, 548 00:27:10,840 --> 00:27:13,920 hindi ito maaaring add-- kung hindi namin ginawa itapon sa isang string ng una, 549 00:27:13,920 --> 00:27:17,802 hindi namin ma idagdag na array ng mga string papunta sa isang string. 550 00:27:17,802 --> 00:27:19,760 Ngunit kung namin napalabas ito sa isang string, makakakuha tayo ng isang bagay 551 00:27:19,760 --> 00:27:22,590 tulad nito, na kung saan ay marahil kung ano ang nais naming basahin. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> At ito ay speller. 554 00:27:30,500 --> 00:27:32,460 Kami basahin lamang sa mga bagay-bagay. 555 00:27:32,460 --> 00:27:35,770 Kaya maaari naming basahin sa ng bawat salita bilang mga linya. 556 00:27:35,770 --> 00:27:38,240 Tumaga namin off ang huling bagay, kaya colon minus 1 557 00:27:38,240 --> 00:27:41,651 chomps off ang huling bagay na we-- huling character ng isang string. 558 00:27:41,651 --> 00:27:42,150 Susubukan naming sabihin. 559 00:27:42,150 --> 00:27:44,730 OK, ang bawat isa sa mga iyon ay makakakuha ng ipinasok sa diksyunaryo ito, 560 00:27:44,730 --> 00:27:45,810 pagma-map sa isang halaga ng 1. 561 00:27:45,810 --> 00:27:48,006 Ginagawa namin ang hindi partikular na pag-aalaga tungkol na ang isa, 562 00:27:48,006 --> 00:27:51,130 ngunit ito ay doon lamang sabihin, oh well, ang bagay na ito kukunin ko na ilagay sa diksyunaryo. 563 00:27:51,130 --> 00:27:53,182 Dahil mamaya kung ano kami pagpunta sa gawin ay hindi namin 564 00:27:53,182 --> 00:27:55,390 pagpunta sa sabihin, well, kung ito ay sa dictionary sa lahat. 565 00:27:55,390 --> 00:27:57,650 >> Muli, ito tseke para sa pagiging miyembro ay up operating 566 00:27:57,650 --> 00:28:00,940 gamit ang isang ganap na iba't ibang algorithm kaysa ito sa isang listahan, 567 00:28:00,940 --> 00:28:05,709 ngunit ang tawag namin ito sa parehong paraan, na kung saan ay ilan sa mga na asukal Python patong 568 00:28:05,709 --> 00:28:07,250 mga bagay upang ang mga ito ay mas madaling gamitin. 569 00:28:07,250 --> 00:28:10,230 At muli, nasaksihan namin mga bagay na tulad nito bago. 570 00:28:10,230 --> 00:28:12,940 Ito ay karaniwang mahanap, o ito ay eksakto ang parehong syntax 571 00:28:12,940 --> 00:28:16,480 bilang mahanap, ngunit ay operating sa loob ng isang ganap na naiibang mga istraktura. 572 00:28:16,480 --> 00:28:20,170 At kami ay hindi partikular na pag-aalaga. 573 00:28:20,170 --> 00:28:25,540 Kaya ang mga ay ang mga bagay na iyong hiningi sa inyo na ipatupad para sa speller. 574 00:28:25,540 --> 00:28:29,278 Sa rate, kami ay pagpunta upang makakuha ng higit pa o mas mababa ang lahat ng psets tapos na. 575 00:28:29,278 --> 00:28:31,474 >> Madla: Kaya na talaga lang dumating likod 576 00:28:31,474 --> 00:28:34,852 bilang hindi tama ang spelling kung ito ay hindi tumugma sa isang bagay sa diksyunaryo? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-YOO: Oo, oo. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 At ito, ito ay isang paglalapat ng isang hanay ng problema 580 00:28:40,880 --> 00:28:43,150 na humihiling sa iyo na gawin eksakto na. 581 00:28:43,150 --> 00:28:46,357 >> Madla: Bakit ang line minus 1 doon? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-YOO: So kapag kayo ay iterating 583 00:28:48,190 --> 00:28:50,300 sa loob ng isang file na humihingi para sa sa pamamagitan ng mga linya, ang mga linya 584 00:28:50,300 --> 00:28:53,900 dumating sa isang bagong linya ng character sa dulo ng it-- ang minus 1 585 00:28:53,900 --> 00:28:55,260 ay para lamang sa mga tindahan sa mga off. 586 00:28:55,260 --> 00:28:59,549 At ito ay isang partikular na kakayahang umangkop paraan ng pag-index sa mga bagay-bagay. 587 00:28:59,549 --> 00:29:01,590 Kaya kung mayroon kang isang string, at gusto mo, well ako 588 00:29:01,590 --> 00:29:05,340 pagpunta sa magsimula sa karakter ng tatlong at ako pagpunta sa pumunta sa dulo. 589 00:29:05,340 --> 00:29:07,140 3 colon ay gawin na para sa iyo. 590 00:29:07,140 --> 00:29:10,570 Kung ikaw ay tulad, gusto kong magsimula sa simula at pumunta sa huling minus 1 591 00:29:10,570 --> 00:29:12,400 character, colon minus 1. 592 00:29:12,400 --> 00:29:14,940 At kung gusto mo upang pumunta mula sa Ang ikatlo ay ang minus una, 593 00:29:14,940 --> 00:29:16,570 at pagkatapos ay gusto mong sabihin 3 minus 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Karagdagan pa, kung nais mong i-index sa mga bagay na bilangin mula sa likod, 596 00:29:22,400 --> 00:29:24,470 index sa iyo para lamang sa mga numero ng minus. 597 00:29:24,470 --> 00:29:26,980 At dahil, kung saan C ay sumabog o baka 598 00:29:26,980 --> 00:29:31,090 feed mo ibang memory hindi ka magkaroon ng pag-access sa, marinig ang maaari mong sabihin minus 1 599 00:29:31,090 --> 00:29:34,104 ay nangangahulugan na ang huling ngunit 1 character sa isang string. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Mga module ay version-- ay ANALOGS na aklatan sa C 602 00:29:43,590 --> 00:29:45,119 at kapaki-pakinabang para sa isang pulutong ng mga bagay-bagay. 603 00:29:45,119 --> 00:29:46,910 Ang isang pulutong ng mga bagay-bagay Gusto mo nais na gawin sa Python, 604 00:29:46,910 --> 00:29:50,040 bukod sa simple pagmamanipula ng mga variable, 605 00:29:50,040 --> 00:29:52,290 gusto mong isabit sa mas malaking library na may mas malaking 606 00:29:52,290 --> 00:29:55,910 interface at higit pa kakayahan para sa pakikipag-ugnay 607 00:29:55,910 --> 00:29:57,195 sa iba pang bahagi ng mundo. 608 00:29:57,195 --> 00:29:58,910 sys ay isa sa mga may isang bungkos ng mga kasangkapan 609 00:29:58,910 --> 00:30:01,159 na kapaki-pakinabang para sa pakikipag-ugnay sa sistema ng kanyang sarili 610 00:30:01,159 --> 00:30:05,050 at i-import ito tulad import sys. 611 00:30:05,050 --> 00:30:07,820 >> May karagdagang dokumentasyon mula sa na iyon, na kung saan maaari kang pumunta dito, 612 00:30:07,820 --> 00:30:11,490 o maaari mong mahanap sa Google sa pamamagitan ng Pag-Google Python sys. 613 00:30:11,490 --> 00:30:12,640 Nag-type ka sa enter. 614 00:30:12,640 --> 00:30:15,140 Ang unang link ay magiging ang mga babasahin sa Python 2, 615 00:30:15,140 --> 00:30:19,260 ang pangalawang link ay pagpunta sa maging ang mga babasahin Python 3. 616 00:30:19,260 --> 00:30:24,830 >> At kung kami ay sumulat ng isang file na tumingin tulad this-- Kung sa partikular, hindi namin 617 00:30:24,830 --> 00:30:27,910 ng pagtingin sa pag-oopera sa argumento command line, 618 00:30:27,910 --> 00:30:30,040 tulad ng natutunan namin na gawin very maaga sa klase na ito. 619 00:30:30,040 --> 00:30:32,190 Ito ay hindi mahirap. Maaari kang makakuha ng out argv, 620 00:30:32,190 --> 00:30:34,565 na kung saan ay isa sa mga bagay na kung saan ay ipinatupad sa pamamagitan ng sys. 621 00:30:34,565 --> 00:30:37,210 Hindi ito ang built-in sa base package, ngunit muli, ikaw ay 622 00:30:37,210 --> 00:30:40,080 maaari itong palawigin sa pamamagitan ng pag-import na pag-andar mula sa sys. 623 00:30:40,080 --> 00:30:41,090 Makikita tumawag ito sys. 624 00:30:41,090 --> 00:30:42,611 kahit ano. 625 00:30:42,611 --> 00:30:43,360 Dito mayroong argv. 626 00:30:43,360 --> 00:30:45,193 Mayroon talagang walang argc sa sys, dahil ikaw 627 00:30:45,193 --> 00:30:47,880 ito ay maaaring makuha sa gayon madali sa pamamagitan ng pagtawag len. 628 00:30:47,880 --> 00:30:55,390 Pagkatapos ay nakalimbag namin na out, pagkatapos namin bumangga sa aming terminal echo-args.py. 629 00:30:55,390 --> 00:30:58,360 Kumuha kami ng likod ng isang array, na kung saan ay ang unang argumento. 630 00:30:58,360 --> 00:31:02,240 Muli, ito ay argv 0, kung saan ay ang pangalan ng bagay na got tinatawag. 631 00:31:02,240 --> 00:31:04,870 Kung tinawag namin ito na may karagdagang arguments, nais naming makakuha ng mga back. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Ito ay isang paraan ng pagkuha ng command line argumento. 634 00:31:09,770 --> 00:31:13,440 Kung nais mong flags kung saan mo i-on partikular na mga bagay-bagay sa o override 635 00:31:13,440 --> 00:31:16,050 isang partikular na default, argparse ay iyong kaibigan. 636 00:31:16,050 --> 00:31:21,550 At muli mong makita na online sa python argparse sa Google. 637 00:31:21,550 --> 00:31:24,300 >> Mayroong isang pares ng mga utility module na mahanap mo ang iyong sarili gamit 638 00:31:24,300 --> 00:31:27,630 at muli, kung gagastusin mo anumang oras ng wikang ito import jsons 639 00:31:27,630 --> 00:31:33,300 para sa pagbabasa at sa labas ng json file, hindi na kumplikado. 640 00:31:33,300 --> 00:31:37,139 Binuksan mo ang isang file, tinatawag mo json.load on file na at makabalik ka ng isang bagay. 641 00:31:37,139 --> 00:31:37,930 Ano ang bagay na iyon? 642 00:31:37,930 --> 00:31:40,329 Ito ay isang json object. 643 00:31:40,329 --> 00:31:42,370 Saan na json may array, ang Python ay may array. 644 00:31:42,370 --> 00:31:44,420 Saan na json ay nag-uugnay array, Python 645 00:31:44,420 --> 00:31:48,810 diksyunaryo, string, at numero, at iba pa. 646 00:31:48,810 --> 00:31:53,560 Gusto mong i-dump na out, ikaw magbukas ng isang bagong file, tumawag ka dump, 647 00:31:53,560 --> 00:31:57,590 at naglo-load at lungkot sa pumunta sa at sa labas ng mga string. 648 00:31:57,590 --> 00:32:02,120 >> Katulad nito, atsara makakakuha ng tinatawag na sa talaga ang parehong interface. 649 00:32:02,120 --> 00:32:04,740 Ito ay bahagyang mas kapaki-pakinabang kung ka paglalaglag Python bagay. 650 00:32:04,740 --> 00:32:08,370 Kaya kung sakaling mo na nais mong i-save isang bersyon ng kasalukuyang katayuan 651 00:32:08,370 --> 00:32:11,930 ng isang variable para sa isang hinaharap tumakbo ng iyong programa, 652 00:32:11,930 --> 00:32:14,740 atsara ay sawa library para sa paggawa na. 653 00:32:14,740 --> 00:32:19,140 >> Kung mayroon kang anumang mga uri ng variable na maaaring nakasulat out 654 00:32:19,140 --> 00:32:21,990 sa katulad na mga salita at mga character at bytes-- tulad diksyunaryo na ito, 655 00:32:21,990 --> 00:32:24,230 kami ay maaaring isulat, namin maaari itong isulat bilang 656 00:32:24,230 --> 00:32:26,670 tulad ng isang json bagay, na kung saan ay literal ang mga character na. 657 00:32:26,670 --> 00:32:29,420 At pagkatapos ay ito ay tunay madali para sa isang tao upang buksan up-- itong buksan up 658 00:32:29,420 --> 00:32:30,889 at basahin ito. 659 00:32:30,889 --> 00:32:33,180 Kung hindi namin ginawa lalo pag-aalaga tungkol sa mga tao sa pagbabasa nito, 660 00:32:33,180 --> 00:32:38,490 maaaring package namin kahit na mas mahusay sa mga form na maaaring nabuklat mamaya 661 00:32:38,490 --> 00:32:42,860 o na maaaring napalaki mamaya. 662 00:32:42,860 --> 00:32:46,740 At ito ay nagse-save ang 80% ng space na ang iyong mga bagay baka 663 00:32:46,740 --> 00:32:49,390 kumuha ng kung nagsulat ka ng mga ito sa labas sulat-kamay. 664 00:32:49,390 --> 00:32:52,384 >> Tawag ka atsara Sobra parehong way-- dump, load, 665 00:32:52,384 --> 00:32:53,800 at pagkatapos mong makuha ang iyong mga bagay-bagay sa likod. 666 00:32:53,800 --> 00:32:56,880 Kaya't kung ikaw ay pagsulat ng tunay maikling Python programa na 667 00:32:56,880 --> 00:32:59,952 gustong i-save ng estado, at pagkatapos ay basahin ang ito muli mamaya, ang mga bagay na tulad nito 668 00:32:59,952 --> 00:33:00,660 ang iyong mga kaibigan. 669 00:33:00,660 --> 00:33:02,640 Na maaari mong tunay madaling tambakan ng mga ito bilang json. 670 00:33:02,640 --> 00:33:04,550 Karamihan Python bagay Maaari dump out ang json 671 00:33:04,550 --> 00:33:11,310 kung mayroong anumang pag-asa na structurally maaaring sila ay kinakatawan na paraan. 672 00:33:11,310 --> 00:33:14,410 >> Ang mga ito ay lamang ang mga dulo ng malaking bato ng yelo sa modules na kapaki-pakinabang. 673 00:33:14,410 --> 00:33:19,510 Kaya sys, os, multiprocessing, ay uri ng mga pangunahing workhorses para sa mga bagay 674 00:33:19,510 --> 00:33:23,120 kailangan namin upang makipag-ugnay sa ang os file system., 675 00:33:23,120 --> 00:33:28,764 tulad os.isfile, os.isdirectory, os.makefile, ang mga ito ay iyong mga kaibigan. 676 00:33:28,764 --> 00:33:30,930 Kung nais mong makipag-ugnay may partikular na uri ng file, 677 00:33:30,930 --> 00:33:32,190 json, atsara, csv. 678 00:33:32,190 --> 00:33:37,160 Kung nais mong makipag-ugnayan sa web pahina, ang urllib para sa pagkuha ng http 679 00:33:37,160 --> 00:33:41,370 mga pahina. bs4-- BeautifulSoup-- ito ay isang kahanga-hangang parser para sa html. 680 00:33:41,370 --> 00:33:47,047 Patakbuhin mo ito sa isang html at ikaw kumuha ito nested array object ngayon, 681 00:33:47,047 --> 00:33:49,630 na kung saan maaari mong bagtasin higit sa lookin, may tulad ng naghahanap para sa 682 00:33:49,630 --> 00:33:52,380 kung, ay, sa, na kung saan ay walang katotohanan. 683 00:33:52,380 --> 00:33:55,920 >> May isang grupo ng mga pakete para running-- 684 00:33:55,920 --> 00:33:57,960 para sa paggawa ng partikular mathy bagay. 685 00:33:57,960 --> 00:34:01,790 Kaya kung nais mong i-multiply, saliwain, ibahin ang anyo matrices, 686 00:34:01,790 --> 00:34:05,690 numpy ay ginagamit ng mga tao ang lahat ng dako ng mundo para sa na. 687 00:34:05,690 --> 00:34:09,620 scipy ay mas kapaki-pakinabang kasangkapan sa direksyong iyon. 688 00:34:09,620 --> 00:34:13,980 sklearn-- machine learning, natural pagpoproseso ng wika, 689 00:34:13,980 --> 00:34:17,880 sobrang kapaki-pakinabang bagay-bagay, makakakuha ipinatupad sa Python sa lahat ng oras. 690 00:34:17,880 --> 00:34:21,469 >> At muli, tumatagal nang bahagya mas mahaba upang write-- Paumanhin, 691 00:34:21,469 --> 00:34:26,199 tumatagal ng bahagyang mas mahaba upang tumakbo, ngunit ang dahilan na ang mga tunay na mga inhinyero ay may posibilidad 692 00:34:26,199 --> 00:34:29,900 paggamit Python ay dahil ikaw ay madalas na maging hinarang sa iyo sa pagsulat ng code, sa halip 693 00:34:29,900 --> 00:34:32,699 kaysa sa iyong computer na tumatakbo ang code. 694 00:34:32,699 --> 00:34:35,860 Kaya't kung ikaw ay pagpunta sa magsulat ng isang programa, na kung saan maraming iba pang mga tao 695 00:34:35,860 --> 00:34:37,699 ay pupunta sa paggamit magpakailanman, tulad ng Linux, maaari mo 696 00:34:37,699 --> 00:34:41,900 Maaaring isulat ito sa C. Kung kayo ay pagpunta sa magsulat ng isang pagtutuos engine, 697 00:34:41,900 --> 00:34:46,124 maaari mong isulat sa sawa kung kailangan mo upang baguhin ito sa bawat ilang mga buwan. 698 00:34:46,124 --> 00:34:48,540 Ang ilang mga tao ay isulat ito sa C dahil ang mga ito tulad na. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Kaya nakita namin na ang pag-import sys bilang isang paraan ng pagkuha ng mga bagay-bagay 701 00:34:54,050 --> 00:34:57,070 ng pagkuha ng module sa inyong programa. 702 00:34:57,070 --> 00:35:00,370 Maaari mo ring i-import ito bilang isang palayaw, kung gusto mo. 703 00:35:00,370 --> 00:35:03,660 Muli multiprocessing ay isang sakit na i-type ang bawat panahon, upang i-import ang bilang mp 704 00:35:03,660 --> 00:35:05,900 at pagkatapos ay anumang oras mo gamitin ito sa programa, 705 00:35:05,900 --> 00:35:09,732 makikita mo sabihin mp.process, o kung ano ang mayroon ka. 706 00:35:09,732 --> 00:35:12,670 Kung gusto mo import lamang ng isang solong bagay, 707 00:35:12,670 --> 00:35:19,450 kaya urllib ay may isang bagay na tinatawag na kahilingan, kaya maaari lamang i-import mo na. 708 00:35:19,450 --> 00:35:22,610 Sa susunod, hindi mo na pakiusapan ito bilang urllib.request, ngunit bilang lamang ng kahilingan 709 00:35:22,610 --> 00:35:24,590 pamamagitan ng kanyang sarili. 710 00:35:24,590 --> 00:35:30,110 >> At maaari mong i-import ang lahat ng bagay mula sa isang module kung gusto mo. 711 00:35:30,110 --> 00:35:34,820 Ito ay paminsan-minsan ay hindi isang magandang idea-- ito ay karaniwang hindi isang magandang ideya, talaga. 712 00:35:34,820 --> 00:35:39,080 Dahil very-- mo dahil kung mayroon man sa module na may pangalan na kayo 713 00:35:39,080 --> 00:35:41,640 nais na gamitin sa ibang lugar sa iyong programa, hindi mo magagawa. 714 00:35:41,640 --> 00:35:44,127 >> At ito ay hindi laging malinaw na iyon ang kaso. 715 00:35:44,127 --> 00:35:46,460 Upang tiyakin na ano ang iyong ginagawa ay ligtas, 716 00:35:46,460 --> 00:35:47,920 kailangan mong buksan up ang module at makita ang lahat 717 00:35:47,920 --> 00:35:50,295 sa mga pangalan na magtapos sa there-- ang lahat ng mga pag-andar, 718 00:35:50,295 --> 00:35:53,010 lahat ng mga variable na nakatira sa module na iyon, 719 00:35:53,010 --> 00:35:57,040 dahil ikaw ay nagdadala sa lahat ng mga ang mga ito sa iyong lokal na namespace. 720 00:35:57,040 --> 00:35:58,680 >> Kaya ang mga tao gawin ito. 721 00:35:58,680 --> 00:36:01,322 Ito ay karaniwang pinapayong na hindi mo na gawin ito. 722 00:36:01,322 --> 00:36:03,280 Subalit ang mga tao gawin ito sa lahat ang oras dahil ang mga ito 723 00:36:03,280 --> 00:36:05,180 tamad at ayaw mong i-type ang mga mp. 724 00:36:05,180 --> 00:36:06,310 kahit ano, kailanman. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Lahat ng ito makipag-usap tungkol sa mga module dalhin mo ako sa paligid sa isang maikling talk 727 00:36:13,310 --> 00:36:15,930 sa kung paano mo magdisenyo ng mga programa sa sawa. 728 00:36:15,930 --> 00:36:19,860 Ang unang hakbang ay upang suriin upang makita kung kahit sino pa ang may nagawa ang mga bagay, 729 00:36:19,860 --> 00:36:22,160 o tapos na 90% ng mga bagay. 730 00:36:22,160 --> 00:36:26,010 Malamang ay marahil ay may, at ikaw dapat pumunta makakuha ng kanilang mga bagay at tumakbo na. 731 00:36:26,010 --> 00:36:28,900 O sumulat ng isang balot sa paligid nito upang iakma ito sa iyong mga layunin. 732 00:36:28,900 --> 00:36:31,250 Ito ay lamang pagkatapos na may Nabigo na pagkatapos mo gusto 733 00:36:31,250 --> 00:36:35,529 pumunta sa at write-- magsimula-iisip tungkol sa kung paano mo ilagay ang bagay na ito nang sama-sama. 734 00:36:35,529 --> 00:36:37,320 Mayroong maraming mga bagay-bagay out there, at iyon ang 735 00:36:37,320 --> 00:36:39,180 isa sa mga pinaka-kapaki-pakinabang mga bagay-bagay tungkol sa Python. 736 00:36:39,180 --> 00:36:40,930 Tulad ng mga wika ay elegante, ang wika 737 00:36:40,930 --> 00:36:43,800 ay madaling gamitin, ngunit din dahil ito ay kaya elegante at madaling gamitin, 738 00:36:43,800 --> 00:36:47,420 mga tao ay gumagamit ng ito para sa isang mahabang panahon at may isang pulutong ng mga bagay-bagay 739 00:36:47,420 --> 00:36:52,520 out there na maaari mong isingkaw para sa iyong sariling paggamit. 740 00:36:52,520 --> 00:36:58,457 >> Kaya noong nakaraang panuntunan ng Python ay, ang isang tao ibang tao ay malamang na nakasulat 741 00:36:58,457 --> 00:37:00,290 isang module para sa na, ibang tao ay mayroon na 742 00:37:00,290 --> 00:37:02,980 marahil na nakasulat sa isang library para doon. 743 00:37:02,980 --> 00:37:06,579 Bago mo subukan na gawin ang isang bagay, tingnan ang upang makita kung ito ay naipatupad. 744 00:37:06,579 --> 00:37:07,370 Ito ay hindi na mahirap. 745 00:37:07,370 --> 00:37:11,960 Ang lahat ng mga module na ko bang ilagay up bago, na may marahil isang pagbubukod, 746 00:37:11,960 --> 00:37:15,220 dumating pre-install sa bawat karaniwang pag-install Python. 747 00:37:15,220 --> 00:37:17,769 At kaya may isang tawag sa import kahit na ano, sa iyo 748 00:37:17,769 --> 00:37:19,852 mayroon ng lahat ng mga pag-andar na sa iyong mga kamay. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Simula sa wrap up ito talk, may mga ilang bagay na 751 00:37:28,920 --> 00:37:32,770 na iyong iniwan ko bilang mga itim na kahon at uri ng glossed over, 752 00:37:32,770 --> 00:37:37,217 at mayroong ilang puting kasinungalingan na ko Sinabi na para sa kapakanan ng katapatan, 753 00:37:37,217 --> 00:37:39,050 Kukunin ko ang hindi bababa punto kung dito, kahit na kung ako ay hindi 754 00:37:39,050 --> 00:37:43,980 pumunta super malalim sa lahat ng mga ito at ang kanilang mga teknikal na paliwanag. 755 00:37:43,980 --> 00:37:46,010 >> Ang isang pulutong ng mga bagay-bagay na tinatawag ko na magic 756 00:37:46,010 --> 00:37:48,980 ay kung ano ang tawag sa ibang tao object oriented programming. 757 00:37:48,980 --> 00:37:52,470 Kaya may mga maraming mga bagay- kaya variable ay masyadong madalas na hindi 758 00:37:52,470 --> 00:37:56,540 simple bytes upo sa, memorya, ngunit ay masyadong kumplikado 759 00:37:56,540 --> 00:38:01,910 mga bagay na may internal estado tungkol sa mga pag-andar at maraming 760 00:38:01,910 --> 00:38:05,570 ng mga nakatagong mga variable, maraming ng nakatagong mga pag-andar, kung saan 761 00:38:05,570 --> 00:38:09,480 hinahayaan kang buksan ito sa mga string, na kung saan ay nagbibigay-daan umulit ka sa kanila. 762 00:38:09,480 --> 00:38:12,260 At kung ikaw ay writing-- at sa dahilan na sila 763 00:38:12,260 --> 00:38:15,710 mayroon ng lahat ng mayaman functionality ay dahil ang people-- 764 00:38:15,710 --> 00:38:17,740 Arkitekto ng language-- dumanas 765 00:38:17,740 --> 00:38:22,420 sa pamamagitan ng at para sa bawat standard object, ilagay sa pag-andar 766 00:38:22,420 --> 00:38:26,970 sabihin ito ay kung paano ito ay kung paano ito ay pagpunta sa gumana 767 00:38:26,970 --> 00:38:28,470 kung ang isang tao ay nais na umulit sa mga ito. 768 00:38:28,470 --> 00:38:31,240 >> Kaya lahat ng bagay na ang isang tao baka marahil gusto upang umulit sa, 769 00:38:31,240 --> 00:38:34,529 Matagal nang logic na nakasulat sa manu-mano sa kung paano ikaw ay 770 00:38:34,529 --> 00:38:36,070 dapat na umulit sa bagay na iyon. 771 00:38:36,070 --> 00:38:40,274 Lahat ng bagay na maaari mong marahil gusto dumped sa isang string ay may nakasulat na lohika. 772 00:38:40,274 --> 00:38:43,440 Ito ay ang pag-andar na tumawag sa iyo kung gusto mong tambakan ng basura ito sa isang string. 773 00:38:43,440 --> 00:38:45,273 Ito ay kung bakit maaari mong tumawag len sa mga bagay, ito 774 00:38:45,273 --> 00:38:49,900 ang dahilan kung bakit maaari kang tumawag para sa, ito ay kung bakit maaari kang tumawag kung in sa lahat ng bagay 775 00:38:49,900 --> 00:38:53,490 na gusto mo nais na, dahil mga lahat ay nagdadala sa kanila, 776 00:38:53,490 --> 00:38:55,380 ang mga teknikal na kasanayan upang gawin iyon. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Ito ay isang bagay na ako hindi pagpunta super upang pumunta sa. 779 00:39:00,432 --> 00:39:03,140 Ngunit para sa mga bagay sa listahan ay subtly naiiba mula style C para sa mga loop, 780 00:39:03,140 --> 00:39:06,160 at maaari mong basahin ang lahat ng tungkol na sa internet kung kayo ay interesado. 781 00:39:06,160 --> 00:39:08,930 May isang madilim na bahagi sa lahat ng mga ito, na nabanggit ko, 782 00:39:08,930 --> 00:39:10,359 kaya may dalawang bagay. 783 00:39:10,359 --> 00:39:13,400 Ang una ay na ang bagay na ito na nakatuon programming nagdadagdag ng maraming overhead 784 00:39:13,400 --> 00:39:16,080 sa random na mga bagay, kaya tapusin mo up gamit ang isang pulutong ng mas maraming memory; 785 00:39:16,080 --> 00:39:18,640 tapusin mo up gamit ang isang maliit na mas time kaysa sa gagawin mo kung hindi man. 786 00:39:18,640 --> 00:39:21,300 Ang other-- ngunit mas marami lihim na mapanira dark side na ito 787 00:39:21,300 --> 00:39:24,047 ay, kung kumilos lang bagay tulad ng gusto mo ang mga ito sa 788 00:39:24,047 --> 00:39:27,130 nang hindi mo kinakailangang mag-isip super hard tungkol sa kung ito ay dapat na isang int 789 00:39:27,130 --> 00:39:29,713 o kung may dapat na isang float, maaaring ito ay na sa paglipas dito 790 00:39:29,713 --> 00:39:34,240 gumawa ka ng isang int ngunit sa paglipas dito ka isipin pero makikita nila ng lagi Paumanhin, 791 00:39:34,240 --> 00:39:36,555 maaaring ito ay dito na gumawa ka ng isang float, 792 00:39:36,555 --> 00:39:39,430 ngunit kapag ikaw ay makakuha sa ikalawang bahagi ng iyong programa, ang iyong iniisip, 793 00:39:39,430 --> 00:39:41,150 oh well, pero makikita nila palaging pumasa sa akin sa isang int. 794 00:39:41,150 --> 00:39:43,608 At kung sila ay hindi, posible na maipit ka sa isang lugar, 795 00:39:43,608 --> 00:39:47,600 kung subukan mong gamitin na sa index sa isang array, o kung ano ang mayroon ka. 796 00:39:47,600 --> 00:39:51,050 >> Kaya isa sa mga tunay na kapaki-pakinabang na mga bagay-bagay tungkol sa C ay 797 00:39:51,050 --> 00:39:54,219 Pinipilit mo ito sa tunay tingin mahirap bago ka gumawa ng any-- 798 00:39:54,219 --> 00:39:56,510 bago ka magdala ng anumang mga variable sa buhay, tulad ng kung ano 799 00:39:56,510 --> 00:39:58,764 ay ang uri ng variable na ito. 800 00:39:58,764 --> 00:40:00,680 At ito ay pagpunta sa may na uri para sa lahat ng oras. 801 00:40:00,680 --> 00:40:02,410 >> Hindi ito totoo Python, at katunayan sa, ikaw 802 00:40:02,410 --> 00:40:04,740 can-- kung hindi ka lang uri ng pagpunta sa pamamagitan ng tainga, 803 00:40:04,740 --> 00:40:07,690 at ikaw ay gumawa ng ilang mga pagpapasya isang paraan sa isang lugar, 804 00:40:07,690 --> 00:40:09,870 at ilang mga desisyon ng isa paraan sa iba pang mga lugar 805 00:40:09,870 --> 00:40:12,960 walang paglalagay ng sapat na mga bagay-bagay sa likod mga tanawin sa iba pang mga lugar 806 00:40:12,960 --> 00:40:16,170 upang makatawag ng maayos ng mga bagay, sa iyo ay maaaring makakuha ng ilang mga napaka kakaibang mga error. 807 00:40:16,170 --> 00:40:19,200 At ang mga programa ay maaaring panatilihin ang pagtakbo para sa isang napaka-haba ng panahon, dahil ito ay 808 00:40:19,200 --> 00:40:23,200 paggawa ng isang pulutong ng mga trabaho upang sabihin, well ang bagay na ito ay maaaring gumana sa ganitong paraan, 809 00:40:23,200 --> 00:40:25,070 kaya ako pupunta na tumakbo na paraan. 810 00:40:25,070 --> 00:40:30,300 >> At sa katunayan, ang katunayan na ito tinutulak ipasa sa pamamagitan ng isang pulutong ng mga maliliit na mga error 811 00:40:30,300 --> 00:40:33,260 ay nangangahulugan na, madalas kapag isang error ay talagang masamang 812 00:40:33,260 --> 00:40:38,720 at talagang mo nais na ayusin ito, ito ay nauuwi milya away-- sa programa 813 00:40:38,720 --> 00:40:41,780 nagtatapos up layo pagpapahinto milya mula sa kapag ikaw ay nagkaroon ng iyong error. 814 00:40:41,780 --> 00:40:46,590 At kaya ang isang bagay na gusto naming mga programa na gawin, sometimes-- isang bagay 815 00:40:46,590 --> 00:40:48,910 na gusto naming programa gawin kapag kami ay pag-debug 816 00:40:48,910 --> 00:40:54,160 ay mabibigo nang malakas at hindi masyadong mabilis na kapag may mangyaring hindi mabuti. 817 00:40:54,160 --> 00:40:55,510 >> Python ay lubhang masama sa ganoon. 818 00:40:55,510 --> 00:40:58,820 Python ay isang magandang sa hindi nanghihina at rolling forward 819 00:40:58,820 --> 00:41:00,320 sa pamamagitan ng hindi inaasahang bagay. 820 00:41:00,320 --> 00:41:02,820 Kaya ito ay kapaki-pakinabang para sa kapag sumusulat ka maliit na programa. 821 00:41:02,820 --> 00:41:07,110 Kapag kumuha ka ng mga kumplikadong bugs minsan 822 00:41:07,110 --> 00:41:09,300 tumatagal ng mahabang panahon upang mang-ulol ito sa labas. 823 00:41:09,300 --> 00:41:12,210 >> Kaya may isang madilim na gilid sa lahat ng mga ito, tulad ng ito ay gumagana. 824 00:41:12,210 --> 00:41:13,860 Gumagana lamang ito tulad ng gusto mong asahan ito sa. 825 00:41:13,860 --> 00:41:18,320 Maliban na kapag ito ay hindi, tapusin mo up sa isang ganap na naiibang mga lugar 826 00:41:18,320 --> 00:41:21,530 at sinusubukan upang malaman kung saan ito ay na kayo nangyaring mali. 827 00:41:21,530 --> 00:41:25,180 >> Basura koleksyon is-- kaya isang bagay na mapapansin mo 828 00:41:25,180 --> 00:41:28,110 ay na alinman sa mga bagay na Na dinala ko sa existence-- 829 00:41:28,110 --> 00:41:34,114 mga array, ang mga diksyunaryo, mga mga bagay, ang mga ito files-- hindi makakuha napalaya. 830 00:41:34,114 --> 00:41:36,030 Walang tawag sa free sa anuman sa mga ito talk. 831 00:41:36,030 --> 00:41:40,340 At iyon ay sa C-side, dahil kami ay hindi kailanman nakuha sa mga bagay na iyon. 832 00:41:40,340 --> 00:41:42,220 >> Ngunit sa Python-side, diyan ay hindi isang libreng. 833 00:41:42,220 --> 00:41:43,970 Mga bagay na awtomatikong makakuha ng napalaya kapag sawa 834 00:41:43,970 --> 00:41:45,386 palagay ni hindi ka na naghahanap sa kanila. 835 00:41:45,386 --> 00:41:49,640 Ito ay hindi tunay mabuti pagbabakante bagay na maaari ka pa ring marahil ay naghahanap sa, 836 00:41:49,640 --> 00:41:54,262 ngunit ito ay nangangahulugan na kung ikaw ay pagpunta sa maglaan ito na malaking bagay, 837 00:41:54,262 --> 00:41:55,970 at ikaw ay tulad ng, oh Tapos na akong may ito ngayon, 838 00:41:55,970 --> 00:42:00,360 ito ay mahirap na sabihin sa Python na tapos ka na sa mga ito ngayon. 839 00:42:00,360 --> 00:42:02,986 >> Minsan mo maaaring itakda variable na maging none, 840 00:42:02,986 --> 00:42:05,110 at pagkatapos ay pag-asa na sa wakas ang mga basurero 841 00:42:05,110 --> 00:42:06,720 dumating sa pamamagitan ng at nililinis ito. 842 00:42:06,720 --> 00:42:10,177 Ngunit muli, hindi mo Mayroon kontrol na. 843 00:42:10,177 --> 00:42:13,510 At isa sa mga dahilan na ang mga tao na gamitin ang C para talagang pagganap ng mga kritikal na bagay, 844 00:42:13,510 --> 00:42:16,570 ay ang kakayahan upang tunay Alam kapag ang memorya ay ilalaan 845 00:42:16,570 --> 00:42:19,369 at kapag ito ay napalaya, at magkaroon ng isang pulutong ng mga kontrol sa sinasabi, 846 00:42:19,369 --> 00:42:20,910 Gumagamit ako ng hindi hihigit kaysa sa memory kailangan ko. 847 00:42:20,910 --> 00:42:23,632 Aling ay isang bagay na Python ay hindi na mahusay sa. 848 00:42:23,632 --> 00:42:25,090 Madla: Maaari ko bang hilingin sa iyo ng isang katanungan? 849 00:42:25,090 --> 00:42:29,800 Ano ang ibig mong sabihin sa hindi malakas? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-YOO: Kaya kung isang bagay ang nangyayari mali 851 00:42:32,070 --> 00:42:34,950 at ikaw ay nasa pag-debug mode, gusto mo napakadalas 852 00:42:34,950 --> 00:42:38,510 nais ang iyong programa upang sabihin sa iyo kung saan eksaktong ito ay wala na mali, 853 00:42:38,510 --> 00:42:42,360 at hindi lamang tahimik hihinto sa pagtakbo. 854 00:42:42,360 --> 00:42:45,085 Ngunit Gusto mong aktwal na ito upang i-print ang lahat ng uri ng impormasyon tungkol sa 855 00:42:45,085 --> 00:42:46,972 tulad ng, dito ay ito. 856 00:42:46,972 --> 00:42:53,957 Nangyari ang bagay na ito kung ikaw ay pag-print isang wen-- kung nagpapatakbo ka ng isang web server-- 857 00:42:53,957 --> 00:42:55,390 >> Madla: [hindi marinig] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-YOO: Oo, kung nagpapatakbo ka ng isang web server, 859 00:42:59,800 --> 00:43:02,680 ito ay paminsan-minsan masama kung ikaw ay laging itapon error, 860 00:43:02,680 --> 00:43:04,530 at ikaw ay sinasabi, well na hindi gumagana. 861 00:43:04,530 --> 00:43:05,300 Pupunta ako upang ihinto. 862 00:43:05,300 --> 00:43:07,680 Ako lamang ang pagpunta upang huwag pansinin ito at panatilihin ang pagpunta sa. 863 00:43:07,680 --> 00:43:11,260 Dahil pagkatapos ay maaari kang makipag-daan-daang ng mga error na ito at hindi makita ang mga ito. 864 00:43:11,260 --> 00:43:13,910 >> Ito ay magiging kapaki-pakinabang na tiyak para sa mga layunin ng pag-debug 865 00:43:13,910 --> 00:43:20,327 kung sa bawat oras na ginawa sa iyong mga web server na ng error, ikaw ay nagkaroon ng matibay na talaan ng mga iyon. 866 00:43:20,327 --> 00:43:22,910 Siguro gusto mo ng kahit na ang program upang ihinto, upang ang mga talaan 867 00:43:22,910 --> 00:43:25,471 hindi makakuha ng nakabaon sa ilalim ng mga bagay-bagay. 868 00:43:25,471 --> 00:43:26,970 Ngunit muli, na sa mode ng pag-debug. 869 00:43:26,970 --> 00:43:31,280 >> Kadalasan sa produksyon mode, ang mundo ay isang maliit na naiiba. 870 00:43:31,280 --> 00:43:36,380 At sa maliit na maliit na script na ako tumatakbo, kung saan ang mga bagay na sinabi kong gawin 871 00:43:36,380 --> 00:43:40,680 ito ay maaaring maging lamang ng isang maliit na piraso off mula sa kung ano Gusto ko ito gagawin, 872 00:43:40,680 --> 00:43:44,010 pagkatapos ay ang uri ng pagtulak sa pamamagitan ng mga error ay isang bagay na maaaring gusto. 873 00:43:44,010 --> 00:43:49,410 At sa mga kasong iyon, tiyak Talagang kumikita Python pagsisimula nito. 874 00:43:49,410 --> 00:43:54,617 >> Ang huling bagay na hindi ko makipag-usap sa this-- na hindi ako nag-usap tungkol sa 875 00:43:54,617 --> 00:43:57,700 ngunit maaaring maging talagang nagpapasiklab sa galit ng unang time magkaroon ng isa sa mga error na ito sa iyo, 876 00:43:57,700 --> 00:44:00,491 at ang ikalawa at ikatlong at ika-apat oras na ikaw ay isa sa mga error. 877 00:44:00,491 --> 00:44:03,490 Python, nabanggit ko na ito ay gumagamit ng space 878 00:44:03,490 --> 00:44:06,700 upang sabihin sa iyo kung ano ang antas ng indentation at kung ano ang functional block ka sa, 879 00:44:06,700 --> 00:44:08,840 ito treats ang mga tab at mga puwang ng iba. 880 00:44:08,840 --> 00:44:12,780 Kaya't kung ikaw tab higit sa apat na, at pagkatapos ay ang susunod na linya ay may apat na mga puwang, 881 00:44:12,780 --> 00:44:16,910 kahit na magpakita ang mga ito bilang mga parehong halaga sa iyong mga editor, 882 00:44:16,910 --> 00:44:20,160 Python ay hindi tratuhin ang mga ito sa parehong. 883 00:44:20,160 --> 00:44:23,610 >> Sa katunayan, itinuturing ng Python tabs at mga puwang tulad ng langis at tubig. 884 00:44:23,610 --> 00:44:25,050 Ang mga ito ay lamang ng iba't ibang mga bagay. 885 00:44:25,050 --> 00:44:27,264 Walang partikular na haba na ang isang tab ay, 886 00:44:27,264 --> 00:44:30,180 kaya ito ay hindi tulad ng isang tab ay katumbas ng 8 puwang, at kaya nais mong makakuha ng sa paligid nito 887 00:44:30,180 --> 00:44:30,860 doon. 888 00:44:30,860 --> 00:44:34,110 Tulad ng, kapag sinasabi nito, kung ano antas ng white space ako sa, 889 00:44:34,110 --> 00:44:37,240 ito ay tunay na naghahanap para sa isang pattern ng mga puwang at tabs. 890 00:44:37,240 --> 00:44:43,050 At ito, ang pinakamahusay na paraan ng pakikitungo sa mga ito ay upang laging gumamit ng puwang sa lahat ng oras. 891 00:44:43,050 --> 00:44:47,510 >> At sa katunayan, sa Cloud9 IDE at ang CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 ang iyong mga susi Tab pagsingit apat na mga puwang sa halip 893 00:44:50,610 --> 00:44:53,800 ng isang tab, na kung saan ay sobrang kapaki-pakinabang. 894 00:44:53,800 --> 00:44:57,074 Kahit na muli, kung ikaw ay sumulat ng isang sawa programa gamit ang mga tab na magiging fine, 895 00:44:57,074 --> 00:44:58,990 ito lamang ay kung ang isang tao pumasok at sinubukan mong idagdag 896 00:44:58,990 --> 00:45:02,655 isang solong linya sa iyong programa na may apat na mga puwang para sa bawat tab, 897 00:45:02,655 --> 00:45:03,280 ito ay lumalabag. 898 00:45:03,280 --> 00:45:07,800 At ito ay lumalabag sa isang paraan na tunay ay hindi makikita. 899 00:45:07,800 --> 00:45:12,390 Kahit na ang aktwal na error message na ito throws 900 00:45:12,390 --> 00:45:15,610 ay may kinalaman sa bagong indent hindi inaasahan dito, 901 00:45:15,610 --> 00:45:18,700 or-- kung ito ay pakikipag-usap tungkol indents at mukhang ito ang mali, 902 00:45:18,700 --> 00:45:22,090 marahil ito ay dahil mayroong isang problema tab-space. 903 00:45:22,090 --> 00:45:24,154 Sila ay nagpapasiklab sa galit pa rin upang debug. 904 00:45:24,154 --> 00:45:26,070 Ang pinakamalaking kabuuan sa ito talk, na hindi ko 905 00:45:26,070 --> 00:45:29,740 kumuha sa dahil ito ay talagang isang komplikadong, madaya topic, 906 00:45:29,740 --> 00:45:34,760 at ay hindi kinakailangan upang gawin ang anumang sa mga bagay na nagawa namin sa ngayon, 907 00:45:34,760 --> 00:45:37,140 ay isang konsepto na tinatawag tuples. 908 00:45:37,140 --> 00:45:41,280 Ang mga ito ay may marami na tulad ng array na hindi mo maaaring baguhin. 909 00:45:41,280 --> 00:45:44,700 Sila makakuha ng ginagamit sa buong lugar dahil ang mga ito ay kapaki-pakinabang para sa maraming mga bagay-bagay 910 00:45:44,700 --> 00:45:46,300 na array ay hindi kapaki-pakinabang para sa. 911 00:45:46,300 --> 00:45:49,890 >> Ngunit kung gusto mo upang gumawa ng isang array, at pagkatapos ay pangako ng interpreter na kayo 912 00:45:49,890 --> 00:45:53,140 ay hindi pagpunta sa nais na baguhin iyon thing-- sa katunayan, kung nais mong baguhin, 913 00:45:53,140 --> 00:45:56,800 ikaw ay gumawa ng bago gamit ang bagong mga halaga sa it-- mga ay tuples. 914 00:45:56,800 --> 00:45:58,800 Kaysa sa paggawa mga ito sa mga square bracket, 915 00:45:58,800 --> 00:46:00,341 gumawa ka ng mga ito sa pag-ikot ng mga braket. 916 00:46:00,341 --> 00:46:05,074 Bakit nais mong gamitin ang mga bagay na ito, ay isang maliit na piraso ng isang katanungan. . 917 00:46:05,074 --> 00:46:06,990 Ang tanging bagay na kukunin ko sabihin tungkol sa na sa iyo 918 00:46:06,990 --> 00:46:10,680 Maaaring gamitin ng tuples bilang indeks para sa mga diksyunaryo. 919 00:46:10,680 --> 00:46:15,010 Hindi mo maaaring gamitin array bilang indeks para sa mga diksyunaryo. 920 00:46:15,010 --> 00:46:18,970 At bakit, muli, teknikal at Hindi ako pupunta na tumakbo sa mga ito. 921 00:46:18,970 --> 00:46:23,140 >> Ang pset na hindi ko pa baliw sa ganitong usapan ay pset6. 922 00:46:23,140 --> 00:46:25,837 Kaya narito kung paano mo 'd ipatupad a-- narito 923 00:46:25,837 --> 00:46:28,140 kung paano mo ipatupad pset6 sa sawa. 924 00:46:28,140 --> 00:46:32,680 Pagpapanatiling sa isip ang sawa cycle na disenyo, ang unang bagay 925 00:46:32,680 --> 00:46:34,760 na ginagawa mo kapag ikaw ay pagsulat ng mga programa ay check 926 00:46:34,760 --> 00:46:38,030 upang makita kung ang isang tao ay tapos na ito na. 927 00:46:38,030 --> 00:46:42,152 >> Sa katunayan, kung nais mong upang serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 ay humigit-kumulang na ito, maliban ito ay hindi dumating 929 00:46:44,110 --> 00:46:45,840 standard na naka-install sa Linux machine. 930 00:46:45,840 --> 00:46:50,490 Python ay, at ang sawa simple http server ay rin. 931 00:46:50,490 --> 00:46:54,717 Kung ikaw ay kailanman sa isang Linux machine, o ang Cloud9 IDE labas ng CS50 932 00:46:54,717 --> 00:46:57,550 at gusto mo na maglingkod sa kasalukuyang ito direktoryo sa isang partikular na port, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer Naghahain port na iyon. 934 00:47:04,610 --> 00:47:07,190 Maaari mo ring i-import ang mga simpleng http server 935 00:47:07,190 --> 00:47:11,240 at ito ay nakuha ng isang pulutong ng mga pag-andar kung gusto mong i-customize ang mga ito, o baguhin ang mga ito, 936 00:47:11,240 --> 00:47:15,860 o ay tatakbo pakinabangan it-- ito sa patakbuhin ang iyong sariling mga serbisyo server. 937 00:47:15,860 --> 00:47:18,032 >> Kaya na Python sa isang maikling salita. 938 00:47:18,032 --> 00:47:20,280 At ito ay CS50. 939 00:47:20,280 --> 00:47:21,980 Salamat. 940 00:47:21,980 --> 00:47:23,468