1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-YOO: Hi, Saya Ross. 3 00:00:06,800 --> 00:00:08,570 Dan ini adalah satu seminar CS50. 4 00:00:08,570 --> 00:00:12,100 Ia akan membawa anda dari program dalam C untuk pengaturcaraan Python. 5 00:00:12,100 --> 00:00:15,120 >> Python adalah bahasa skrip. 6 00:00:15,120 --> 00:00:17,870 Ia adalah sebahagian besarnya seperti C dalam sintaks, walaupun sesetengah 7 00:00:17,870 --> 00:00:20,390 butir-butir teknikal bagaimana sintaks yang mendapat dilaksanakan 8 00:00:20,390 --> 00:00:22,240 yang sedikit berbeza. 9 00:00:22,240 --> 00:00:24,780 Ia adalah kurang berkuasa daripada C dalam beberapa cara. 10 00:00:24,780 --> 00:00:28,130 Ia adalah kurang ekspresif untuk di mana sebenarnya dalam komputer anda 11 00:00:28,130 --> 00:00:30,030 memori mendapat dibentangkan, bagaimana ia akan dibentangkan, 12 00:00:30,030 --> 00:00:32,030 apabila ia mendapat kebebasan, dan orang macam perkara. 13 00:00:32,030 --> 00:00:36,150 >> Ia lebih berguna daripada C dalam beberapa cara, kerana lebih mudah untuk program dalam. 14 00:00:36,150 --> 00:00:39,920 Bahasa ini adalah, untuk beberapa orang, lebih intuitif. 15 00:00:39,920 --> 00:00:44,820 Dan benar-benar, matlamatnya adalah untuk ia menjadi lebih cepat untuk program 16 00:00:44,820 --> 00:00:46,490 dan berpotensi lebih perlahan untuk melaksanakan. 17 00:00:46,490 --> 00:00:48,198 >> Sekarang jika anda berfikir tentang jumlah masa 18 00:00:48,198 --> 00:00:50,514 anda dibelanjakan untuk yang terakhir masalah menetapkan secara bertulis 19 00:00:50,514 --> 00:00:52,430 kod anda terhadap jumlah masa yang anda menghabiskan 20 00:00:52,430 --> 00:00:55,310 pada masalah terakhir anda menetapkan melaksanakan kod anda, 21 00:00:55,310 --> 00:00:58,300 anda akan membayangkan bahawa bahasa yang merupakan dua kali lebih cepat untuk menulis, 22 00:00:58,300 --> 00:01:02,170 dan dua kali lebih lambat untuk melaksanakan, mungkin menjadi satu peningkatan berbanding C dalam beberapa cara. 23 00:01:02,170 --> 00:01:05,730 Sudah tentu apabila anda cuba untuk menulis program kecil untuk melakukan perkara-perkara kecil, 24 00:01:05,730 --> 00:01:08,520 Python adalah bahasa berguna pilihan. 25 00:01:08,520 --> 00:01:10,620 >> Dan pada akhir ini seminar, saya berharap anda akan 26 00:01:10,620 --> 00:01:12,950 dapat membuat pilihan dalam projek akan datang 27 00:01:12,950 --> 00:01:17,710 kira-kira yang bahasa adalah betul untuk digunakan, bukan idea yang 28 00:01:17,710 --> 00:01:21,405 yang satu bahasa yang lebih membetulkan semua masa. 29 00:01:21,405 --> 00:01:23,030 Beberapa perkara tentang apa seminar itu. 30 00:01:23,030 --> 00:01:25,910 Seminar ini tidak bertujuan untuk mengajar anda Python dari awal. 31 00:01:25,910 --> 00:01:28,310 Python adalah hampir sama kepada C, dan saya menganggap 32 00:01:28,310 --> 00:01:34,056 bahawa anda seorang pelajar CS50, atau seseorang dengan kebiasaan yang sama dengan C. 33 00:01:34,056 --> 00:01:36,700 >> Jika anda seorang pelajar CS50 atasi masalah menetapkan 6, 34 00:01:36,700 --> 00:01:38,866 supaya anda telah melihat banyak perkara-perkara dalam C, saya akan memberikan anda 35 00:01:38,866 --> 00:01:40,740 perbezaan utama, dan beberapa perkara 36 00:01:40,740 --> 00:01:42,840 yang membuat Python yang berbeza dan khas dan berguna, 37 00:01:42,840 --> 00:01:45,256 tetapi saya tidak akan pergi untuk apa bahasa pengaturcaraan adalah 38 00:01:45,256 --> 00:01:46,920 dan bagaimana untuk menulis program. 39 00:01:46,920 --> 00:01:49,820 Walau bagaimanapun, seminar ini akan mengajar anda untuk menulis program Python 40 00:01:49,820 --> 00:01:52,310 jika anda salah seorang daripada orang-orang kumpulan. 41 00:01:52,310 --> 00:01:54,820 Sekali lagi kita akan melihat bagaimana anda akan melaksanakan psets-- 42 00:01:54,820 --> 00:01:57,550 yang perlu 1-6 dalam Python-- dan memberi petunjuk 43 00:01:57,550 --> 00:02:00,322 dokumentasi rasmi untuk rujukan masa depan. 44 00:02:00,322 --> 00:02:03,030 Perkara lain yang penting tentang bagaimana ceramah ini diberikan, 45 00:02:03,030 --> 00:02:05,360 video ini akan menjadi dalam talian, ihsan CS50, 46 00:02:05,360 --> 00:02:07,550 jadi anda tidak perlu berasa seperti anda perlu mengambil nota. 47 00:02:07,550 --> 00:02:11,180 Anda sentiasa boleh pergi ke belakang dan melihat di kemudian sebagai rujukan. 48 00:02:11,180 --> 00:02:13,340 Selain itu slaid yang ada sekarang 49 00:02:13,340 --> 00:02:16,480 di laman web ini, yang sepatutnya membawa anda melakukan doc Google. 50 00:02:16,480 --> 00:02:21,010 Ia adalah satu versi yang sedikit dipendekkan apa yang saya menunjukkan pada skrin. 51 00:02:21,010 --> 00:02:24,850 >> Satu kaveat berhati-hati sebelum kita melompat, Python 3 52 00:02:24,850 --> 00:02:26,700 adalah bahasa yang berbeza daripada Python 2. 53 00:02:26,700 --> 00:02:30,020 Mereka kelihatan banyak yang sama; disana ada perbezaan teknikal yang sangat sedikit 54 00:02:30,020 --> 00:02:32,530 yang akan menyebabkan program ditulis dalam Python 2 55 00:02:32,530 --> 00:02:37,140 tidak dapat dilaksanakan dalam persekitaran Python 3. 56 00:02:37,140 --> 00:02:41,969 >> Perkakas CS50 datang dengan Python, secara lalai ia menggunakan Python 2. 57 00:02:41,969 --> 00:02:44,010 Anda boleh menyemak ini dengan menaip dalam baris arahan anda 58 00:02:44,010 --> 00:02:51,310 --version python, yang sepatutnya output 2.7.6 perkakas semasa. 59 00:02:51,310 --> 00:02:53,580 Cuba Python 3, yang tidak bekerja dalam perkakas, 60 00:02:53,580 --> 00:02:58,500 jika Python ingkarnya 2.X.Y, sama ada pada perkakas atau pada mesin anda sendiri. 61 00:02:58,500 --> 00:03:03,730 Anda perlu menggantikan Python 3 bila-bila masa dalam ceramah ini yang saya tulis Python. 62 00:03:03,730 --> 00:03:05,760 Jika mesin anda berjalan 2 secara lalai, jenis 63 00:03:05,760 --> 00:03:09,770 Python 3 untuk dapat benar-benar ikut bersama-sama dan melaksanakan perkara-perkara ini. 64 00:03:09,770 --> 00:03:12,280 >> Selain itu, saya akan menunjukkan anda pada sumber-sumber rasmi sekarang. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V-hati bahawa itu adalah satu 3 dan bukan 2-- 66 00:03:16,082 --> 00:03:17,030 mempunyai rujukan yang berguna. 67 00:03:17,030 --> 00:03:19,280 Tutorial akan membawa anda melalui banyak perkara yang sama 68 00:03:19,280 --> 00:03:21,460 yang saya lakukan sekarang, kecuali dalam bentuk teks. 69 00:03:21,460 --> 00:03:23,725 Rujukan adalah berguna sebagai rujukan untuk bahasa, 70 00:03:23,725 --> 00:03:26,100 dan Perpustakaan Standard memberikan anda beberapa sambungan 71 00:03:26,100 --> 00:03:27,770 dengan fungsi tambahan. 72 00:03:27,770 --> 00:03:31,300 >> Jadi program Python yang pertama. 73 00:03:31,300 --> 00:03:34,410 Di sebelah kiri kita mempunyai standard C, di sebelah kanan, kita ada Python. 74 00:03:34,410 --> 00:03:36,780 Anda mungkin telah diiktiraf masalah ini, ia 75 00:03:36,780 --> 00:03:40,760 salah satu masalah pertama set dalam CS50, dan ini 76 00:03:40,760 --> 00:03:42,677 menyelesaikannya menggunakan penyelesaian yang sama. 77 00:03:42,677 --> 00:03:45,010 Sekarang, sebab-sebab yang kami menyaksikan bahagian ini menyebelah 78 00:03:45,010 --> 00:03:46,830 begitu kita boleh melihat perbezaan sintaksis. 79 00:03:46,830 --> 00:03:49,580 Salah satu gajah di dalam bilik yang anda mungkin perasan betul 80 00:03:49,580 --> 00:03:56,350 off kelawar, adalah bahawa Python tidak mempunyai pembalut Fungsi utama sekitar kod. 81 00:03:56,350 --> 00:03:59,170 Jadi, dalam C, anda menulis sekumpulan fail, anda menghubungkan mereka bersama-sama, 82 00:03:59,170 --> 00:04:02,590 dan program bermula melaksanakan pada perkara ini dipanggil int utama. 83 00:04:02,590 --> 00:04:04,930 >> Dalam Python, anda menulis fail anda, melaksanakan fail, 84 00:04:04,930 --> 00:04:07,882 program bermula melaksanakan di bahagian atas fail. 85 00:04:07,882 --> 00:04:09,590 Jadi ia akan mula di bahagian atas fail 86 00:04:09,590 --> 00:04:11,280 pergi ke bawah sehingga ia mencari sesuatu yang lain. 87 00:04:11,280 --> 00:04:14,440 Jika ia mendapati definisi fungsi, ia tidak akan benar-benar melaksanakan kod itu, 88 00:04:14,440 --> 00:04:15,940 ia hanya akan menentukan fungsi. 89 00:04:15,940 --> 00:04:18,459 Tetapi di sini, apabila pertama program adalah n sama dengan 10, 90 00:04:18,459 --> 00:04:21,273 perkara pertama yang program ini akan lakukan ialah mengambil nilai ini daripada 10 91 00:04:21,273 --> 00:04:24,120 dan menetapkan ia ke dalam pembolehubah yang dipanggil n. 92 00:04:24,120 --> 00:04:27,690 >> Bercakap talian itu, salah satu daripada lain things-- sorry-- ini 93 00:04:27,690 --> 00:04:31,040 bermakna bahawa program C, anda akan menulis mereka, 94 00:04:31,040 --> 00:04:34,899 anda akan membuat mereka yang akan sembah beberapa arahan dilafaz, 95 00:04:34,899 --> 00:04:36,690 dan kemudian anda akan menjalankan menyebabkan laku. 96 00:04:36,690 --> 00:04:41,030 Program Python, anda menjalankan teks file-- mario.py ini mungkin 97 00:04:41,030 --> 00:04:44,900 menjadi fail ini bahawa saya hanya menunjukkan atasmu, anda akan menjalankan fail yang 98 00:04:44,900 --> 00:04:47,450 dan anda akan melaksanakan, dan kandungan ia 99 00:04:47,450 --> 00:04:50,390 akan dilaksanakan oleh penterjemah Python. 100 00:04:50,390 --> 00:04:52,470 Anda boleh melakukan ini dalam IDE anda. 101 00:04:52,470 --> 00:05:02,260 >> Jadi, jika saya mempunyai fail Hello, yang hanya mempunyai kandungan ini. 102 00:05:02,260 --> 00:05:04,840 Ini sebenarnya Python 2, tidak Python 3, maka janganlah kamu 103 00:05:04,840 --> 00:05:06,600 bimbang tentang sintaks buat masa ini. 104 00:05:06,600 --> 00:05:14,230 Tetapi saya akan menjalankan Python, pada hello.py, dan ia berjalan. 105 00:05:14,230 --> 00:05:18,890 >> Cara lain yang boleh saya gunakan Python yang Saya tidak akan berurusan dengan begitu banyak dalam ceramah ini, 106 00:05:18,890 --> 00:05:21,840 jika saya hanya menaip Python, ia jatuh aku ke dalam persekitaran di mana 107 00:05:21,840 --> 00:05:24,370 Saya boleh memberi makan Python baris demi baris. 108 00:05:24,370 --> 00:05:31,260 Jadi di sini, jika saya menaip ruang cetak 'hello, dunia'. 109 00:05:31,260 --> 00:05:32,360 Jenis masuk. 110 00:05:32,360 --> 00:05:37,430 Ia akan meludah saya bahawa menyokong keputusan bahawa garis individu serta-merta. 111 00:05:37,430 --> 00:05:38,470 >> Ini mungkin berguna. 112 00:05:38,470 --> 00:05:40,700 Dalam ceramah ini, saya akan melakukan perkara-perkara pada slaid. 113 00:05:40,700 --> 00:05:43,940 Dan supaya anda akan dapat mengikuti bersama-sama sama ada di sini, atau dengan menulis 114 00:05:43,940 --> 00:05:45,725 fail sebenar dan kemudian melaksanakan mereka. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Tetapi, akan kembali kepada ini kod, satu lagi perkara 117 00:05:50,995 --> 00:05:53,230 bahawa anda mungkin mempunyai noticed-- baik, ada 118 00:05:53,230 --> 00:05:55,980 dua perkara yang anda mungkin notis mengenai blok-blok. 119 00:05:55,980 --> 00:05:59,280 Yang pertama, dan bukan yang lebih biasa, adalah bahawa Python tidak mempunyai koma bertitik trailing. 120 00:05:59,280 --> 00:06:02,630 >> Koma bertitik adalah pilihan di mana-mana dan tidak merbahaya mana-mana. 121 00:06:02,630 --> 00:06:03,722 Anda boleh menambah mereka. 122 00:06:03,722 --> 00:06:06,430 Ia mungkin membuat orang yang menulis Python untuk kekek hidup pada anda 123 00:06:06,430 --> 00:06:08,860 di belakang anda, kerana mereka tidak perlu. 124 00:06:08,860 --> 00:06:13,497 Mereka sering tanda yang diadakan selama dari C. pereka bahasa 125 00:06:13,497 --> 00:06:16,580 merasakan bahawa ia adalah lebih jelas cara ini dan bahawa ia tidak perlu untuk mengisytiharkan 126 00:06:16,580 --> 00:06:18,700 setiap kali anda menamatkan satu barisan. 127 00:06:18,700 --> 00:06:21,799 >> Satu lagi perkara pelik tentang n ini adalah ia tidak mempunyai jenis yang dilampirkan. 128 00:06:21,799 --> 00:06:24,590 Salah satu bahagian keajaiban Python-- dan saya akan memanggilnya sihir, 129 00:06:24,590 --> 00:06:26,381 tetapi ada sangat sebab-sebab teknikal mengapa ia 130 00:06:26,381 --> 00:06:28,560 works-- salah satu daripada keping keajaiban Python 131 00:06:28,560 --> 00:06:32,700 ialah pembolehubah boleh mengembangkan atau menguncup kepada apa sahaja yang mengandungi data 132 00:06:32,700 --> 00:06:34,530 jenis yang anda mahu mereka. 133 00:06:34,530 --> 00:06:35,580 >> Jadi ini adalah satu 10. 134 00:06:35,580 --> 00:06:40,060 Jika kemudian ke saya ditugaskan untuk ini n 0.5, ia akan mengambil masa yang 0.5. 135 00:06:40,060 --> 00:06:43,770 Tidak kira bahawa itu int sini dan terapung di sana, apa-apa yang menggunakan n ini 136 00:06:43,770 --> 00:06:47,057 akan, lebih kurang, dapat bunyi letusan kecil bersama-sama jika ia menjadi salah seorang daripada mereka. 137 00:06:47,057 --> 00:06:49,640 Kecuali ada beberapa yang amat nyata sebab mengapa ia tidak boleh menggunakan data 138 00:06:49,640 --> 00:06:52,170 menaip yang n kini mempunyai, di mana titik ia akan mendapat 139 00:06:52,170 --> 00:06:54,490 desak dan membuang kesilapan, dan orang-orang macam perkara. 140 00:06:54,490 --> 00:06:57,050 >> Tetapi di sini, Python tidak benar-benar peduli apa 141 00:06:57,050 --> 00:06:59,140 ia adalah bahawa saya akan melekat dalam ini ayat, seperti, anda mahu perkara ini? 142 00:06:59,140 --> 00:06:59,840 Ini perkara dalam itu? 143 00:06:59,840 --> 00:07:00,640 Ya, ia adalah jenis perkara yang. 144 00:07:00,640 --> 00:07:01,810 Saya akan melekat pada akhirnya. 145 00:07:01,810 --> 00:07:04,740 Ia akan menjadi masalah di kemudian hari, jika seseorang yang mahu menggunakan hujung yang 146 00:07:04,740 --> 00:07:05,710 tidak boleh mengendalikan. 147 00:07:05,710 --> 00:07:08,500 Ini adalah salah satu yang utama perbezaan antara Python dan C 148 00:07:08,500 --> 00:07:10,790 yang menjadikan ia mudah untuk menulis program yang sangat besar C 149 00:07:10,790 --> 00:07:15,120 dan menjadikannya lebih mudah untuk menulis program Python yang sangat kecil. 150 00:07:15,120 --> 00:07:19,564 >> Secara sintaks tidak begitu yang berbeza dalam apa yang dilakukan. 151 00:07:19,564 --> 00:07:21,480 Ia sedikit berbeza dalam bagaimana ia dinyatakan. 152 00:07:21,480 --> 00:07:25,370 Jadi ini adalah sangat, apa yang dipanggil Pythonic, cara menulis. 153 00:07:25,370 --> 00:07:28,969 untuk baris dalam julat (n), ini adalah julat nombor dari 0 hingga n, 154 00:07:28,969 --> 00:07:31,010 termasuk di bahagian bawah dan eksklusif di atas. 155 00:07:31,010 --> 00:07:34,790 Jadi ia adalah dari 0 ke n-1, iaitu apa kod C yang dilakukan, 156 00:07:34,790 --> 00:07:38,690 kecuali ia lebih mudah untuk melihat mungkin. 157 00:07:38,690 --> 00:07:42,710 >> Blok berkaitan adalah tidak ditolak oleh penyokong gigi, 158 00:07:42,710 --> 00:07:44,540 sebaliknya ia ditolak oleh lekukan ini. 159 00:07:44,540 --> 00:07:47,580 Jadi semua ayat-ayat ini adalah empat ruang ke kanan, 160 00:07:47,580 --> 00:07:50,410 atau seperti mengenai lebar gajah. 161 00:07:50,410 --> 00:07:54,570 Dan orang-orang adalah orang-orang yang akan dilaksanakan dalam ini untuk. 162 00:07:54,570 --> 00:07:57,020 Jika saya merosakkan lekukan pada ini dan saya 163 00:07:57,020 --> 00:08:01,420 menolak cetak yang kembali ke lekukan asal, 164 00:08:01,420 --> 00:08:04,320 cetak yang akan meninggalkan untuk gelung. 165 00:08:04,320 --> 00:08:08,560 Berbeza dengan C, di mana di sini saya sebenarnya perlu bergerak yang bersedia tertutup sekitar. 166 00:08:08,560 --> 00:08:11,820 >> Ini bermakna bahawa anda tidak mendapat ralat yang melompat keluar pada anda kerana anda 167 00:08:11,820 --> 00:08:13,580 meletakkan dua gol di tempat yang salah. 168 00:08:13,580 --> 00:08:16,460 Ia tidak bermakna bahawa anda mendapat ralat yang melompat keluar pada anda kerana anda 169 00:08:16,460 --> 00:08:17,620 dilekukan yang salah talian. 170 00:08:17,620 --> 00:08:19,290 Jadi ia membuatkan lekuk super-hati. 171 00:08:19,290 --> 00:08:22,123 Mudah-mudahan anda menjadi super berhati-hati dengan lekukan anda anyway, 172 00:08:22,123 --> 00:08:25,300 dan sebagainya ini tidak begitu lebih banyak daripada beban. 173 00:08:25,300 --> 00:08:28,762 >> Tetapi peraturan asas untuk Python, dan kami akan mempunyai beberapa ini 174 00:08:28,762 --> 00:08:30,970 bahawa kita akan melalui melalui semasa ceramah tersebut, 175 00:08:30,970 --> 00:08:33,840 yang cuba sintaks semula jadi sebelum melihat apa-apa sehingga. 176 00:08:33,840 --> 00:08:37,610 Jadi sintaks ini, untuk nombor ini dalam rangkaian, 177 00:08:37,610 --> 00:08:41,460 adalah sangat berbeza dari segi gaya. 178 00:08:41,460 --> 00:08:45,260 Banyak perkara dalam Python kita akan melihat mengambil borang ini. 179 00:08:45,260 --> 00:08:47,420 >> Dan jadi jika anda datang dengan objek baru yang anda 180 00:08:47,420 --> 00:08:50,870 fikir anda akan dapat melelar ini, dalam format ini, 181 00:08:50,870 --> 00:08:53,720 ternyata ia mungkin menyokong format tersebut. 182 00:08:53,720 --> 00:08:56,990 Kami tidak akan pergi super mendalam dalam sebab teknikal mengapa yang benar. 183 00:08:56,990 --> 00:09:00,167 >> Tetapi ia adalah satu gerak hati berguna untuk mempunyai apabila anda menghampiri program Python, 184 00:09:00,167 --> 00:09:01,750 bahawa perkara ini hanya akan bekerja. 185 00:09:01,750 --> 00:09:03,020 Cuba ia. 186 00:09:03,020 --> 00:09:06,480 Boot Talian Perintah Interpreter, melihat jika ia berfungsi, 187 00:09:06,480 --> 00:09:09,827 bergerak dengan perkara-perkara, sebelum anda perlu untuk membuka Google dan berkata, 188 00:09:09,827 --> 00:09:11,660 apa yang sintaks untuk ini perkara tertentu? 189 00:09:11,660 --> 00:09:14,740 Banyak Python anda boleh menemui hanya dengan mencuba. 190 00:09:14,740 --> 00:09:19,005 >> Ini jika adalah lebih sama kepada C maka fors berada. 191 00:09:19,005 --> 00:09:20,380 Ambil perhatian bahawa tidak ada kurungan. 192 00:09:20,380 --> 00:09:23,490 Kurungan, sekali lagi, tidak berbahaya tetapi tidak perlu. 193 00:09:23,490 --> 00:09:25,750 Terdapat kolon pada akhir sama seperti untuk gelung, 194 00:09:25,750 --> 00:09:30,800 dan sekali lagi, blok relatif adalah tersusun dan bukannya ditolak oleh penyokong gigi. 195 00:09:30,800 --> 00:09:33,080 Lagi ini adalah pada yang asal Tahap lekukan, 196 00:09:33,080 --> 00:09:35,930 dan blok relevan dilekukan lagi. 197 00:09:35,930 --> 00:09:41,720 Mereka kerja betul-betul seperti yang mereka lakukan dalam C. 198 00:09:41,720 --> 00:09:44,520 >> Ini sebenarnya adalah lebih kurang sama. 199 00:09:44,520 --> 00:09:49,430 Sekali lagi, cetak kehilangan satu watak kira printf Anda lulus beberapa tali. 200 00:09:49,430 --> 00:09:51,520 Ternyata tali sama ada boleh ditandakan off 201 00:09:51,520 --> 00:09:53,562 oleh petikan tunggal atau petikan berganda. 202 00:09:53,562 --> 00:09:55,270 Tidak ada perbezaan, kecuali di dalam yang 203 00:09:55,270 --> 00:09:57,722 petikan tunggal anda boleh menggunakan tanda petik dengan meninggalkan, 204 00:09:57,722 --> 00:09:59,430 daripada harus melarikan diri semua daripada mereka. 205 00:09:59,430 --> 00:10:01,480 Dan di dalam tanda petik, anda boleh menggunakan tanda petikan tunggal dengan meninggalkan 206 00:10:01,480 --> 00:10:02,420 tanpa perlu melepaskan diri mereka. 207 00:10:02,420 --> 00:10:04,253 Jika anda mahu untuk campuran mereka, anda boleh pasti 208 00:10:04,253 --> 00:10:06,100 melihat dalam talian bagaimana untuk berbuat demikian. 209 00:10:06,100 --> 00:10:09,581 >> Anda akan melihat bahawa di sini, Saya telah diluluskan pada akhir = perkara ini. 210 00:10:09,581 --> 00:10:12,580 Ini adalah satu contoh pilihan hujah, yang merupakan salah satu daripada perkara-perkara 211 00:10:12,580 --> 00:10:14,990 yang Python menyokong bahawa menjadikan ia agak berguna. 212 00:10:14,990 --> 00:10:18,240 Jadi cetak sebenarnya mempunyai banyak hujah-hujah, yang biasanya 213 00:10:18,240 --> 00:10:20,140 menetapkan kepada default mereka nilai, tetapi di sini saya telah 214 00:10:20,140 --> 00:10:21,924 memutuskan untuk mengatasi yang bernama akhir. 215 00:10:21,924 --> 00:10:24,340 Sebab yang saya perlu mengatasinya dengan rentetan kosong 216 00:10:24,340 --> 00:10:26,756 adalah bahawa cetak dalam Python, oleh lalai, mencetak baris baru 217 00:10:26,756 --> 00:10:28,630 selepas perkara yang anda memberitahu juga. 218 00:10:28,630 --> 00:10:31,462 >> Jadi hash ini sebenarnya akan mencetak hash dalam garis baru. 219 00:10:31,462 --> 00:10:34,670 Dan jika saya tidak mahu hash untuk mencetak baris baru selepas itu, maka saya katakan 220 00:10:34,670 --> 00:10:35,340 tidak mencetak satu. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Tetapi, namun begitu, satu perkara terakhir yang program ini hilang seseorang itu adalah 223 00:10:43,690 --> 00:10:44,960 yang termasuk di bahagian atas. 224 00:10:44,960 --> 00:10:48,120 Cetak dibakar ke dalam Python jadi pada dasarnya bahawa tidak ada header atau modul 225 00:10:48,120 --> 00:10:49,869 bahawa anda perlu untuk termasuk, walaupun begitu, jika mahu 226 00:10:49,869 --> 00:10:52,029 untuk memasukkan perkara-perkara lain dalam skrip Python, 227 00:10:52,029 --> 00:10:55,320 Saya akan melakukannya dalam format-- yang hampir sama kata-kata yang hanya sedikit berbeza. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Saya nyatakan bahawa kita tidak perlu utama di sini, 230 00:11:01,360 --> 00:11:03,372 kerana Python bermula melaksanakan di bahagian atas. 231 00:11:03,372 --> 00:11:05,080 Jika saya mahu untuk membalut ini dalam satu majlis, saya 232 00:11:05,080 --> 00:11:07,667 akan melakukannya seperti saya this-- akan berkata def nama fungsi, 233 00:11:07,667 --> 00:11:10,500 hujah-hujah yang mungkin pergi di sini dan kami akan melihat beberapa orang-orang kemudian, kolon, 234 00:11:10,500 --> 00:11:13,040 dan sekali lagi, ini keseluruhan menolak blok 235 00:11:13,040 --> 00:11:16,810 adalah apa yang operasi menghalang untuk fungsi itu. 236 00:11:16,810 --> 00:11:18,560 Jadi ini adalah definisi fungsi. 237 00:11:18,560 --> 00:11:21,587 Dan ada perisytiharan, kemudian turun di sini, saya hanya boleh memanggil fungsi. 238 00:11:21,587 --> 00:11:23,920 Dan sekali lagi, program ini jurubahasa, bermula di bahagian atas, 239 00:11:23,920 --> 00:11:25,280 akan melihat ini adalah takrif. 240 00:11:25,280 --> 00:11:27,960 Ia tidak akan melaksanakan ini sehingga ia tiba di sini, dan kemudian ia seperti, oh 241 00:11:27,960 --> 00:11:30,860 kini anda telah memanggilnya, saya rasa saya perlu melaksanakannya. 242 00:11:30,860 --> 00:11:33,850 >> Satu perkara yang sangat biasa untuk melihat dalam fail Python, 243 00:11:33,850 --> 00:11:36,700 terutama fail Python yang dilepaskan kepada orang ramai 244 00:11:36,700 --> 00:11:41,650 dan dibangunkan oleh- dan maju dan dikekalkan, adalah sesuatu borang ini. 245 00:11:41,650 --> 00:11:44,540 Ini basically-- demikian kerana Python, anda mula di bahagian atas 246 00:11:44,540 --> 00:11:50,310 dan kemudian anda melaksanakan turun ke bawah, Saya jika saya hanya mempunyai Mario dipanggil di sini, 247 00:11:50,310 --> 00:11:54,190 kemudian bila-bila masa saya termasuk fail ini dalam fail lain, kerana saya mahu menggunakan 248 00:11:54,190 --> 00:11:58,580 adalah fungsi Mario, fail lain akan juga mempunyai panggilan ini kepada Mario di dalamnya. 249 00:11:58,580 --> 00:12:01,000 Dan apabila saya berlari fail itu, akan dipanggil Mario. 250 00:12:01,000 --> 00:12:04,520 >> Jadi ada kemungkinan bahawa saya hanya mahu menjalankan ini jika saya telah benar-benar 251 00:12:04,520 --> 00:12:07,290 dilaksanakan fail ini tertentu. 252 00:12:07,290 --> 00:12:11,520 Oleh itu, saya boleh balut ini dalam simpulan bahasa seperti ini, di mana saya berkata, 253 00:12:11,520 --> 00:12:14,820 jika nama pelaksanaan ini alam sekitar adalah utama, 254 00:12:14,820 --> 00:12:16,200 maka saya ingin melakukan semua ini. 255 00:12:16,200 --> 00:12:18,710 Jika tidak orang lain boleh use-- termasuk function-- saya 256 00:12:18,710 --> 00:12:22,510 fail saya, dan hanya untuk mendapatkan akses kepada fungsi-fungsi ini 257 00:12:22,510 --> 00:12:25,552 tanpa perlu menjalankan perkara-perkara yang saya ingin melaksanakan dalam fail ini. 258 00:12:25,552 --> 00:12:27,260 Ini adalah, sekali lagi, pilihan tetapi sangat umum. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Perkara-perkara ini adalah entirely-- sama antara C dan Python, 261 00:12:33,840 --> 00:12:35,100 pasti dalam 3. 262 00:12:35,100 --> 00:12:38,610 Saya rasa dalam 2, pengendali bahagian ini kadang-kadang memberikan anda kembali terapung apabila 263 00:12:38,610 --> 00:12:41,450 anda dibedah ints, dan sama ada anda mahu atau anda tidak. 264 00:12:41,450 --> 00:12:44,777 Tetapi campur, tolak, dan masa bekerja betul-betul seperti yang anda harapkan, 265 00:12:44,777 --> 00:12:46,110 kecuali atas lebih sedikit jenis. 266 00:12:46,110 --> 00:12:49,740 Jadi, anda boleh membiak terapung oleh ints, dan orang-orang macam perkara. 267 00:12:49,740 --> 00:12:52,480 >> set berfungsi sama. 268 00:12:52,480 --> 00:12:54,310 Anda boleh menggunakan dua tanda-tanda yang sama. 269 00:12:54,310 --> 00:12:59,000 inequals-- lebih besar daripada kurang, daripada, ini macam things-- 270 00:12:59,000 --> 00:13:02,580 mempunyai erti yang anda sudah biasa dengan mereka. 271 00:13:02,580 --> 00:13:05,770 >> Di mana C menggunakan operator ini, Python menggunakan lebih sedikit Bahasa Inggeris 272 00:13:05,770 --> 00:13:06,390 orang-orang yang boleh dibaca. 273 00:13:06,390 --> 00:13:09,348 Jadi, daripada dua, ampersands, anda literal taip perkataan "dan", "atau," 274 00:13:09,348 --> 00:13:10,740 atau tidak." 275 00:13:10,740 --> 00:13:13,420 Seperti dalam jika- anda dalam anda kenyataan bersyarat, 276 00:13:13,420 --> 00:13:17,670 yang kita lihat sebelum ini bahawa sintaks ini dalam C sepadan dengan sintaks ini dalam Python. 277 00:13:17,670 --> 00:13:21,010 Dan ada tidak banyak berbeza di sana, kecuali untuk sedikit 278 00:13:21,010 --> 00:13:24,780 tanda baca di bahagian sisi. 279 00:13:24,780 --> 00:13:28,890 Sekali lagi, di mana C akan lagi jika, Python menggunakan elif, 280 00:13:28,890 --> 00:13:33,960 tetapi ini adalah kebanyakannya perubahan paras permukaan. 281 00:13:33,960 --> 00:13:38,450 >> Lelaran seperti ini sering ditulis dalam simpulan bahasa ini dalam Python. 282 00:13:38,450 --> 00:13:42,350 Anda boleh mengeluarkan seperti ini perkara dengan gelung sementara di luar 283 00:13:42,350 --> 00:13:46,387 jika anda mahu, tetapi anda sudah tentu tidak perlu. 284 00:13:46,387 --> 00:13:48,970 Dan sekali lagi, jika anda mahu mencetak elemen dalam array 285 00:13:48,970 --> 00:13:50,560 anda mungkin melakukannya dengan cara ini. 286 00:13:50,560 --> 00:13:52,927 Salah satu perkara yang menyeronokkan tentang Python walaupun, 287 00:13:52,927 --> 00:13:54,760 adalah bahawa anda tidak perlu menggunakan paradigma ini, 288 00:13:54,760 --> 00:13:57,290 dan anda boleh menggunakan salah sedikit lebih elegan. 289 00:13:57,290 --> 00:13:59,370 Anda mengatakan yang di ary. 290 00:13:59,370 --> 00:14:02,980 >> Jadi, daripada pergi di sini dan berjalan ke atas indeks, 291 00:14:02,980 --> 00:14:05,630 dan kemudian menarik keluar unsur-unsur individu, 292 00:14:05,630 --> 00:14:08,644 anda memberitahu untuk untuk benar-benar hanya menjalankan lebih unsur-unsur sendiri. 293 00:14:08,644 --> 00:14:11,060 Dan kemudian apa sahaja yang anda lakukan dalam boleh beroperasi secara langsung 294 00:14:11,060 --> 00:14:13,260 pada unsur-unsur, yang cukup menyeronokkan. 295 00:14:13,260 --> 00:14:16,710 Dan kita akan see-- kami akan menggunakan simpulan bahasa itu berulang kali 296 00:14:16,710 --> 00:14:18,050 seperti yang kita berjalan melalui kod. 297 00:14:18,050 --> 00:14:20,091 >> Ini adalah, sekali lagi, contoh sesuatu yang saya akan 298 00:14:20,091 --> 00:14:23,300 memanggil Python sihir, walaupun terdapat sebab-sebab yang teknikal kenapa ia berfungsi. 299 00:14:23,300 --> 00:14:26,340 Dan ada perkara teknikal yang perlu benar mengenai lokasi untuk 300 00:14:26,340 --> 00:14:28,340 untuk ini untuk bekerja di belakang tabir. 301 00:14:28,340 --> 00:14:31,390 Masalahnya ialah bahawa kebanyakan jenis yang anda harapkan ini untuk bekerja 302 00:14:31,390 --> 00:14:36,610 mempunyai ini dilaksanakan untuk anda dalam bahasa yang terbina dalam. 303 00:14:36,610 --> 00:14:40,030 >> Satu lagi perkara yang ia akan lebih baik jika ini bekerja pada setiap bahasa, 304 00:14:40,030 --> 00:14:45,460 tetapi terdapat beberapa sebab mengapa ia tidak boleh, mencetak rentetan ini kali nombor ini. 305 00:14:45,460 --> 00:14:48,860 Rupa-rupanya dalam Python, ini tidak betul-betul apa yang anda akan suka, yang hanya menyeronokkan, 306 00:14:48,860 --> 00:14:52,840 dan bermakna bahawa kita boleh sebenarnya mengurangkan program ini, sekali lagi mario.c. 307 00:14:52,840 --> 00:14:57,150 Daripada iterating banyak, kita boleh katakan, saya mahu beberapa beberapa ruang, 308 00:14:57,150 --> 00:15:01,120 Saya hendak jumlah Hash, dan beberapa cincangan pada akhir. 309 00:15:01,120 --> 00:15:02,640 Dan sekali lagi, kami menggunakan format ini. 310 00:15:02,640 --> 00:15:05,340 >> Di sini, kita lulus dalam pembolehubah dengan cara ini. 311 00:15:05,340 --> 00:15:08,050 Sekali lagi, kita tidak perlu untuk mengatakan apa jenis pembolehubah ia adalah, 312 00:15:08,050 --> 00:15:11,322 dan satu-satunya masa kita akan mendapat ralat pada masa jangka. 313 00:15:11,322 --> 00:15:13,030 Apabila seseorang cuba untuk lulus sesuatu, 314 00:15:13,030 --> 00:15:14,860 ia akan datang ke majlis itu dengan baik. 315 00:15:14,860 --> 00:15:18,240 Jika kita baji di sini kerana ini bukan satu- perkara yang anda boleh membuat julat ke atas, 316 00:15:18,240 --> 00:15:22,100 Saya akan mendapat kesilapan runtime sana, dan saya akan mempunyai untuk debug dengan cara itu. 317 00:15:22,100 --> 00:15:25,050 Tetapi dalam pada itu, saya tidak mempunyai berhati-hati tentang apa yang 318 00:15:25,050 --> 00:15:32,800 mendapat diluluskan pada, selagi dalam sebenar pelaksanaan semuanya berfungsi dengan bersih. 319 00:15:32,800 --> 00:15:35,080 >> Saya juga boleh membuat ini pembersih sedikit 320 00:15:35,080 --> 00:15:41,770 menggunakan fungsi terbina khususnya pada tali, yang Justify kanan. 321 00:15:41,770 --> 00:15:45,250 Ini hanyalah satu fungsi yang berguna terletak di sekeliling perpustakaan. 322 00:15:45,250 --> 00:15:47,660 Ada dalam dokumentasi jika anda pergi dan mencarinya. 323 00:15:47,660 --> 00:15:51,650 Dan saya berkata, baik saya akan mempunyai rentetan ini, ada beberapa Hash, 324 00:15:51,650 --> 00:15:56,390 dan saya ingin untuk membenarkan hak pad kitab itu ia keluar dengan ruang untuk menjadi panjang ini. 325 00:15:56,390 --> 00:16:00,584 >> Sekali lagi, ini adalah dalam dokumentasi, yang membawa us-- 326 00:16:00,584 --> 00:16:03,500 Saya benar-benar akan klik melalui these-- yang membawa kita kepada peraturan kedua kami 327 00:16:03,500 --> 00:16:06,990 untuk Python-- perpustakaan standard kaedah fungsi adalah rakan anda. 328 00:16:06,990 --> 00:16:09,880 Dan ia sering bernilai manakala anda pergi mencari Saya tertanya-tanya 329 00:16:09,880 --> 00:16:12,310 jika ada satu perkara yang hanya melakukan ini. 330 00:16:12,310 --> 00:16:13,830 Ada mungkin. 331 00:16:13,830 --> 00:16:15,990 Jika anda ingin pad daripada tali, jika anda lebih 332 00:16:15,990 --> 00:16:17,470 ingin mengambil belakang separuh daripada tali, jika anda lebih 333 00:16:17,470 --> 00:16:20,370 suka mencari melalui tali, jika anda ingin untuk menghancurkan beberapa perkara 334 00:16:20,370 --> 00:16:22,420 bersama-sama dengan tali dengan koma di antara mereka, 335 00:16:22,420 --> 00:16:24,640 terdapat perpustakaan standard fungsi untuk melakukan ini. 336 00:16:24,640 --> 00:16:27,190 >> Dan ia membuatkan hidup anda lebih mudah jika anda menggunakan mereka 337 00:16:27,190 --> 00:16:29,240 bukannya melancarkan segala-galanya sendiri 338 00:16:29,240 --> 00:16:31,650 dalam lima baris kod sini, lima baris kod di sini. 339 00:16:31,650 --> 00:16:34,430 Yang benar-benar bermula pada menambah sehingga masa sebenar. 340 00:16:34,430 --> 00:16:37,430 >> Salah satu perkara yang menarik bagaimana ia mendapat dipanggil. 341 00:16:37,430 --> 00:16:39,980 Anda akan melihat bahawa ada satu perkara yang titik. 342 00:16:39,980 --> 00:16:43,490 Saya mempunyai beberapa objek di sebelah kiri, dan kemudian saya dipanggil titik fungsi. 343 00:16:43,490 --> 00:16:49,780 Ini adalah salah satu paradigma yang Python menggunakan untuk melampirkan kaedah untuk objek. 344 00:16:49,780 --> 00:16:54,410 Kami akan bercakap tentang apa yang ini adalah sangat ringkas pada akhirnya, 345 00:16:54,410 --> 00:16:58,510 tetapi tahu bahawa kami boleh beroperasi pada perkara dengan mengambil yang dot Perkara berkata 346 00:16:58,510 --> 00:17:01,690 apa sahaja, atau dengan menghubungi fungsi yang mengambil 347 00:17:01,690 --> 00:17:04,339 bahawa objek dan beberapa hujah-hujah lain. 348 00:17:04,339 --> 00:17:07,450 >> Jadi ini adalah kedua-dua cara yang kerja dilaksanakan dalam Python. 349 00:17:07,450 --> 00:17:09,780 Dan sama ada yang tertentu fungsi dilaksanakan 350 00:17:09,780 --> 00:17:14,230 dalam gaya ini atau ini gaya adalah sesuatu yang anda 351 00:17:14,230 --> 00:17:19,990 harus melihat ke atas sehingga anda mendapat hang yang mana satu ia mungkin jatuh ke dalam. 352 00:17:19,990 --> 00:17:22,660 Ada lebih kurang padu Falsafah di sebalik Python 353 00:17:22,660 --> 00:17:24,930 yang menyerap kebanyakannya dengan menulis banyak di dalamnya. 354 00:17:24,930 --> 00:17:28,190 Pada satu ketika, yang salah satu daripada sesuatu yang akan dilaksanakan sebagai 355 00:17:28,190 --> 00:17:29,470 menjadi semula jadi. 356 00:17:29,470 --> 00:17:32,420 Buat masa ini, ia hanya sesuatu anda belajar kerana anda memikirkan 357 00:17:32,420 --> 00:17:34,140 setiap perkara individu. 358 00:17:34,140 --> 00:17:36,420 >> Perpustakaan supaya standard fungsi adalah rakan-rakan anda, 359 00:17:36,420 --> 00:17:41,320 dan mereka membolehkan anda menulis perkara-perkara yang mengambil ruang sebanyak ini benar-benar tidak lama lagi, 360 00:17:41,320 --> 00:17:42,040 benar-benar elegan. 361 00:17:42,040 --> 00:17:45,670 Dan ini sebenarnya mungkin lebih dibaca, saya berkata, daripada program C 362 00:17:45,670 --> 00:17:46,780 di sana. 363 00:17:46,780 --> 00:17:49,730 Belum lagi fakta bahawa begitu singkat anda boleh muat gajah keseluruhan 364 00:17:49,730 --> 00:17:52,250 dalam ruang yang kami telah disimpan. 365 00:17:52,250 --> 00:17:56,270 >> Satu lagi perkara, ini adalah pelaksanaan yang mario itulah titik C, yang saya fikir 366 00:17:56,270 --> 00:17:57,890 adalah yang paling singkat anda boleh mendapatkannya. 367 00:17:57,890 --> 00:18:00,757 Ia tidak perlu mendapatkan int, tetapi ia Kod keras nilai 10 368 00:18:00,757 --> 00:18:02,090 cara yang sama yang satu ini tidak. 369 00:18:02,090 --> 00:18:06,080 Ternyata bahawa ini satu jam sekurang- 84 aksara, sedangkan Python adalah 64. 370 00:18:06,080 --> 00:18:11,490 Dan ini adalah tak terhingga lebih boleh dibaca daripada sampah ini di sini. 371 00:18:11,490 --> 00:18:14,610 Jadi Python adalah lebih cekap di angkasa. 372 00:18:14,610 --> 00:18:17,260 Ia sedikit kurang cekap dalam masa, tetapi tidak banyak. 373 00:18:17,260 --> 00:18:18,890 >> Senarai ini adalah satu perkara yang penting dalam Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Kami tidak pernah melihat mereka, tetapi mereka beroperasi sama seperti tatasusunan lakukan pada C. 376 00:18:24,587 --> 00:18:27,170 Jadi di sini, anda boleh mengisytiharkan mereka, anda boleh lulus mereka ke dalam perkara seperti ini. 377 00:18:27,170 --> 00:18:29,810 Sekarang dataran memegang pelbagai perkara-perkara ini. 378 00:18:29,810 --> 00:18:33,480 Sekali lagi, kami tidak diisytiharkan sebagai jenis, tetapi jika kita pernah cuba untuk menggunakannya, 379 00:18:33,480 --> 00:18:36,260 apa-apa yang anda harapkan untuk bekerja di pelbagai integer 380 00:18:36,260 --> 00:18:40,130 akan bekerja pada pelbagai integer. 381 00:18:40,130 --> 00:18:42,030 >> Ini adalah suatu perkara yang anda benar-benar tidak boleh 382 00:18:42,030 --> 00:18:47,390 lakukan dalam C, kerana memori ia begitu tangan ke atas, 383 00:18:47,390 --> 00:18:48,950 tetapi adalah sangat mudah untuk dilakukan dalam Python. 384 00:18:48,950 --> 00:18:55,310 Jika saya mahu pelbagai saya untuk menjadi lebih besar, saya boleh menambah unsur kepadanya dan ia adalah baik. 385 00:18:55,310 --> 00:18:57,150 >> Apa yang berlaku di belakang tabir? 386 00:18:57,150 --> 00:18:59,150 Jurubahasa itu akan pergi keluar dan mendapatkan beberapa ingatan, 387 00:18:59,150 --> 00:19:00,860 dan mungkin ia akan mendapat sedikit memori tambahan, 388 00:19:00,860 --> 00:19:03,090 jadi saya tidak jadi saya tidak mempunyai untuk realloc setiap masa. 389 00:19:03,090 --> 00:19:04,897 Tetapi berapa banyak mempunyai lebih banyak memori yang ia perlukan? 390 00:19:04,897 --> 00:19:06,730 Ini bukan keputusan yang perlu anda buat, 391 00:19:06,730 --> 00:19:10,540 ini adalah keputusan bahawa jurubahasa akan lakukan. 392 00:19:10,540 --> 00:19:12,270 >> Di sini kita melihat pelbagai boleh mengambil dua hujah, 393 00:19:12,270 --> 00:19:16,430 tetapi ia masih akan menjadi inklusif teratas supaya kita tambah 1 di sana. 394 00:19:16,430 --> 00:19:21,970 Ini adalah satu simpulan bahasa, yang merupakan lebih cara bijak untuk menulis perkara-perkara seperti ini. 395 00:19:21,970 --> 00:19:25,980 Ia dipanggil senarai kefahaman, dan di sini apa yang kita katakan 396 00:19:25,980 --> 00:19:32,560 yang saya ingin dimasukkan ke dalam i kuasa dua untuk setiap nilai i dalam julat ini. 397 00:19:32,560 --> 00:19:35,770 Ini perkara di sebelah kanan boleh menjadi satu lagi pelbagai, dan perkara ini di sebelah kiri 398 00:19:35,770 --> 00:19:40,740 menjadi apa-apa fungsi tertentu yang akan mengambil di i sebagai pembolehubah 399 00:19:40,740 --> 00:19:42,250 dan memberikan saya beberapa keputusan. 400 00:19:42,250 --> 00:19:43,480 >> Apa yang saya akan lakukan ialah, Saya akan membina 401 00:19:43,480 --> 00:19:46,200 pelbagai itu sahaja perkara-perkara ini bagi setiap nilai dalam julat ini. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 Dan ini adalah super elegan, super pendek, dan ia sangat jelas apa yang dimaksudkan. 404 00:19:55,670 --> 00:19:59,190 Ini adalah salah satu daripada things-- ini sekali lagi, 405 00:19:59,190 --> 00:20:03,860 salah satu daripada- sangat lambang yang sebab-sebab yang orang-orang seperti Python. 406 00:20:03,860 --> 00:20:05,900 Jika anda suka pengaturcaraan seperti ini, maka Python 407 00:20:05,900 --> 00:20:07,830 adalah bahasa yang anda mungkin suka untuk belajar. 408 00:20:07,830 --> 00:20:10,950 >> Dan sekali lagi, terdapat teknikal sebab-sebab mengapa ini berfungsi. 409 00:20:10,950 --> 00:20:14,730 Tetapi sejauh yang kami bimbang, kita lebih kurang tidak peduli. 410 00:20:14,730 --> 00:20:18,500 >> Jadi jika anda ingin mencetak senarai, beberapa simpulan bahasa yang sama adalah berguna. 411 00:20:18,500 --> 00:20:20,940 I dalam julat ini, kita boleh indeks melalui semua perkara 412 00:20:20,940 --> 00:20:23,140 dan kemudian mencetak mereka semua keluar. 413 00:20:23,140 --> 00:20:24,650 Dan anda akan lihat len ​​sini. 414 00:20:24,650 --> 00:20:27,150 Jika anda pernah mahu untuk mendapatkan panjang array, itu 415 00:20:27,150 --> 00:20:31,150 sangat mudah dalam Python, ia sangat sukar dalam C. 416 00:20:31,150 --> 00:20:33,720 Ini akan mencetak tepat apa yang anda harapkan kepada. 417 00:20:33,720 --> 00:20:36,986 Kami juga boleh, seperti yang kita lihat sebelum ini, melelar lebih elemen dalam array 418 00:20:36,986 --> 00:20:39,860 secara langsung, dan kemudian hanya bercakap tentang mereka, dan bukannya mempunyai indeks 419 00:20:39,860 --> 00:20:43,190 kembali ke dalam array setiap masa. 420 00:20:43,190 --> 00:20:45,990 >> Dan ini adalah satu perkara yang boleh anda lakukan. 421 00:20:45,990 --> 00:20:49,984 Jadi, dalam C, jika anda meminta sesuatu seperti ini, cetak akan berkata, 422 00:20:49,984 --> 00:20:51,150 itulah pelbagai integer. 423 00:20:51,150 --> 00:20:53,456 Yang pasti bukan tali, saya tidak boleh mencetaknya. 424 00:20:53,456 --> 00:20:54,830 Python lebih kurang tidak peduli. 425 00:20:54,830 --> 00:20:57,496 Ia seperti, ada cara yang saya boleh bertukar ini masuk ke rentetan? 426 00:20:57,496 --> 00:20:58,500 Ya, saya akan berbuat demikian. 427 00:20:58,500 --> 00:21:01,600 Oleh itu, saya hanya akan mencetak yang keluar. 428 00:21:01,600 --> 00:21:03,640 Ini bermakna bahawa anda boleh melakukan perkara-perkara like-- ini 429 00:21:03,640 --> 00:21:06,530 di kebanyakan bahagian keras permainan lima belas, yang ditulis 430 00:21:06,530 --> 00:21:08,930 secara ringkas dalam Python. 431 00:21:08,930 --> 00:21:11,320 >> Anda akan melihat bahawa ada sedikit daripada- sini 432 00:21:11,320 --> 00:21:14,441 Saya telah membuang integer ke tali, dan saya perlu melakukannya secara manual. 433 00:21:14,441 --> 00:21:16,190 Dan saya akan menambah kepada rentetan lain, 434 00:21:16,190 --> 00:21:17,590 atau sebaliknya Python mendapat keliru. 435 00:21:17,590 --> 00:21:19,840 Tetapi sama ada semasa anda berada menambah rentetan kepada integer, 436 00:21:19,840 --> 00:21:22,630 aku rasa untuk mendapatkan integer belakang atau rentetan kembali? 437 00:21:22,630 --> 00:21:24,480 Tetapi sekali lagi, jika anda hanya memanggil str pada sesuatu perkara, 438 00:21:24,480 --> 00:21:27,240 dan ia boleh dalam mana-mana mungkin dunia ditukar kepada rentetan, 439 00:21:27,240 --> 00:21:30,390 ia mungkin akan menjadi ditukar kepada rentetan. 440 00:21:30,390 --> 00:21:33,120 >> Di sini, kita dapat melihat penggunaan senarai bersarang kefahaman 441 00:21:33,120 --> 00:21:38,690 di sebelah kiri, beberapa pengindeksan, yang betul-betul seperti yang anda akan dapat digunakan untuk ia, 442 00:21:38,690 --> 00:21:40,060 dan beberapa mencetak perkara. 443 00:21:40,060 --> 00:21:42,560 Sekali lagi, kami telah ditakrifkan beberapa fungsi dan kita akan memanggil mereka turun 444 00:21:42,560 --> 00:21:45,820 di utama apabila kita benar-benar mendapatkan fail. 445 00:21:45,820 --> 00:21:52,004 kembali berfungsi sama seperti anda akan harapkan daripada bekerja dengan C. Cari, 446 00:21:52,004 --> 00:21:54,420 kita boleh menyediakan perkara-perkara seperti this-- inilah senarai kefahaman 447 00:21:54,420 --> 00:21:59,245 ada tugasan untuk berubah-ubah, dan kita sebenarnya boleh melakukannya lebih mudah. 448 00:21:59,245 --> 00:22:01,870 Kami tidak perlu menulis carian, kerana terbina dalam untuk bahasa 449 00:22:01,870 --> 00:22:04,230 adalah jika perkara ini adalah dalam pelbagai ini. 450 00:22:04,230 --> 00:22:05,680 Kembali benar, lain kembali palsu. 451 00:22:05,680 --> 00:22:08,830 Jadi itulah keseluruhan daripada find. 452 00:22:08,830 --> 00:22:12,230 >> Keseluruhan daripada jenis melibatkan memanggil jenis, 453 00:22:12,230 --> 00:22:15,462 yang is-- terdapat pelaksanaan ini dibina ke dalam perpustakaan C tertentu. 454 00:22:15,462 --> 00:22:17,170 Jika anda lebih suka ini jenis ke belakang, anda 455 00:22:17,170 --> 00:22:20,450 boleh mengatasi ini pilihan hujah secara terbalik dengan benar. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 Dan jika anda mahu untuk menyelesaikan lebih tali, yang dibina-dalam juga. 458 00:22:27,860 --> 00:22:31,950 >> Jadi ini bukan untuk mengatakan ini adalah perkara-perkara yang perlu anda lakukan setiap hari, 459 00:22:31,950 --> 00:22:34,280 tetapi idea adalah bahawa ini adalah falsafah Python, 460 00:22:34,280 --> 00:22:37,530 bahawa semua perkara ini yang anda sedang semacam mahu lakukan adalah terbina dalam. 461 00:22:37,530 --> 00:22:42,410 Dan fungsi yang paling standard, supaya jenis, panjang, apa sahaja, 462 00:22:42,410 --> 00:22:44,380 menyokong input yang paling logik yang waras. 463 00:22:44,380 --> 00:22:49,020 Anda memanggil len pada pelbagai yang sama cara yang anda memanggil len pada tali. 464 00:22:49,020 --> 00:22:55,785 Anda multiply-- anda menyusun rentetan cara yang sama anda menyusun tatasusunan. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Kebanyakan fungsi standard bahawa orang-orang membina, 467 00:23:00,740 --> 00:23:03,000 dan pihak ketiga paling perpustakaan yang orang 468 00:23:03,000 --> 00:23:06,980 membina, kerana mereka mencontohi reka bentuk perpustakaan standard, 469 00:23:06,980 --> 00:23:10,190 boleh dipanggil pada semua yang anda berada seperti, mengapa tidak ini hanya berfungsi, 470 00:23:10,190 --> 00:23:12,800 dalam C. Lebih atau kurang, ia akan bekerja dalam Python 471 00:23:12,800 --> 00:23:15,930 kerana orang bekerja di belakang kepada angka apa perkara yang ada dan kemudian beroperasi 472 00:23:15,930 --> 00:23:17,510 sewajarnya di atasnya. 473 00:23:17,510 --> 00:23:22,760 Jadi sekali lagi, latar belakang teknikal, tetapi ia menjadikan kehidupan kita lebih mudah sebagai pengaturcara. 474 00:23:22,760 --> 00:23:26,820 >> Jadi di sini adalah fail I / O. memfailkan I / O mempunyai banyak perkara-perkara kecil yang membuat ia rumit, 475 00:23:26,820 --> 00:23:29,890 dan sebagainya terdapat sumber-sumber dalam talian, tetapi secara ringkas, 476 00:23:29,890 --> 00:23:33,010 anda memanggil terbuka pada fail menamakan dengan jenis tertentu. 477 00:23:33,010 --> 00:23:37,640 Jadi yang yang membaca, membaca dan menulis, menulis atau menambah. 478 00:23:37,640 --> 00:23:41,790 Anda membaca sebilangan Watak dan anda mencetak mereka, 479 00:23:41,790 --> 00:23:42,595 anda akan mendapat Hello! 480 00:23:42,595 --> 00:23:43,970 Maksud saya, seperti fail ini telah Hello! 481 00:23:43,970 --> 00:23:46,480 Di dalamnya, hendaklah membaca, dan apa yang anda akan kembali 482 00:23:46,480 --> 00:23:49,520 adalah rentetan yang mempunyai semua negara lain di array, 483 00:23:49,520 --> 00:23:50,860 atau negara lain di fail. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Jika anda memanggil membaca sekali lagi, anda berada pada akhir fail, 486 00:23:56,055 --> 00:23:58,138 dan supaya anda tidak mendapat apa-apa dan jadi anda akan ditutup. 487 00:23:58,138 --> 00:24:02,510 Sekali lagi, ini adalah .close daripada tutup fail, kerana ia akan berada dalam C. 488 00:24:02,510 --> 00:24:07,190 Ini adalah lebih atau kurang kerana f adalah perkara, dan anda ingin untuk f untuk menutup. 489 00:24:07,190 --> 00:24:12,092 Tetapi fail asas I / O tidak terutamanya rumit. 490 00:24:12,092 --> 00:24:15,300 Sekali lagi, jika anda ingin membuka fail, jika anda akan suka membaca garis tertentu, 491 00:24:15,300 --> 00:24:17,870 anda boleh keluar dari tertentu garis ini-- ada dibina-in untuk itu. 492 00:24:17,870 --> 00:24:19,995 Jika anda lebih suka untuk menulis perkara, anda boleh menulis ini. 493 00:24:19,995 --> 00:24:23,412 Jika anda lebih suka untuk menulis individu gigitan, anda boleh menulis mereka. 494 00:24:23,412 --> 00:24:25,620 Dan jika anda mahu untuk melelar atas garis fail 495 00:24:25,620 --> 00:24:29,557 secara berasingan, seperti yang kita lakukan dalam sekeping dari beberapa minggu yang lalu, anda boleh berbuat demikian kepada. 496 00:24:29,557 --> 00:24:32,140 Sekali lagi, kebanyakan objek yang anda hendak ingin dapat untuk melelar 497 00:24:32,140 --> 00:24:33,780 iterating sokongan ke atas mereka. 498 00:24:33,780 --> 00:24:37,430 Dalam Pythons, fail adalah mungkin perkara yang Saya ingin untuk melelar baris demi baris. 499 00:24:37,430 --> 00:24:39,138 Jika ia adalah kamus yang kata-kata dan saya 500 00:24:39,138 --> 00:24:42,181 cuba untuk mendapatkan orang-orang individu kata-kata keluar, maka, dalam masa gelung ini, 501 00:24:42,181 --> 00:24:44,180 line ia akan menjadi setiap perkataan seterusnya dan ini 502 00:24:44,180 --> 00:24:47,880 akan dilaksanakan untuk setiap baris dalam fail sehingga akhir fail. 503 00:24:47,880 --> 00:24:52,280 Dan sekali lagi, jika saya dicetak setiap garis, garis datang dengan garis baru, 504 00:24:52,280 --> 00:24:54,740 jadi saya menetapkan akhirnya belakang untuk satu perkara yang seperti ini. 505 00:24:54,740 --> 00:24:56,580 Kemudian saya mendapatkan kandungan fail saya. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Perkara kedua yang beroperasi di beberapa cara seperti senarai, dan dalam beberapa cara 508 00:25:07,480 --> 00:25:11,870 sebagai sesuatu yang ketara lebih kuat, 509 00:25:11,870 --> 00:25:16,170 adalah kamus, yang benar-benar sejuk untuk digunakan tetapi pada dasarnya hash 510 00:25:16,170 --> 00:25:17,670 jadual dalam menyamar. 511 00:25:17,670 --> 00:25:23,330 Anda membuat satu dengan menggunakan tepat dua watak, yang menggerunkan 512 00:25:23,330 --> 00:25:25,959 jika anda cuba untuk melaksanakan jadual hash untuk set masalah anda, 513 00:25:25,959 --> 00:25:27,250 anda tahu sakit banyak yang boleh. 514 00:25:27,250 --> 00:25:29,390 Tetapi orang-orang telah melakukan , dan melakukannya dengan baik, 515 00:25:29,390 --> 00:25:32,260 bahawa anda tidak perlu bimbang mengenainya lagi. 516 00:25:32,260 --> 00:25:35,180 >> Kemudian anda boleh memasukkan perkara individu. 517 00:25:35,180 --> 00:25:38,110 Tables-- Hash atau kamus tidak terutamanya 518 00:25:38,110 --> 00:25:40,240 peduli apa yang anda menyimpan di dalamnya. 519 00:25:40,240 --> 00:25:44,210 Jadi, jika beberapa entri adalah nombor, dan beberapa entri adalah senarai, 520 00:25:44,210 --> 00:25:47,360 jika beberapa entri adalah kamus yang lain, dan beberapa entri adalah rentetan, 521 00:25:47,360 --> 00:25:49,930 Python tidak menjaga banyak. 522 00:25:49,930 --> 00:25:53,460 >> Sekali lagi, jika anda pergi ke dalamnya menjangkakan rentetan dan apa yang anda kembali 523 00:25:53,460 --> 00:25:56,269 adalah pelbagai, itulah masalah anda. 524 00:25:56,269 --> 00:25:58,810 Dan mungkin ia salah sesiapa fikir ia telah meletakkan sesuatu 525 00:25:58,810 --> 00:26:00,476 di dalam kamus, mungkin itu adalah anda. 526 00:26:00,476 --> 00:26:02,350 Jika itu adalah seseorang lagi, mudah-mudahan mereka 527 00:26:02,350 --> 00:26:04,520 berkelakuan baik tentang apa yang yang berlaku dalam kamus 528 00:26:04,520 --> 00:26:07,420 dan tidak meninggalkan apa-apa kesulitan untuk anda jatuh ke dalam. 529 00:26:07,420 --> 00:26:10,890 >> Tetapi fungsi standard akan memberikan anda kembali perkara yang berkelakuan baik. 530 00:26:10,890 --> 00:26:13,500 Supaya mereka berkata pulangan ini menyokong kamus yang tali, 531 00:26:13,500 --> 00:26:15,860 maka segala-galanya yang anda akan untuk keluar dari adalah rentetan. 532 00:26:15,860 --> 00:26:20,710 Jika anda melakukan ini dan ia dengan lawatan-lawatan kamu, baik, yang mungkin pada anda. 533 00:26:20,710 --> 00:26:25,542 Python tentunya memberikan anda cukup tali untuk menggantung diri anda, jika anda suka. 534 00:26:25,542 --> 00:26:28,250 Sekarang kita boleh mencetak individu unsur-unsur ini dan pulangan ini 535 00:26:28,250 --> 00:26:29,935 apa yang anda harapkan. 536 00:26:29,935 --> 00:26:32,810 Tepat sekali apa yang anda harapkan, saya rasa, adalah frasa yang saya menggunakan banyak, 537 00:26:32,810 --> 00:26:35,070 tetapi itu lebih kurang bagaimana Python berfungsi. 538 00:26:35,070 --> 00:26:39,880 Jika anda bertanya kepada sesuatu yang tidak ia, Python akan membuang kesilapan 539 00:26:39,880 --> 00:26:43,194 dan ia akan berhenti anda daripada apa jua program yang anda berada dalam. 540 00:26:43,194 --> 00:26:45,360 Ia benar-benar akan mencetak maklumat lebih daripada itu, 541 00:26:45,360 --> 00:26:49,110 ia akan menunjukkan atasmu, IA AKAN menambah baris, dan sebagainya. 542 00:26:49,110 --> 00:26:52,190 >> Dan, sekali lagi, mungkin kita mahu untuk melelar kamus 543 00:26:52,190 --> 00:26:54,410 dan mendapati semua barangan di dalamnya. 544 00:26:54,410 --> 00:26:57,440 Di sini kita iterating lebih dua perkara pada masa yang sama. 545 00:26:57,440 --> 00:27:03,040 Dan dengan itu kita akan buat dengan kunci, nilai, tetapi kemudian mencetak semua ini. 546 00:27:03,040 --> 00:27:06,300 >> Dan jika kita mahu cast-- jika kita benar-benar berlari ini, 547 00:27:06,300 --> 00:27:10,840 kita akan mempunyai beberapa masalah kerana pada-- apabila kita pergi kepada Daud; 548 00:27:10,840 --> 00:27:13,920 ia tidak boleh add-- jika kita tidak melemparkannya kepada rentetan pertama, 549 00:27:13,920 --> 00:27:17,802 kita tidak boleh menambah pelbagai yang tali ke tali. 550 00:27:17,802 --> 00:27:19,760 Tetapi jika kita melemparkannya kepada tali, kita mendapatkan sesuatu 551 00:27:19,760 --> 00:27:22,590 seperti ini, yang mungkin apa yang kita akan suka membaca. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> Dan ini adalah ejaan. 554 00:27:30,500 --> 00:27:32,460 Kita hanya membaca dalam sesuatu. 555 00:27:32,460 --> 00:27:35,770 Oleh itu, kita boleh membaca dalam perkataan individu sebagai baris. 556 00:27:35,770 --> 00:27:38,240 Kami memenggal terakhir perkara, supaya kolon tolak 1 557 00:27:38,240 --> 00:27:41,651 Chomp off perkara terakhir yang we-- aksara terakhir rentetan. 558 00:27:41,651 --> 00:27:42,150 Kami akan katakan. 559 00:27:42,150 --> 00:27:44,730 OK, setiap seorang daripada mereka mendapat dimasukkan ke dalam kamus ini, 560 00:27:44,730 --> 00:27:45,810 pemetaan untuk nilai 1. 561 00:27:45,810 --> 00:27:48,006 Kami tidak terutamanya mengambil berat tentang yang satu, 562 00:27:48,006 --> 00:27:51,130 tetapi ia hanya di sana untuk berkata, oh baik, Perkara ini saya akan dimasukkan ke dalam kamus. 563 00:27:51,130 --> 00:27:53,182 Kerana kemudian apa yang kita akan lakukan ialah kami 564 00:27:53,182 --> 00:27:55,390 akan berkata, dengan baik, jika ia dalam kamus sama sekali. 565 00:27:55,390 --> 00:27:57,650 >> Sekali lagi, semak ini untuk keahlian terpulang operasi 566 00:27:57,650 --> 00:28:00,940 menggunakan yang sama sekali berbeza algoritma daripada ia akan dalam senarai, 567 00:28:00,940 --> 00:28:05,709 tetapi kita panggil dengan cara yang sama, yang adalah sebahagian daripada bahawa lapisan Python gula 568 00:28:05,709 --> 00:28:07,250 perkara-perkara supaya mereka lebih mudah untuk digunakan. 569 00:28:07,250 --> 00:28:10,230 Dan sekali lagi, kita telah melihat perkara seperti ini sebelum ini. 570 00:28:10,230 --> 00:28:12,940 Ini pada dasarnya mencari, atau ia betul-betul sintaks yang sama 571 00:28:12,940 --> 00:28:16,480 seperti mencari, tetapi beroperasi lebih struktur yang berbeza. 572 00:28:16,480 --> 00:28:20,170 Dan kita tidak terutamanya mengambil berat. 573 00:28:20,170 --> 00:28:25,540 Jadi mereka adalah perkara yang anda telah diminta untuk melaksanakan untuk ejaan. 574 00:28:25,540 --> 00:28:29,278 Pada kadar ini, kita akan mendapat lebih kurang semua psets dilakukan. 575 00:28:29,278 --> 00:28:31,474 >> PENONTON: Supaya pada dasarnya hanya datang kembali 576 00:28:31,474 --> 00:28:34,852 sebagai salah dieja jika tidak sepadan sesuatu dalam kamus? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-YOO: Ya, ya. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 Dan sebagainya, ini adalah satu penyesuaian masalah menetapkan 580 00:28:40,880 --> 00:28:43,150 yang meminta anda untuk melakukan perkara tersebut. 581 00:28:43,150 --> 00:28:46,357 >> PENONTON: Kenapa garis tolak 1 di sana? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-YOO: Jadi apabila anda iterating 583 00:28:48,190 --> 00:28:50,300 atas fail yang meminta oleh garis-garis, garis 584 00:28:50,300 --> 00:28:53,900 datang dengan watak baris baru pada akhir kitab itu 1 tolak 585 00:28:53,900 --> 00:28:55,260 hanya untuk membeli-belah orang-orang di luar. 586 00:28:55,260 --> 00:28:59,549 Dan ini adalah fleksibel terutamanya cara mengindeks ke dalam sesuatu. 587 00:28:59,549 --> 00:29:01,590 Jadi jika anda mempunyai rentetan, dan anda ingin, baik saya 588 00:29:01,590 --> 00:29:05,340 akan bermula pada watak tiga dan saya akan pergi ke akhir. 589 00:29:05,340 --> 00:29:07,140 3 kolon akan melakukannya untuk anda. 590 00:29:07,140 --> 00:29:10,570 Jika anda seperti, saya ingin memulakan di bermula dan pergi ke tolak 1 lalu 591 00:29:10,570 --> 00:29:12,400 watak, kolon tolak 1. 592 00:29:12,400 --> 00:29:14,940 Dan jika anda mahu untuk pergi dari ketiga untuk tolak pertama, 593 00:29:14,940 --> 00:29:16,570 maka anda akan mengatakan 3 tolak 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Selain itu, jika anda mahu kepada indeks kepada perkara-perkara mengira dari belakang, 596 00:29:22,400 --> 00:29:24,470 anda hanya indeks dalam dengan nombor tolak. 597 00:29:24,470 --> 00:29:26,980 Dan kerana, di mana C akan meletup atau mungkin 598 00:29:26,980 --> 00:29:31,090 memberi makan kepada kamu memori lain yang anda tidak mempunyai akses kepada, mendengar anda boleh mengatakan tolak 1 599 00:29:31,090 --> 00:29:34,104 ertinya lepas tetapi 1 watak dalam rentetan. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Modul version-- adalah analog kepada perpustakaan dalam C 602 00:29:43,590 --> 00:29:45,119 dan berguna untuk banyak perkara. 603 00:29:45,119 --> 00:29:46,910 Banyak perkara yang hendak suka untuk Python, 604 00:29:46,910 --> 00:29:50,040 selain mudah manipulasi pembolehubah, 605 00:29:50,040 --> 00:29:52,290 anda mahu menyambung ke dalam perpustakaan yang lebih besar dengan yang lebih besar 606 00:29:52,290 --> 00:29:55,910 antara muka dan banyak lagi keupayaan untuk berinteraksi 607 00:29:55,910 --> 00:29:57,195 dengan bahagian-bahagian lain di dunia. 608 00:29:57,195 --> 00:29:58,910 sys adalah salah satu dengan sekumpulan alat 609 00:29:58,910 --> 00:30:01,159 yang berguna untuk berinteraksi dengan sistem itu sendiri 610 00:30:01,159 --> 00:30:05,050 dan akan mengimportnya seperti sys import. 611 00:30:05,050 --> 00:30:07,820 >> Ada lagi dokumentasi daripada itu, yang anda boleh pergi di sini, 612 00:30:07,820 --> 00:30:11,490 atau anda boleh mencari di Google dengan Googling Python sys. 613 00:30:11,490 --> 00:30:12,640 Anda menaip masuk. 614 00:30:12,640 --> 00:30:15,140 Pautan pertama akan menjadi dokumentasi dalam Python 2, 615 00:30:15,140 --> 00:30:19,260 laluan kedua akan menjadi dokumentasi Python 3. 616 00:30:19,260 --> 00:30:24,830 >> Dan jika kita menulis daripada fail yang kelihatan seperti this-- Jika khususnya, kami 617 00:30:24,830 --> 00:30:27,910 melihat beroperasi pada hujah baris arahan, 618 00:30:27,910 --> 00:30:30,040 seperti yang kita belajar untuk melakukan yang awal dalam kelas ini. 619 00:30:30,040 --> 00:30:32,190 Ini tidak sukar. Anda boleh keluar argv, 620 00:30:32,190 --> 00:30:34,565 yang merupakan salah satu daripada perkara-perkara yang dilaksanakan oleh sys. 621 00:30:34,565 --> 00:30:37,210 Ia tidak terbina dalam untuk pakej asas, tetapi sekali lagi, anda 622 00:30:37,210 --> 00:30:40,080 boleh melanjutkannya dengan mengimport bahawa fungsi dari sys. 623 00:30:40,080 --> 00:30:41,090 Anda akan memanggilnya sys. 624 00:30:41,090 --> 00:30:42,611 apa-apa sahajalah. 625 00:30:42,611 --> 00:30:43,360 Di sini ada argv. 626 00:30:43,360 --> 00:30:45,193 Ada sebenarnya tidak argc dalam sys, kerana anda 627 00:30:45,193 --> 00:30:47,880 boleh mendapatkannya dengan mudah dengan menghubungi len. 628 00:30:47,880 --> 00:30:55,390 Kami kemudian dicetak yang keluar, maka kita berlari echo-args.py terminal kami. 629 00:30:55,390 --> 00:30:58,360 Kita kembali pelbagai, yang hujah pertama ini. 630 00:30:58,360 --> 00:31:02,240 Sekali lagi, ini adalah argv 0, yang merupakan menamakan benda itu yang mendapat dipanggil. 631 00:31:02,240 --> 00:31:04,870 Jika kita memanggilnya dengan tambahan hujah, kita akan kembali orang-orang. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Ini adalah salah satu cara untuk mendapatkan hujah baris arahan. 634 00:31:09,770 --> 00:31:13,440 Jika anda mahu bendera di mana anda menghidupkan perkara tertentu pada atau mengatasi 635 00:31:13,440 --> 00:31:16,050 kegagalan tertentu, argparse adalah rakan anda. 636 00:31:16,050 --> 00:31:21,550 Dan sekali lagi anda mencari dalam talian yang di python argparse di Google. 637 00:31:21,550 --> 00:31:24,300 >> Terdapat beberapa utiliti modul yang anda mendapati diri anda menggunakan 638 00:31:24,300 --> 00:31:27,630 dan sekali lagi, jika anda menghabiskan masa apa-apa bahasa ini mengimport jsons 639 00:31:27,630 --> 00:31:33,300 untuk membaca dalam dan di luar json fail, bukan yang rumit. 640 00:31:33,300 --> 00:31:37,139 Anda membuka fail, anda dipanggil json.load dalam fail itu dan anda mendapat kembali apa-apa. 641 00:31:37,139 --> 00:31:37,930 Apakah perkara itu? 642 00:31:37,930 --> 00:31:40,329 Ia adalah satu objek JSON. 643 00:31:40,329 --> 00:31:42,370 Di mana json yang mempunyai array, Python mempunyai tatasusunan. 644 00:31:42,370 --> 00:31:44,420 Di mana json yang mempunyai array bersekutu, Python 645 00:31:44,420 --> 00:31:48,810 kamus, tali, dan nombor, dan sebagainya. 646 00:31:48,810 --> 00:31:53,560 Anda ingin membuang yang keluar, anda membuka fail baru, anda memanggil pembuangan, 647 00:31:53,560 --> 00:31:57,590 dan beban dan tempat pembuangan sampah ke masuk dan keluar dari tali. 648 00:31:57,590 --> 00:32:02,120 >> Begitu juga, jeruk mendapat dipanggil pada asasnya antara muka yang sama. 649 00:32:02,120 --> 00:32:04,740 Ia adalah sedikit lebih berguna jika anda lambakan objek Python. 650 00:32:04,740 --> 00:32:08,370 Jadi, jika anda pernah mahu untuk menyelamatkan versi status semasa 651 00:32:08,370 --> 00:32:11,930 pemboleh ubah untuk masa depan yang menjalankan program anda, 652 00:32:11,930 --> 00:32:14,740 jeruk adalah Python perpustakaan untuk melakukannya. 653 00:32:14,740 --> 00:32:19,140 >> Jika anda mempunyai apa-apa jenis pembolehubah yang boleh ditulis di 654 00:32:19,140 --> 00:32:21,990 dalam kata-kata seperti dan watak-watak dan bytes-- seperti kamus ini, 655 00:32:21,990 --> 00:32:24,230 kita boleh menulis, maka kami boleh tulis jawatan sebagai 656 00:32:24,230 --> 00:32:26,670 seperti objek JSON, yang literal watak-watak. 657 00:32:26,670 --> 00:32:29,420 Dan kemudian ia akan menjadi sangat mudah untuk manusia untuk membukanya up-- membuka 658 00:32:29,420 --> 00:32:30,889 dan membacanya. 659 00:32:30,889 --> 00:32:33,180 Jika kita tidak terutamanya mengambil berat tentang manusia membacanya, 660 00:32:33,180 --> 00:32:38,490 kita boleh pakej yang lebih cekap ke dalam bentuk yang kemudiannya boleh terpadat 661 00:32:38,490 --> 00:32:42,860 atau yang boleh kemudian melambung. 662 00:32:42,860 --> 00:32:46,740 Dan ini akan menjimatkan 80% daripada ruang yang objek anda mungkin 663 00:32:46,740 --> 00:32:49,390 mengambil jika anda menulis mereka keluar tulisan tangan. 664 00:32:49,390 --> 00:32:52,384 >> Anda memanggil jeruk banyak yang sama way-- pembuangan, beban, 665 00:32:52,384 --> 00:32:53,800 dan kemudian anda mendapatkan perkara yang anda kembali. 666 00:32:53,800 --> 00:32:56,880 Jadi, jika anda menulis sangat program Python pendek yang 667 00:32:56,880 --> 00:32:59,952 mahu menyimpan negeri, dan kemudian membaca mereka kembali kemudian, perkara seperti ini 668 00:32:59,952 --> 00:33:00,660 adalah rakan anda. 669 00:33:00,660 --> 00:33:02,640 Bahawa anda boleh sangat mudah membuang mereka sebagai json. 670 00:33:02,640 --> 00:33:04,550 Kebanyakan objek Python boleh membuang keluar json yang 671 00:33:04,550 --> 00:33:11,310 jika ada apa-apa harapan bahawa struktur mereka boleh diwakili dengan cara itu. 672 00:33:11,310 --> 00:33:14,410 >> Ini hanya sebahagian kecil daripada bilangan modul yang berguna. 673 00:33:14,410 --> 00:33:19,510 Jadi sys, os, multiprocessing, adalah semacam workhorses asas untuk perkara-perkara 674 00:33:19,510 --> 00:33:23,120 kita perlu berinteraksi dengan os sistem fail., 675 00:33:23,120 --> 00:33:28,764 seperti os.isfile, os.isdirectory, os.makefile, ini adalah rakan-rakan. 676 00:33:28,764 --> 00:33:30,930 Jika anda ingin berinteraksi dengan jenis fail tertentu, 677 00:33:30,930 --> 00:33:32,190 json, jeruk, csv. 678 00:33:32,190 --> 00:33:37,160 Jika anda ingin berinteraksi dengan web muka surat, yang urllib untuk mendapatkan http 679 00:33:37,160 --> 00:33:41,370 halaman. bs4-- BeautifulSoup-- ia adalah satu penghurai yang menarik untuk html. 680 00:33:41,370 --> 00:33:47,047 Anda berjalan pada satu html dan anda mendapatkan objek pelbagai bersarang ini sekarang, 681 00:33:47,047 --> 00:33:49,630 yang anda boleh merentasi lebih lookin, dengan seperti hanya mencari 682 00:33:49,630 --> 00:33:52,380 jika, adalah, dalam, yang adalah hebat. 683 00:33:52,380 --> 00:33:55,920 >> Ada sekumpulan pakej untuk running-- 684 00:33:55,920 --> 00:33:57,960 untuk berbuat terutamanya perkara Mathy. 685 00:33:57,960 --> 00:34:01,790 Jadi jika anda mahu untuk membiak, terbalikkan, mengubah matriks, 686 00:34:01,790 --> 00:34:05,690 numpy digunakan oleh orang-orang di seluruh dunia untuk itu. 687 00:34:05,690 --> 00:34:09,620 scipy adalah lebih berguna alat ke arah itu. 688 00:34:09,620 --> 00:34:13,980 pembelajaran mesin sklearn--, pemprosesan bahasa semula jadi, 689 00:34:13,980 --> 00:34:17,880 super barangan berguna, mendapat dilaksanakan dalam Python sepanjang masa. 690 00:34:17,880 --> 00:34:21,469 >> Dan sekali lagi, mengambil sedikit lebih lama untuk write-- maaf, 691 00:34:21,469 --> 00:34:26,199 mengambil masa lebih panjang untuk menjalankan, tetapi alasan bahawa jurutera sebenar cenderung 692 00:34:26,199 --> 00:34:29,900 penggunaan Python adalah kerana anda cenderung untuk menjadi disekat pada anda menulis kod, dan bukan 693 00:34:29,900 --> 00:34:32,699 daripada komputer anda berjalan kod. 694 00:34:32,699 --> 00:34:35,860 Jadi jika anda akan menulis Program yang banyak orang lain 695 00:34:35,860 --> 00:34:37,699 akan menggunakan selama-lamanya, seperti Linux, anda 696 00:34:37,699 --> 00:34:41,900 mungkin menulis dalam C. Sekiranya kamu akan menulis enjin pengiraan, 697 00:34:41,900 --> 00:34:46,124 anda mungkin menulis dalam Python jika anda diperlukan untuk mengubahnya setiap beberapa bulan. 698 00:34:46,124 --> 00:34:48,540 Sesetengah orang akan menulis dalam C kerana mereka seperti itu. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Oleh itu, kita telah lihat sys import sebagai satu cara untuk mendapatkan perkara yang 701 00:34:54,050 --> 00:34:57,070 untuk mendapatkan modul ke dalam program anda. 702 00:34:57,070 --> 00:35:00,370 Anda juga boleh mengimport sebagai nama panggilan, jika anda suka. 703 00:35:00,370 --> 00:35:03,660 Sekali lagi multiprocessing adalah sakit untuk menaip setiap masa, jadi mengimport sebagai mp 704 00:35:03,660 --> 00:35:05,900 dan kemudian bila-bila masa anda menggunakannya dalam program ini, 705 00:35:05,900 --> 00:35:09,732 anda akan berkata mp.process, atau golongan berada. 706 00:35:09,732 --> 00:35:12,670 Jika anda ingin import hanya satu perkara yang tunggal, 707 00:35:12,670 --> 00:35:19,450 supaya urllib mempunyai perkara yang dipanggil permintaan, jadi anda hanya boleh mengimport itu. 708 00:35:19,450 --> 00:35:22,610 Selepas itu, anda tidak akan sembah sebagai urllib.request, tetapi hanya sebagai permintaan 709 00:35:22,610 --> 00:35:24,590 dengan sendirinya. 710 00:35:24,590 --> 00:35:30,110 >> Dan anda boleh mengimport semua dari modul jika anda suka. 711 00:35:30,110 --> 00:35:34,820 Ini kadang-kadang tidak idea-- yang baik ini bukan idea yang baik biasanya, sebenarnya. 712 00:35:34,820 --> 00:35:39,080 Kerana anda very-- kerana jika apa-apa dalam modul yang mempunyai nama yang anda 713 00:35:39,080 --> 00:35:41,640 mahu menggunakan tempat lain dalam program anda, anda tidak boleh. 714 00:35:41,640 --> 00:35:44,127 >> Dan ia tidak sentiasa jelas yang itu berlaku. 715 00:35:44,127 --> 00:35:46,460 Dalam usaha untuk memastikan bahawa apa yang anda lakukan adalah selamat, 716 00:35:46,460 --> 00:35:47,920 anda perlu membuka modul dan melihat semua 717 00:35:47,920 --> 00:35:50,295 daripada nama-nama yang berakhir di dalam there-- semua fungsi, 718 00:35:50,295 --> 00:35:53,010 semua pembolehubah yang hidup di dalam modul itu, 719 00:35:53,010 --> 00:35:57,040 kerana anda membawa semua mereka ke dalam ruang nama tempatan anda. 720 00:35:57,040 --> 00:35:58,680 >> Jadi orang-orang melakukan ini. 721 00:35:58,680 --> 00:36:01,322 Ia biasanya disyorkan bahawa anda tidak melakukan ini. 722 00:36:01,322 --> 00:36:03,280 Tetapi orang melakukan ini semua masa kerana mereka 723 00:36:03,280 --> 00:36:05,180 malas dan tidak mahu menaip mp. 724 00:36:05,180 --> 00:36:06,310 apa-apa, sebelum ini. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Semua ini bercakap tentang modul membawa saya sekitar untuk ceramah pendek 727 00:36:13,310 --> 00:36:15,930 bagaimana anda mereka bentuk program dalam Python. 728 00:36:15,930 --> 00:36:19,860 Langkah pertama adalah untuk menyemak untuk melihat jika orang lain telah melakukan perkara itu, 729 00:36:19,860 --> 00:36:22,160 atau dilakukan 90% daripada perkara itu. 730 00:36:22,160 --> 00:36:26,010 Kemungkinan mereka mungkin mempunyai, dan anda harus pergi mendapatkan perkara mereka dan menjalankan itu. 731 00:36:26,010 --> 00:36:28,900 Atau tulis pembungkus di sekitarnya untuk menyesuaikannya dengan tujuan anda. 732 00:36:28,900 --> 00:36:31,250 Ia hanya selepas itu mempunyai gagal bahawa anda akan kemudian 733 00:36:31,250 --> 00:36:35,529 pergi pada dan write-- mula berfikir tentang bagaimana anda akan meletakkan perkara ini bersama-sama. 734 00:36:35,529 --> 00:36:37,320 Ada banyak barangan di luar sana, dan itulah 735 00:36:37,320 --> 00:36:39,180 salah satu yang paling berguna perkara tentang Python. 736 00:36:39,180 --> 00:36:40,930 Seperti bahasa adalah elegan, bahasa 737 00:36:40,930 --> 00:36:43,800 adalah mudah untuk digunakan, tetapi juga kerana ia begitu elegan dan mudah untuk digunakan, 738 00:36:43,800 --> 00:36:47,420 orang telah menggunakannya untuk panjang masa dan ada banyak perkara 739 00:36:47,420 --> 00:36:52,520 di luar sana yang anda boleh memanfaatkan untuk kegunaan anda sendiri. 740 00:36:52,520 --> 00:36:58,457 >> Jadi peraturan terakhir Python adalah, seseorang lain telah mungkin ditulis 741 00:36:58,457 --> 00:37:00,290 modul untuk itu, orang lain telah pun 742 00:37:00,290 --> 00:37:02,980 mungkin ditulis perpustakaan untuk itu. 743 00:37:02,980 --> 00:37:06,579 Sebelum anda cuba untuk melakukan perkara yang sama untuk melihat jika ia telah dilaksanakan. 744 00:37:06,579 --> 00:37:07,370 Ia bukan yang keras. 745 00:37:07,370 --> 00:37:11,960 Semua modul yang saya meletakkan sebelum ini, dengan mungkin satu pengecualian, 746 00:37:11,960 --> 00:37:15,220 datang pra-dipasang di setiap pemasangan Python standard. 747 00:37:15,220 --> 00:37:17,769 Dan sebagainya dengan panggilan untuk mengimport apa sahaja, anda 748 00:37:17,769 --> 00:37:19,852 mempunyai semua fungsi yang di hujung jari anda. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Bermula untuk mengakhiri ini bercakap, terdapat beberapa perkara 751 00:37:28,920 --> 00:37:32,770 bahawa saya telah ditinggalkan sebagai kotak hitam dan jenis dipoles begitu saja, 752 00:37:32,770 --> 00:37:37,217 dan ada putih Beberapa terletak bahawa saya telah diberitahu bahawa demi kejujuran, 753 00:37:37,217 --> 00:37:39,050 Saya akan sekurang-kurangnya mata di di sini, walaupun saya tidak akan 754 00:37:39,050 --> 00:37:43,980 pergi super jauh ke dalam semua daripada mereka dan penjelasan teknikal mereka. 755 00:37:43,980 --> 00:37:46,010 >> Banyak perkara-perkara bahawa saya telah dipanggil sihir 756 00:37:46,010 --> 00:37:48,980 adalah apa yang orang lain akan memanggil pengaturcaraan berorientasikan objek. 757 00:37:48,980 --> 00:37:52,470 Jadi terdapat banyak things-- jadi pembolehubah seringkali tidak 758 00:37:52,470 --> 00:37:56,540 bytes mudah duduk di, memori, tetapi adalah sangat rumit 759 00:37:56,540 --> 00:38:01,910 objek yang mempunyai dalaman negeri tentang fungsi dan banyak 760 00:38:01,910 --> 00:38:05,570 pembolehubah tersembunyi, banyak fungsi tersembunyi, yang 761 00:38:05,570 --> 00:38:09,480 membolehkan anda menghidupkan mereka ke dalam tali, yang membolehkan anda melelar atas mereka. 762 00:38:09,480 --> 00:38:12,260 Dan jika anda writing-- dan alasan bahawa mereka 763 00:38:12,260 --> 00:38:15,710 mempunyai semua fungsi ini kaya adalah kerana dan kaum 764 00:38:15,710 --> 00:38:17,740 arkitek daripada language-- telah pergi 765 00:38:17,740 --> 00:38:22,420 melalui dan bagi setiap standard objek, dimasukkan ke dalam fungsi yang 766 00:38:22,420 --> 00:38:26,970 untuk mengatakan ini adalah bagaimana ini bagaimana ini akan beroperasi 767 00:38:26,970 --> 00:38:28,470 jika seseorang mahu untuk melelar atasnya. 768 00:38:28,470 --> 00:38:31,240 >> Jadi semuanya bahawa seseorang mungkin mungkin mahu untuk melelar, 769 00:38:31,240 --> 00:38:34,529 telah logik ditulis dalam manual pada bagaimana anda 770 00:38:34,529 --> 00:38:36,070 sepatutnya melelar atas objek itu. 771 00:38:36,070 --> 00:38:40,274 Segala sesuatu yang anda mungkin akan mahu dibuang ke dalam tali telah logik bertulis. 772 00:38:40,274 --> 00:38:43,440 Ini adalah fungsi yang anda memanggil jika anda mahu untuk membuang ini kepada rentetan. 773 00:38:43,440 --> 00:38:45,273 Inilah sebabnya mengapa anda boleh memanggil len kepada perkara-perkara, ini 774 00:38:45,273 --> 00:38:49,900 sebabnya mengapa anda boleh memanggil dalam, ini adalah mengapa anda boleh menghubungi jika dalam pada segala-galanya 775 00:38:49,900 --> 00:38:53,490 yang anda akan mahu, kerana mereka semua yang dibawa dengan mereka, 776 00:38:53,490 --> 00:38:55,380 pengetahuan teknikal untuk berbuat demikian. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Ini adalah sesuatu yang saya super tidak akan pergi ke dalam. 779 00:39:00,432 --> 00:39:03,140 Tetapi bagi perkara dalam senarai adalah secara halus berbeza daripada gaya C untuk gelung, 780 00:39:03,140 --> 00:39:06,160 dan anda boleh membaca semua tentang bahawa pada internet jika anda berminat. 781 00:39:06,160 --> 00:39:08,930 Terdapat bahagian yang gelap kepada semua itu, yang saya nyatakan, 782 00:39:08,930 --> 00:39:10,359 jadi ada dua perkara. 783 00:39:10,359 --> 00:39:13,400 Yang pertama adalah bahawa objek ini berorientasikan pengaturcaraan menambah banyak overhead 784 00:39:13,400 --> 00:39:16,080 kepada perkara-perkara rawak, jadi anda menamatkan dengan menggunakan memori banyak lagi; 785 00:39:16,080 --> 00:39:18,640 anda akhirnya menggunakan lebih sedikit masa daripada anda sebaliknya. 786 00:39:18,640 --> 00:39:21,300 The other-- tetapi lebih banyak berbahaya sisi gelap ini 787 00:39:21,300 --> 00:39:24,047 Iaitu, jika perkara yang hanya bertindak seperti yang anda mahu mereka 788 00:39:24,047 --> 00:39:27,130 tanpa anda perlu berfikir super keras sama ada ini harus int 789 00:39:27,130 --> 00:39:29,713 atau sama ada perlu ada terapung, ia mungkin bahawa di sini 790 00:39:29,713 --> 00:39:34,240 anda menghasilkan int tetapi di sini anda berfikir tetapi mereka akan always-- maaf, 791 00:39:34,240 --> 00:39:36,555 ia mungkin bahawa di sini anda menghasilkan apungan, 792 00:39:36,555 --> 00:39:39,430 tetapi apabila anda sampai ke bahagian kedua program anda, anda berfikir, 793 00:39:39,430 --> 00:39:41,150 oh baik, tetapi mereka akan sentiasa lulus saya int. 794 00:39:41,150 --> 00:39:43,608 Dan jika tidak, ia mungkin yang desak di suatu tempat, 795 00:39:43,608 --> 00:39:47,600 jika anda cuba untuk menggunakannya untuk indeks ke dalam pelbagai, atau golongan berada. 796 00:39:47,600 --> 00:39:51,050 >> Jadi salah satu sebenar perkara yang berguna tentang C adalah 797 00:39:51,050 --> 00:39:54,219 ia memaksa anda untuk berfikir yang benar-benar keras sebelum anda membuat any-- 798 00:39:54,219 --> 00:39:56,510 sebelum anda membawa apa-apa ubah wujud, seperti apa yang 799 00:39:56,510 --> 00:39:58,764 adalah jenis pembolehubah ini. 800 00:39:58,764 --> 00:40:00,680 Dan ia akan mempunyai jenis itu sepanjang masa. 801 00:40:00,680 --> 00:40:02,410 >> Ini tidak benar Python, dan sebenarnya, anda 802 00:40:02,410 --> 00:40:04,740 can-- jika anda hanya jenis akan oleh telinga, 803 00:40:04,740 --> 00:40:07,690 dan anda membuat beberapa keputusan sehala di satu tempat, 804 00:40:07,690 --> 00:40:09,870 dan beberapa keputusan salah cara di tempat yang lain 805 00:40:09,870 --> 00:40:12,960 tanpa meletakkan barangan cukup di belakang tabir di tempat yang lain 806 00:40:12,960 --> 00:40:16,170 untuk menangkap perkara yang betul, anda boleh mendapatkan beberapa kesilapan yang sangat pelik. 807 00:40:16,170 --> 00:40:19,200 Dan program ini boleh terus berjalan untuk masa yang sangat lama, kerana ia 808 00:40:19,200 --> 00:40:23,200 melakukan banyak kerja untuk berkata, dengan baik Perkara ini boleh beroperasi dengan cara ini, 809 00:40:23,200 --> 00:40:25,070 jadi saya akan berjalan dengan cara itu. 810 00:40:25,070 --> 00:40:30,300 >> Dan sebenarnya, hakikat bahawa ia menolak mengemukakan melalui banyak kesilapan kecil 811 00:40:30,300 --> 00:40:33,260 bermakna, kerap apabila kesilapan sebenarnya tidak baik 812 00:40:33,260 --> 00:40:38,720 dan anda benar-benar ingin memperbaikinya, ia berakhir batu away-- program 813 00:40:38,720 --> 00:40:41,780 berakhir berhenti batu dari masa anda mempunyai ralat anda. 814 00:40:41,780 --> 00:40:46,590 Dan supaya satu perkara yang kami ingin program-program yang perlu dilakukan, sometimes-- satu perkara 815 00:40:46,590 --> 00:40:48,910 yang kami ingin program yang perlu dilakukan apabila kita debugging 816 00:40:48,910 --> 00:40:54,160 adalah gagal dengan kuat dan gagal sangat cepat apabila sesuatu berlaku. 817 00:40:54,160 --> 00:40:55,510 >> Python adalah sangat buruk pada itu. 818 00:40:55,510 --> 00:40:58,820 Python adalah sangat baik kerana tidak gagal dan bergolek ke hadapan 819 00:40:58,820 --> 00:41:00,320 melalui perkara yang tidak dijangka. 820 00:41:00,320 --> 00:41:02,820 Jadi ini adalah berguna untuk apabila anda menulis program kecil. 821 00:41:02,820 --> 00:41:07,110 Apabila anda mendapat rumit bug ia kadang-kadang 822 00:41:07,110 --> 00:41:09,300 mengambil masa yang lama untuk mengusik mereka keluar. 823 00:41:09,300 --> 00:41:12,210 >> Jadi ada sisi gelap kepada semua ini, seperti ia hanya berfungsi. 824 00:41:12,210 --> 00:41:13,860 Ia hanya berfungsi seperti yang anda harapkan kepada. 825 00:41:13,860 --> 00:41:18,320 Kecuali apabila ia tidak, anda berakhir di tempat yang sama sekali berbeza 826 00:41:18,320 --> 00:41:21,530 dan cuba untuk memikirkan di mana ia adalah bahawa anda tidak kena. 827 00:41:21,530 --> 00:41:25,180 >> Kutipan sampah is-- supaya satu perkara yang anda akan notis 828 00:41:25,180 --> 00:41:28,110 ialah mana-mana perkara-perkara ini yang Saya telah dibawa masuk ke dalam existence-- 829 00:41:28,110 --> 00:41:34,114 tatasusunan ini, kamus ini, ini objek, ini files-- tidak pernah dibebaskan. 830 00:41:34,114 --> 00:41:36,030 Tidak ada panggilan untuk di mana-mana ceramah ini. 831 00:41:36,030 --> 00:41:40,340 Dan yang di atas C-sampingan, kerana kita tidak pernah masuk ke dalam perkara-perkara. 832 00:41:40,340 --> 00:41:42,220 >> Tetapi dalam Python-sebelah, tidak ada yang percuma. 833 00:41:42,220 --> 00:41:43,970 Perkara mendapatkan secara automatik dibebaskan apabila Python 834 00:41:43,970 --> 00:41:45,386 difikirkan anda tidak melihat mereka. 835 00:41:45,386 --> 00:41:49,640 Ia benar-benar baik tidak membebaskan perkara-perkara yang anda mungkin masih mungkin dapat melihat, 836 00:41:49,640 --> 00:41:54,262 tetapi ini bermakna bahawa jika anda berada akan memperuntukkan perkara ini besar, 837 00:41:54,262 --> 00:41:55,970 dan anda seperti, oh Saya selesai dengan sekarang, 838 00:41:55,970 --> 00:42:00,360 ia sukar untuk memberitahu Python bahawa anda selesai dengan sekarang. 839 00:42:00,360 --> 00:42:02,986 >> Kadang-kadang anda boleh menetapkan pembolehubah yang menjadi tiada, 840 00:42:02,986 --> 00:42:05,110 dan kemudian berharap yang akhirnya pengumpul sampah 841 00:42:05,110 --> 00:42:06,720 datang melalui dan membersihkan ia keluar. 842 00:42:06,720 --> 00:42:10,177 Tetapi sekali lagi, anda tidak mempunyai kawalan ke atas itu. 843 00:42:10,177 --> 00:42:13,510 Dan salah satu daripada sebab-sebab yang digunakan orang C untuk benar-benar Prestasi perkara yang kritikal, 844 00:42:13,510 --> 00:42:16,570 adalah keupayaan untuk benar-benar tahu apabila memori diperuntukkan 845 00:42:16,570 --> 00:42:19,369 dan apabila ia dibebaskan, dan mempunyai banyak kawalan ke atas dan berkata: 846 00:42:19,369 --> 00:42:20,910 Saya tidak menggunakan memori lebih daripada yang saya perlukan. 847 00:42:20,910 --> 00:42:23,632 Yang merupakan sesuatu yang Python tidak begitu besar di. 848 00:42:23,632 --> 00:42:25,090 PENONTON: Boleh saya tanya satu soalan? 849 00:42:25,090 --> 00:42:29,800 Apa yang kamu maksudkan dengan gagal keras? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-YOO: Jadi, jika sesuatu yang berlaku salah 851 00:42:32,070 --> 00:42:34,950 dan anda berada dalam debugging mod, anda akan seringkali 852 00:42:34,950 --> 00:42:38,510 mahu program anda untuk memberitahu anda di mana sebenarnya ia pergi salah, 853 00:42:38,510 --> 00:42:42,360 dan tidak hanya diam-diam berhenti berjalan. 854 00:42:42,360 --> 00:42:45,085 Tetapi anda akan benar-benar untuk mencetak keluar pelbagai maklumat tentang 855 00:42:45,085 --> 00:42:46,972 seperti di sini adalah ini. 856 00:42:46,972 --> 00:42:53,957 Perkara ini berlaku Jika anda mencetak yang wen-- jika anda menjalankan server-- web 857 00:42:53,957 --> 00:42:55,390 >> PENONTON: [didengar] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-YOO: Ya, jika anda menjalankan pelayan web, 859 00:42:59,800 --> 00:43:02,680 ia kadang-kadang tidak baik jika anda sentiasa membuang kesilapan, 860 00:43:02,680 --> 00:43:04,530 dan anda berkata, baik yang tidak berjaya. 861 00:43:04,530 --> 00:43:05,300 Saya akan berhenti. 862 00:43:05,300 --> 00:43:07,680 Saya hanya akan mengabaikan dan menyimpan berlaku. 863 00:43:07,680 --> 00:43:11,260 Kerana anda boleh mendapatkan dalam beratus-ratus kesilapan ini dan tidak melihat mereka. 864 00:43:11,260 --> 00:43:13,910 >> Ia sudah tentu akan berguna untuk tujuan debugging 865 00:43:13,910 --> 00:43:20,327 jika setiap kali pelayan web anda membuat kesilapan, anda mempunyai rekod tahan lama daripada itu. 866 00:43:20,327 --> 00:43:22,910 Mungkin anda juga mahu rancangan itu untuk berhenti, supaya rekod-rekod 867 00:43:22,910 --> 00:43:25,471 tidak mendapatkan dikebumikan di bawah sesuatu. 868 00:43:25,471 --> 00:43:26,970 Tetapi sekali lagi, bahawa dalam mod debugging. 869 00:43:26,970 --> 00:43:31,280 >> Selalunya dalam mod pengeluaran, Dunia ini adalah sedikit berbeza. 870 00:43:31,280 --> 00:43:36,380 Dan dalam skrip kecil yang saya berjalan, di mana perkara yang saya tersebut untuk melakukan 871 00:43:36,380 --> 00:43:40,680 mungkin hanya sedikit off dari apa yang saya mahu ia lakukan, 872 00:43:40,680 --> 00:43:44,010 kemudian semacam menolak melalui kesilapan adalah sesuatu yang anda mungkin mahu. 873 00:43:44,010 --> 00:43:49,410 Dan dalam kes-kes, sudah tentu Python benar-benar mendapat bermula itu. 874 00:43:49,410 --> 00:43:54,617 >> Perkara terakhir yang saya tidak bercakap dalam this-- bahawa saya tidak bercakap tentang 875 00:43:54,617 --> 00:43:57,700 tetapi boleh menjadi benar-benar menyebalkan pertama masa anda mempunyai salah satu kesilapan-kesilapan ini, 876 00:43:57,700 --> 00:44:00,491 dan yang kedua dan ketiga dan keempat masa anda mempunyai satu kesilapan-kesilapan ini. 877 00:44:00,491 --> 00:44:03,490 Python, saya nyatakan bahawa ia menggunakan ruang putih 878 00:44:03,490 --> 00:44:06,700 untuk memberitahu anda tahap lekukan apa dan apa blok fungsi anda berada dalam, 879 00:44:06,700 --> 00:44:08,840 ia merawat tab dan ruang berbeza. 880 00:44:08,840 --> 00:44:12,780 Jadi, jika anda lebih empat tab, dan kemudian baris berikutnya mempunyai empat ruang, 881 00:44:12,780 --> 00:44:16,910 walaupun mereka muncul sebagai Jumlah yang sama dalam editor anda, 882 00:44:16,910 --> 00:44:20,160 Python tidak melayan mereka yang sama. 883 00:44:20,160 --> 00:44:23,610 >> Malah, Python merawat tab dan ruang seperti minyak dan air. 884 00:44:23,610 --> 00:44:25,050 Mereka adalah perkara-perkara hanya berbeza. 885 00:44:25,050 --> 00:44:27,264 Tiada tertentu panjang yang tab adalah, 886 00:44:27,264 --> 00:44:30,180 jadi ia tidak seperti tab bersamaan 8 ruang, dan supaya anda akan mendapat di sekitarnya 887 00:44:30,180 --> 00:44:30,860 Jalan itu. 888 00:44:30,860 --> 00:44:34,110 Seperti, apabila ia berkata, apa yang tahap ruang putih saya di, 889 00:44:34,110 --> 00:44:37,240 ia sebenarnya sedang mencari corak ruang dan tab. 890 00:44:37,240 --> 00:44:43,050 Dan sebagainya, cara yang terbaik untuk berurusan dengan ini adalah untuk sentiasa menggunakan ruang sepanjang masa. 891 00:44:43,050 --> 00:44:47,510 >> Dan sebenarnya, dalam Cloud9 IDE dan IDE CS50, 892 00:44:47,510 --> 00:44:50,610 memasukkan kekunci Tab anda empat ruang di sebaliknya 893 00:44:50,610 --> 00:44:53,800 daripada tab, yang super berguna. 894 00:44:53,800 --> 00:44:57,074 Walaupun sekali lagi, jika anda menulis Python program dengan tab yang akan menjadi baik, 895 00:44:57,074 --> 00:44:58,990 ia hanya jika seseorang masuk dan cuba untuk menambah 896 00:44:58,990 --> 00:45:02,655 satu baris untuk program anda yang mempunyai empat ruang untuk setiap tab, 897 00:45:02,655 --> 00:45:03,280 ia akan pecah. 898 00:45:03,280 --> 00:45:07,800 Dan ia akan memecahkan dengan cara yang yang benar-benar tidak kelihatan. 899 00:45:07,800 --> 00:45:12,390 Walaupun ralat sebenar mesej bahawa ia melemparkan 900 00:45:12,390 --> 00:45:15,610 mempunyai kaitan dengan yang baru mengengsot tidak dijangka sini, 901 00:45:15,610 --> 00:45:18,700 or-- jika ia bercakap tentang inden dan ia kelihatan seperti ia salah, 902 00:45:18,700 --> 00:45:22,090 ia mungkin kerana ada masalah tab-ruang. 903 00:45:22,090 --> 00:45:24,154 Mereka masih menyebalkan untuk debug. 904 00:45:24,154 --> 00:45:26,070 Seluruh terbesar di ceramah ini, yang saya tidak lakukan 905 00:45:26,070 --> 00:45:29,740 dapat kerana ia benar-benar yang, topik halus rumit, 906 00:45:29,740 --> 00:45:34,760 dan tidak perlu melakukan apa-apa satu perkara yang kita lakukan setakat ini, 907 00:45:34,760 --> 00:45:37,140 adalah konsep yang dipanggil tuples. 908 00:45:37,140 --> 00:45:41,280 Mereka berada di sana sama seperti tatasusunan bahawa anda tidak boleh mengubah suai. 909 00:45:41,280 --> 00:45:44,700 Mereka dapat digunakan di seluruh tempat kerana mereka adalah berguna untuk banyak perkara 910 00:45:44,700 --> 00:45:46,300 yang tatasusunan tidak berguna untuk. 911 00:45:46,300 --> 00:45:49,890 >> Tetapi jika anda ingin membuat array, dan kemudian berjanji jurubahasa yang anda 912 00:45:49,890 --> 00:45:53,140 tidak pernah akan mahu untuk mengubah suai yang thing-- sebenarnya, jika anda mahu untuk mengubah suai, 913 00:45:53,140 --> 00:45:56,800 anda akan membuat yang baru dengan yang baru nilai dalam kitab itu mereka adalah tuples. 914 00:45:56,800 --> 00:45:58,800 Daripada menghasilkan mereka dengan tanda kurung siku, 915 00:45:58,800 --> 00:46:00,341 anda menghasilkan mereka dengan kurungan bulat. 916 00:46:00,341 --> 00:46:05,074 Mengapa anda akan menggunakan perkara-perkara ini, adalah sedikit soalan. . 917 00:46:05,074 --> 00:46:06,990 Satu-satunya perkara yang saya akan kata tentang yang anda 918 00:46:06,990 --> 00:46:10,680 boleh menggunakan tuples sebagai indeks kamus. 919 00:46:10,680 --> 00:46:15,010 Anda tidak boleh menggunakan tatasusunan sebagai indeks kamus. 920 00:46:15,010 --> 00:46:18,970 Dan mengapa, sekali lagi, teknikal dan Saya tidak akan lari ke dalamnya. 921 00:46:18,970 --> 00:46:23,140 >> The pset bahawa saya telah tidak disentuh di dalam ceramah ini adalah pset6. 922 00:46:23,140 --> 00:46:25,837 Jadi di sini adalah bagaimana anda 'd melaksanakan a-- sini 923 00:46:25,837 --> 00:46:28,140 bagaimana anda akan melaksanakan pset6 dalam Python. 924 00:46:28,140 --> 00:46:32,680 Mengingat Python kitaran reka bentuk, perkara pertama 925 00:46:32,680 --> 00:46:34,760 yang anda lakukan apabila anda program bertulis adalah daftar 926 00:46:34,760 --> 00:46:38,030 untuk melihat jika seseorang selesai ia sudah. 927 00:46:38,030 --> 00:46:42,152 >> Malah, jika anda mahu untuk serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 tidak kira-kira ini, kecuali ia tidak datang 929 00:46:44,110 --> 00:46:45,840 standard yang dipasang pada mesin Linux. 930 00:46:45,840 --> 00:46:50,490 Python tidak, dan Python pelayan http mudah tidak juga. 931 00:46:50,490 --> 00:46:54,717 Jika anda pernah pada mesin Linux, atau di luar Cloud9 IDE CS50 932 00:46:54,717 --> 00:46:57,550 dan anda ingin untuk berkhidmat semasa ini direktori ke port tertentu, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer port servis yang. 934 00:47:04,610 --> 00:47:07,190 Anda juga boleh mengimport pelayan http mudah 935 00:47:07,190 --> 00:47:11,240 dan ia mendapat banyak fungsi jika anda mahu untuk menyesuaikan, atau mengubahnya, 936 00:47:11,240 --> 00:47:15,860 atau dikendalikan kitab itu memanfaatkan kepada menjalankan perkhidmatan pelayan anda sendiri. 937 00:47:15,860 --> 00:47:18,032 >> Jadi itulah Python secara ringkas. 938 00:47:18,032 --> 00:47:20,280 Dan ini telah menjadi CS50. 939 00:47:20,280 --> 00:47:21,980 Terima kasih. 940 00:47:21,980 --> 00:47:23,468