Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,880 --> 00:00:04,560
привет, я профессор Барба и у меня есть
2
00:00:03,439 --> 00:00:06,799
новая демо для вас
3
00:00:04,560 --> 00:00:08,720
в этой демонстрации я хочу познакомить вас с
4
00:00:06,799 --> 00:00:12,799
функции Python
5
00:00:08,720 --> 00:00:15,200
функции - это умный способ сломать
6
00:00:12,799 --> 00:00:16,560
сложные задачи на более мелкие части, чтобы
7
00:00:15,200 --> 00:00:20,000
это более управляемо
8
00:00:16,560 --> 00:00:22,480
это связка кода
9
00:00:20,000 --> 00:00:23,760
что ты собрал, потому что ты хочешь
10
00:00:22,480 --> 00:00:26,800
повторно использовать
11
00:00:23,760 --> 00:00:29,840
это эти эти наборы процедур
12
00:00:26,800 --> 00:00:33,120
или вычисляет функцию
13
00:00:29,840 --> 00:00:36,559
принимает аргументы в качестве входных данных
14
00:00:33,120 --> 00:00:37,920
и возвращает значение для определения функции
15
00:00:36,559 --> 00:00:41,040
в Python вы используете
16
00:00:37,920 --> 00:00:43,440
ключевое слово def, вот как
17
00:00:41,040 --> 00:00:46,399
простейшая функция, которую вы можете себе представить
18
00:00:43,440 --> 00:00:47,280
ключевое слово def, которому мы собираемся следовать
19
00:00:46,399 --> 00:00:48,879
ключевое слово
20
00:00:47,280 --> 00:00:52,000
def по имени функции this
21
00:00:48,879 --> 00:00:55,199
функция, которую я собираюсь назвать, ничего не делать
22
00:00:52,000 --> 00:00:56,719
ничего не делать
23
00:00:55,199 --> 00:00:58,399
после названия функции, которую вы
24
00:00:56,719 --> 00:01:01,840
следуйте за этим с
25
00:00:58,399 --> 00:01:03,680
круглые скобки, где вы можете разместить
26
00:01:01,840 --> 00:01:05,360
аргументы, но в этом случае эта функция
27
00:01:03,680 --> 00:01:06,159
не будет возражать, поэтому я ухожу
28
00:01:05,360 --> 00:01:08,159
круглые скобки
29
00:01:06,159 --> 00:01:09,200
пусто, и я заканчиваю это утверждение
30
00:01:08,159 --> 00:01:12,320
двоеточие
31
00:01:09,200 --> 00:01:14,560
следующие строки кода, которые
32
00:01:12,320 --> 00:01:15,360
с отступом после определения
33
00:01:14,560 --> 00:01:18,320
название
34
00:01:15,360 --> 00:01:19,840
расчеты, которые вы хотите сделать
35
00:01:18,320 --> 00:01:21,280
но в этом случае я просто напишу
36
00:01:19,840 --> 00:01:24,000
передача ключевого слова
37
00:01:21,280 --> 00:01:24,720
это ключевое слово в Python, которое означает делать
38
00:01:24,000 --> 00:01:28,159
ничего такого
39
00:01:24,720 --> 00:01:29,759
так вот самый простой из возможных
40
00:01:28,159 --> 00:01:30,560
функция, которую вы можете представить на Python
41
00:01:29,759 --> 00:01:33,040
но у него есть
42
00:01:30,560 --> 00:01:33,600
все необходимые элементы он имеет
43
00:01:33,040 --> 00:01:36,720
def
44
00:01:33,600 --> 00:01:39,600
ключевое слово имя функции
45
00:01:36,720 --> 00:01:40,720
скобки двоеточие, а затем отступ
46
00:01:39,600 --> 00:01:44,159
отступ
47
00:01:40,720 --> 00:01:47,920
допустимая строка Python, так что обратите внимание
48
00:01:44,159 --> 00:01:50,560
вот что, если я напечатаю
49
00:01:47,920 --> 00:01:50,560
ничего не делать
50
00:01:51,280 --> 00:01:54,720
я получаю функцию, это действительный питон
51
00:01:54,079 --> 00:01:59,119
объект
52
00:01:54,720 --> 00:02:02,399
если я напечатаю, ничего не делай
53
00:01:59,119 --> 00:02:05,040
и я добавляю круглые скобки
54
00:02:02,399 --> 00:02:05,680
и выполнить, я ничего не понимаю, что произошло
55
00:02:05,040 --> 00:02:09,119
там
56
00:02:05,680 --> 00:02:09,920
ну я на самом деле вызываю функцию
57
00:02:09,119 --> 00:02:12,080
ничего не делать
58
00:02:09,920 --> 00:02:13,120
это указано в раунде
59
00:02:12,080 --> 00:02:16,720
кронштейны
60
00:02:13,120 --> 00:02:18,720
и я спрашиваю тип
61
00:02:16,720 --> 00:02:20,160
встроенная функция Python, чтобы сказать мне
62
00:02:18,720 --> 00:02:22,319
какой тип
63
00:02:20,160 --> 00:02:24,160
который возвращается функцией в этом
64
00:02:22,319 --> 00:02:25,280
случай, так как у меня нет возврата
65
00:02:24,160 --> 00:02:28,400
утверждение
66
00:02:25,280 --> 00:02:31,200
он возвращает тип none
67
00:02:28,400 --> 00:02:31,760
но в большинстве случаев я хочу вернуть
68
00:02:31,200 --> 00:02:34,560
значение
69
00:02:31,760 --> 00:02:35,280
и поэтому нам нужен оператор возврата, чтобы
70
00:02:34,560 --> 00:02:38,720
здесь
71
00:02:35,280 --> 00:02:40,480
возможна другая функция, которая
72
00:02:38,720 --> 00:02:41,760
вернет значение, которое мы собираемся
73
00:02:40,480 --> 00:02:44,000
использовать
74
00:02:41,760 --> 00:02:46,160
ключевое слово def, и я назову его
75
00:02:44,000 --> 00:02:49,760
квадратный
76
00:02:46,160 --> 00:02:52,879
foo, и на этот раз я собираюсь включить
77
00:02:49,760 --> 00:02:55,040
аргумент, я назову его фу
78
00:02:52,879 --> 00:02:56,800
и я всегда должен помнить, чтобы закончить
79
00:02:55,040 --> 00:02:59,840
это заявление с двоеточием
80
00:02:56,800 --> 00:03:00,400
поэтому строки кода с отступом будут
81
00:02:59,840 --> 00:03:02,319
к
82
00:03:00,400 --> 00:03:04,319
Возьми сейчас и сделай следующее, я
83
00:03:02,319 --> 00:03:07,760
собираюсь определить новое имя переменной
84
00:03:04,319 --> 00:03:09,840
bar и сделайте его равным 2.
85
00:03:07,760 --> 00:03:11,200
а затем я собираюсь вычислить значение
86
00:03:09,840 --> 00:03:13,519
что равно
87
00:03:11,200 --> 00:03:18,400
foo аргумент, и я собираюсь использовать
88
00:03:13,519 --> 00:03:20,400
две звездочки для обозначения мощности
89
00:03:18,400 --> 00:03:23,680
расчет и бар будет
90
00:03:20,400 --> 00:03:25,760
экспонента, и я вернусь
91
00:03:23,680 --> 00:03:27,120
значение, так что теперь у нас есть немного
92
00:03:25,760 --> 00:03:28,879
более сложный
93
00:03:27,120 --> 00:03:31,040
функция я собираюсь удалить эти два
94
00:03:28,879 --> 00:03:32,319
чтобы освободить больше места для моей презентации
95
00:03:31,040 --> 00:03:35,440
тебе
96
00:03:32,319 --> 00:03:36,080
я собираюсь выполнить эту строку, которая
97
00:03:35,440 --> 00:03:38,640
клетка
98
00:03:36,080 --> 00:03:39,440
и я определил эту новую функцию так
99
00:03:38,640 --> 00:03:43,360
тип
100
00:03:39,440 --> 00:03:46,400
квадратного фу дает мне
101
00:03:43,360 --> 00:03:49,440
функция типа square foo
102
00:03:46,400 --> 00:03:50,080
с некоторым значением здесь, например, 5 дает
103
00:03:49,440 --> 00:03:52,959
меня
104
00:03:50,080 --> 00:03:54,640
int, поэтому возвращаемое значение square foo
105
00:03:52,959 --> 00:03:58,319
с аргументом 5
106
00:03:54,640 --> 00:04:01,599
действительно есть int, так что если я просто делаю квадрат foo
107
00:03:58,319 --> 00:04:05,040
5 я получаю 25 квадратов 5.
108
00:04:01,599 --> 00:04:07,599
Итак, вот простая функция, и я хочу
109
00:04:05,040 --> 00:04:11,200
вы должны отметить, что переменные
110
00:04:07,599 --> 00:04:13,439
используются внутри функции, не
111
00:04:11,200 --> 00:04:14,560
доступный, как только мы однажды назвали это
112
00:04:13,439 --> 00:04:17,440
функция так что если я сделаю
113
00:04:14,560 --> 00:04:18,239
bar и попробуйте выполнить, я получаю сообщение об ошибке
114
00:04:17,440 --> 00:04:21,280
потому что бар
115
00:04:18,239 --> 00:04:22,079
не определен бар является внутренним по отношению к
116
00:04:21,280 --> 00:04:24,800
функционировать так
117
00:04:22,079 --> 00:04:26,240
помните, что эти функции не показывают, как
118
00:04:24,800 --> 00:04:29,840
колбаса сделана
119
00:04:26,240 --> 00:04:31,600
поэтому бар неизвестен вне функции
120
00:04:29,840 --> 00:04:33,199
хорошо, я собираюсь удалить это в
121
00:04:31,600 --> 00:04:37,600
иметь немного больше места
122
00:04:33,199 --> 00:04:40,800
и покажу вам еще один важный
123
00:04:37,600 --> 00:04:43,919
свойство функций, если я определяю бар
124
00:04:40,800 --> 00:04:47,280
вне функции сейчас и определите
125
00:04:43,919 --> 00:04:50,479
новая функция, которую я собираюсь вызвать
126
00:04:47,280 --> 00:04:54,320
скажи мощность бара
127
00:04:50,479 --> 00:04:58,320
и требуется аргумент foo и
128
00:04:54,320 --> 00:05:02,160
теперь я собираюсь сделать результат ммм
129
00:04:58,320 --> 00:05:06,400
я могу использовать любую переменную здесь равно foo
130
00:05:02,160 --> 00:05:09,600
к панели питания и вернуться
131
00:05:06,400 --> 00:05:12,560
результаты хорошо, я выполняю это
132
00:05:09,600 --> 00:05:13,759
теперь конечно бар известен
133
00:05:12,560 --> 00:05:18,240
потому что у меня есть
134
00:05:13,759 --> 00:05:18,240
определенный бар вне функции
135
00:05:18,400 --> 00:05:21,440
результат однако
136
00:05:22,400 --> 00:05:26,880
неизвестно см. результат не определен
137
00:05:24,639 --> 00:05:28,240
потому что это внутреннее по отношению к функции
138
00:05:26,880 --> 00:05:30,320
функция не показывает, как
139
00:05:28,240 --> 00:05:33,440
колбаса сделана хорошо
140
00:05:30,320 --> 00:05:35,120
но на самом деле это не лучшая идея
141
00:05:33,440 --> 00:05:36,639
иметь это определение вне
142
00:05:35,120 --> 00:05:37,600
функция все функции должны быть
143
00:05:36,639 --> 00:05:39,840
автономный
144
00:05:37,600 --> 00:05:41,759
так что помните, будьте очень осторожны, если вы это сделаете
145
00:05:39,840 --> 00:05:43,360
это должно быть по какой-то причине
146
00:05:41,759 --> 00:05:45,440
вы хотите, чтобы ваша функция была
147
00:05:43,360 --> 00:05:47,440
автономный
148
00:05:45,440 --> 00:05:50,000
вообще плохая идея использовать глобальные
149
00:05:47,440 --> 00:05:53,120
переменные, так что давайте сделаем еще один пример
150
00:05:50,000 --> 00:05:55,360
я собираюсь добавить несколько
151
00:05:53,120 --> 00:05:56,479
ячеек здесь, чтобы я мог прокрутить вверх и показать
152
00:05:55,360 --> 00:06:01,039
ты эта функция
153
00:05:56,479 --> 00:06:04,000
Я назову это силой
154
00:06:01,039 --> 00:06:05,280
foo запомните двоеточие, и я собираюсь
155
00:06:04,000 --> 00:06:08,639
ценить
156
00:06:05,280 --> 00:06:11,919
равно foo
157
00:06:08,639 --> 00:06:14,319
к власти
158
00:06:11,919 --> 00:06:15,840
и возвращаем значение, так что
159
00:06:14,319 --> 00:06:18,960
случиться там
160
00:06:15,840 --> 00:06:21,440
хорошо, я выполняю это
161
00:06:18,960 --> 00:06:22,479
ничего не произошло, даже нет ошибки
162
00:06:21,440 --> 00:06:24,560
хоть
163
00:06:22,479 --> 00:06:26,240
oof, если вы заметили, это переменная
164
00:06:24,560 --> 00:06:28,880
что я не определил
165
00:06:26,240 --> 00:06:30,080
oof не известно ни снаружи, ни внутри
166
00:06:28,880 --> 00:06:32,880
функционировать вообще
167
00:06:30,080 --> 00:06:35,759
но что случилось, мы определили
168
00:06:32,880 --> 00:06:39,039
функция так введите
169
00:06:35,759 --> 00:06:41,039
власти
170
00:06:39,039 --> 00:06:43,039
говорит мне, что это функция, но у нас нет
171
00:06:41,039 --> 00:06:46,639
позвонил сейчас, если я позвоню
172
00:06:43,039 --> 00:06:46,639
эта функция uf
173
00:06:46,800 --> 00:06:50,400
мощность с любым числом с любым значением
174
00:06:49,840 --> 00:06:51,840
что я
175
00:06:50,400 --> 00:06:53,440
привести это как аргумент и попытаться
176
00:06:51,840 --> 00:06:57,280
выполнить сейчас я получаю
177
00:06:53,440 --> 00:07:00,000
ошибка, потому что oof не определен так
178
00:06:57,280 --> 00:07:02,080
Важное сообщение здесь заключается в том, что
179
00:07:00,000 --> 00:07:03,599
ошибка не была замечена, когда я определил
180
00:07:02,080 --> 00:07:04,880
функция, потому что, когда я определил
181
00:07:03,599 --> 00:07:07,599
функция
182
00:07:04,880 --> 00:07:09,599
на самом деле он не выполняет
183
00:07:07,599 --> 00:07:11,599
внутренности функции
184
00:07:09,599 --> 00:07:13,759
и я не вижу ошибки, но когда я
185
00:07:11,599 --> 00:07:15,199
выйти, когда я вызываю функцию, тогда те
186
00:07:13,759 --> 00:07:17,840
линии выполнены
187
00:07:15,199 --> 00:07:18,639
и я действительно увижу ошибку
188
00:07:17,840 --> 00:07:20,880
хорошо я
189
00:07:18,639 --> 00:07:22,240
выбирая слишком много вещей и последнее
190
00:07:20,880 --> 00:07:25,840
дело в том, что
191
00:07:22,240 --> 00:07:26,880
если я, конечно, определюсь сейчас, я собираюсь
192
00:07:25,840 --> 00:07:30,560
удалите это в
193
00:07:26,880 --> 00:07:34,479
у меня будет больше места, если я сделаю много равных
194
00:07:30,560 --> 00:07:38,080
что-то и теперь я звоню oof
195
00:07:34,479 --> 00:07:41,120
власть с любым аргументом, который сейчас
196
00:07:38,080 --> 00:07:43,840
выполняется, потому что uf определен
197
00:07:41,120 --> 00:07:45,520
эм, давай сделаем что-нибудь еще
198
00:07:43,840 --> 00:07:49,199
интересно давай
199
00:07:45,520 --> 00:07:54,400
numpy здесь в игре и определите
200
00:07:49,199 --> 00:07:54,400
foo равно массиву numpy
201
00:07:56,720 --> 00:08:02,879
и давайте сделаем два, три, четыре
202
00:07:59,919 --> 00:08:04,560
а теперь позвольте позвонить давайте назовем наш старый
203
00:08:02,879 --> 00:08:07,599
квадратный
204
00:08:04,560 --> 00:08:09,840
функция foo я использовал um
205
00:08:07,599 --> 00:08:10,879
это имя, я думаю, что сделал, давай назовем его
206
00:08:09,840 --> 00:08:13,759
с foo
207
00:08:10,879 --> 00:08:15,440
и теперь вы видите, что квадратный foo дал мне
208
00:08:13,759 --> 00:08:18,639
квадрат массива
209
00:08:15,440 --> 00:08:21,919
так что он работает с этим другим
210
00:08:18,639 --> 00:08:23,680
своего рода аргумент сейчас, и я мог бы сделать
211
00:08:21,919 --> 00:08:27,199
другой вид прямо сейчас обратите внимание
212
00:08:23,680 --> 00:08:28,960
что когда я определил здесь square foo
213
00:08:27,199 --> 00:08:30,479
я сказал, что этот аргумент будет
214
00:08:28,960 --> 00:08:34,080
называется foo, но я могу использовать
215
00:08:30,479 --> 00:08:38,640
любая переменная здесь, так что давайте
216
00:08:34,080 --> 00:08:38,640
бар равен numpy
217
00:08:38,839 --> 00:08:46,320
массив давай сделаем
218
00:08:41,360 --> 00:08:46,320
3 и 4 и теперь звоните
219
00:08:48,800 --> 00:08:54,880
квадрат foo с баром
220
00:08:52,959 --> 00:08:56,080
и выполнить его, и теперь приходит
221
00:08:54,880 --> 00:08:58,880
выход
222
00:08:56,080 --> 00:08:59,600
урок здесь в том, что имя
223
00:08:58,880 --> 00:09:01,839
Переменная
224
00:08:59,600 --> 00:09:02,880
вне функции, которую я собираюсь
225
00:09:01,839 --> 00:09:06,000
использовать как аргумент
226
00:09:02,880 --> 00:09:09,120
не важно, как только я отправлю
227
00:09:06,000 --> 00:09:12,560
этот объект называется bar как
228
00:09:09,120 --> 00:09:13,279
аргумент для квадратного foo изнутри, чтобы
229
00:09:12,560 --> 00:09:16,640
эта функция
230
00:09:13,279 --> 00:09:19,519
он будет называться foo, что
231
00:09:16,640 --> 00:09:20,320
последний урок, может быть, я дам тебе
232
00:09:19,519 --> 00:09:23,040
Резюме сейчас
233
00:09:20,320 --> 00:09:23,839
так что def - ключевое слово для определения
234
00:09:23,040 --> 00:09:25,839
функции
235
00:09:23,839 --> 00:09:28,800
за которым следует имя функции end
236
00:09:25,839 --> 00:09:31,839
это заявление с двоеточием
237
00:09:28,800 --> 00:09:33,360
строки с отступом после определения
238
00:09:31,839 --> 00:09:35,120
что будет выполнено, когда ты
239
00:09:33,360 --> 00:09:37,440
вызвать функцию, но
240
00:09:35,120 --> 00:09:38,240
ни одна из этих строк не выполняется на
241
00:09:37,440 --> 00:09:40,640
определение
242
00:09:38,240 --> 00:09:42,720
сами по себе внутренние переменные не
243
00:09:40,640 --> 00:09:45,760
доступно вне функции
244
00:09:42,720 --> 00:09:48,000
и сделайте свою функцию автономной
245
00:09:45,760 --> 00:09:49,360
мы не упомянули собачьи веревки, которые
246
00:09:48,000 --> 00:09:53,680
всегда хорошая идея
247
00:09:49,360 --> 00:09:56,000
и это урок документирования
248
00:09:53,680 --> 00:09:57,120
документирование ваших функций для других
249
00:09:56,000 --> 00:09:59,279
люди, чтобы понять
250
00:09:57,120 --> 00:10:01,440
в этом случае, например, я должен добавить
251
00:09:59,279 --> 00:10:04,800
эта функция
252
00:10:01,440 --> 00:10:08,480
занимает квадрат
253
00:10:04,800 --> 00:10:08,480
его аргумент и
254
00:10:08,880 --> 00:10:12,000
это комментарий, который будет доступен
255
00:10:11,279 --> 00:10:14,160
к
256
00:10:12,000 --> 00:10:15,760
другие пользователи этой функции
257
00:10:14,160 --> 00:10:16,720
всегда полезно использовать то, что называется
258
00:10:15,760 --> 00:10:21,839
собачьи веревки
259
00:10:16,720 --> 00:10:21,839
это сообщение написано между тремя умами
260
00:10:22,240 --> 00:10:27,839
тактика и вы могли бы определить
261
00:10:26,000 --> 00:10:29,440
там какие переменные будут
262
00:10:27,839 --> 00:10:32,000
для вашей функции и оставьте сообщение
263
00:10:29,440 --> 00:10:33,519
для будущего пользователя этой функции i
264
00:10:32,000 --> 00:10:36,480
думаю, это подводит итог
265
00:10:33,519 --> 00:10:42,160
Python функции для вас, и я надеюсь, что это
266
00:10:36,480 --> 00:10:42,160
дает вам это заставляет вас начать
24365
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.