Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
...
So how do we create this notion of abstraction Vậy làm thế nào để chúng ta tạo ra khái niệm về sự trừu tượng and decomposition in Python, or actually và sự phân tách trong Python, hoặc thực sự
in any programming language? trong bất kì loại ngôn ngữ lập trình nào?
And the answer is, we introduced the idea Và câu trả lời là, chúng tôi đã giới thiệu ý tưởng
of a reusable piece of code, or a chunk of code, của một đoạn mã có thể tái sử dụng hoặc một khối mã,
called a function. gọi là hàm
Functions are not going to be run in a program Các hàm sẽ không được chạy trong một chương trình
until we actually ask them to do that. cho đến khi chúng tôi thực sự yêu cầu chúng làm điều đó.
So as opposed to things I was typing into my shell-- Vì vậy, trái ngược với những thứ tôi đã gõ vào shell --
every time I typed in an expression, mỗi khi tôi gõ vào một biểu thức,
it was invoked or evaluated-- I'm nó đã được gọi hoặc đánh giá - Ta
going to create a definition of a function. sẽ tạo ra một định nghĩa của hàm.
And when I read that in, it's simply Và khi ta đọc nó trong, nó chỉ đơn giản là
going to create the ability to do that computation, sẽ tạo ra khả năng thực hiện tính toán đó,
but not actually call it. nhưng không thực sự gọi nó.
And we'll see an example of that in a second. Và chúng ta sẽ thấy một ví dụ về điều đó trong giây lát.
What are the characteristics of a function? Đâu là các đặc tính của một hàm?
Several. Có vài thứ
First, it has a name. Đầu tiên, nó có một cái tên.
That makes sense. Nghe hợp lý.
I've got to be able to refer to it. Tôi phải có khả năng tham chiếu nó.
In the same way that I had a variable as a name for a value, Theo cùng một cách mà tôi đã có một biến như là một cái tên cho nột giá trị,
a function will have a name. một hàm cũng sẽ có một tên.
It will also take a set of parameters. Nó cũng sẽ cần một tập hợp các tham số.
These are arguments or values that I'm Đây là những đối số hoặc giá trị mà ta
going to use inside the function when I do a computation. sẽ sử dụng bên trong hàm khi ta thực hiện tính toán.
It's going to make sense in a second Bạn sẽ hiểu vì sao trong giây lát
when we look at an example. khi chúng ta xem xét một ví dụ.
Every function has to have parameters. Mỗi hàm đều phải có tham số.
But the number of parameters could be zero. Nhưng số lượng tham số có thể bằng không.
Or it's a funny way of saying, it's Hoặc đó là một cách nói hài hước, nó
going to take in a parameter list, sẽ nhận vào một danh sách tham số,
but in fact, it may need no parameters. nhưng trên thực tế, nó có thể không cần tham số.
And I'm going to decide when I create a function how Và tôi sẽ quyết định khi tạo hàm là
many parameters I need. tôi cần bao nhiêu tham số.
We'd like every function to have a doc string. Chúng ta muốn mọi hàm đều có một docstring.
That is a documentation that tells me Đó là một tài liệu cho tôi biết
what the function does. hàm làm gì.
We'll see an example of that in a second. Chúng ta sẽ thấy một ví dụ về điều đó trong giây lát.
And finally, a function has a body. Và cuối cùng, mỗi hàm có một thân hàm.
And the body is the sequence of commands or instructions Và phần thân là chuỗi các lệnh hoặc hướng dẫn that we want to actually have happen mà chúng ta muốn thực sự xảy ra when we use the function. khi chúng ta sử dụng hàm. Those are a lot of words. Đó là rất nhiều từ. Let's look at an example to get a sense of this. Hãy xem xét một ví dụ để có được cảm giác về điều này. Here's a definition of a function. Đây là định nghĩa của một hàm. And I'm going to walk through each of these pieces. Và tôi sẽ đi qua từng phần này. So the first part of it is I've got a keyword, in this case Vì vậy, phần đầu tiên của nó là tôi đã có một từ khóa, trong trường hợp này def. def. And it is a key word, meaning it's Và nó là một từ khóa, có nghĩa là nó a special symbol to Python that tells me một biểu tượng đặc biệt cho Python cho ta biết I'm about to define something. Tôi sắp định nghĩa cái gì đó. In this case, I'm about to define a function. Trong trường hợp này, ta sắp định nghĩa một hàm. That is followed by a string that Tiếp theo đó là chuỗi is the name of the function. gọi là tên của hàm. In this case, it's is even, or is underscore even. Trong trường hợp này, nó là chẵn, hoặc được nhấn mạnh thậm chí. That's the name I'm going to give to this function. Đó là tên ta sẽ đặt cho hàm này. That is followed in parentheses, in those parens, Điều đó được theo sau trong ngoặc đơn, trong các parens đó,-- by zero, one, or more parameters. bằng không, một hoặc nhiều tham số. In this case, I've got one. Trong trường hợp này, ta đã có một cái. And I'm giving it a name. Và ta đang đặt cho nó một cái tên. Think of it like a variable name. Hãy nghĩ về nó như một cái tên biến đổi. Well, I'm saying, I'm going to use the name Chà, ta đang nói, ta sẽ sử dụng tên i as the name for a parameter inside this function. i làm tên cho một tham số bên trong hàm này. And that's then followed by a colon Và đó là sau đó là một dấu hai chấm to tell me I'm done with the top line of the definition, để cho tôi biết tôi đã hoàn thành với dòng trên cùng của định nghĩa, I'm about to follow it with other information. Ta sắp theo dõi nó với các thông tin khác. So keyword def, a name, and in parens Vì vậy, từ khóa def, một cái tên và trong parens some number of parameters. một số tham số. Immediately below that in triple double quotes-- Ngay bên dưới đó trong dấu ngoặc kép gấp ba-- which is a wonderful expression-- is a docstring. đó là một biểu hiện tuyệt vời - là một tài liệu. It's up to you how to use this. Nó tùy thuộc vào bạn làm thế nào để sử dụng điều này. But traditionally, you would specify Nhưng theo truyền thống, bạn sẽ chỉ định what's the input to this function đầu vào cho hàm này là gì and what's the output of this function. và đầu ra của hàm này là gì. It's a little bit like a contract. Nó hơi giống một hợp đồng. In this case, I'm saying I'm expecting one input. Trong trường hợp này, ta đang nói rằng ta đang mong đợi một đầu vào. I'm calling it i. Ta 2gọi nó là i And it's a positive integer. Và đó là một số nguyên dương. And what I'm going to return is true if i is even. Và những gì ta sẽ trở lại là sự thật nếu ta là đồng đều. Otherwise, I'm going to return false. Nếu không, tôi sẽ trả lại sai. As you'll see in a little bit, one Như bạn sẽ thấy trong một chút, một of the nice things about a docstring trong những điều tốt đẹp về một docstring is, once I've defined this function, if I go to call it, là, một khi ta đã định nghĩa hàm này, nếu ta đi gọi nó, which I'm going to get to in a second, Python will mà tôi sẽ đạt được trong giây lát, Python sẽ automatically bring up a little window that tells me tự động hiển thị một cửa sổ nhỏ cho ta biết the docstring that's remind me what docstring nhắc nhở ta những gì the conditions for this function are, which is great. các điều kiện cho hàm này là, đó là tuyệt vời. So keyword, name, parameters, I've got a docstring. Vì thế từ khóa, tên, tham số, ta đã có một docstring. Immediately below that is the body of the function. Ngay bên dưới đó là cơ thể của hàm. This is the sequence of commands or expressions Đây là chuỗi các lệnh hoặc biểu thức I want to evaluate when I'm ready to use this. Ta muốn đánh giá khi nào tôi đã sẵn sàng sử dụng cái này. Notice the indentation-- all of this is indented here. Lưu ý thụt lề - tất cả những điều này được thụt lề ở đây. This is telling me where the body of the function is. Điều này cho ta biết phần khung của hàm ở đâu. And in fact, it will be everything Và trên thực tế, nó sẽ là tất cả mọi thứ until I get back to something that cho đến khi ta quay lại với một cái gì đó returns to the left hand side of the editor or of the shell. trở về phía bên tay trái của trình soạn thảo hoặc của shell. In this case, I've got two expressions in my body. Trong trường hợp này, ta có hai biểu hiện trong cơ thể của mình. It's going to print out simply the string hi. Nó sẽ in ra chỉ đơn giản là string hi. And then it's going to return a value. Và sau đó nó sẽ trả về một giá trị. We'll come back to the return in a second. Chúng tôi sẽ trở lại hàm return một giây nữa. There is how I write a function. Có cách ta viết một hàm. Now, how do I use it? Bây giờ, làm thế nào để ta sử dụng nó? The function has a name. Hàm này có tên. The same way I could use a variable Giống như cách ta có thể sử dụng một biến as a name inside of an expression, như một cái tên bên trong một biểu thức, I can use the function name. Ta có thể sử dụng tên hàm. And in particular, later on in the code, Và đặc biệt, sau này trong mã, I can say an expression like, is underscore even, Tôi có thể nói một biểu thức như, được nhấn mạnh ngay cả, and then an open paren, followed by an expression whose value và sau đó là một paren mở, theo sau là một biểu thức có giá trị I'm going to use inside of that procedure Ta sẽ sử dụng bên trong quy trình đó followed, in this case, by a closed paren, because there's theo sau, trong trường hợp này, bởi một paren đóng cửa, bởi vì có only one parameter. chỉ có một tham số. I call this invoking or calling the function. Ta gọi đây là gọi gọi hoặc callhàm. I'm using the function. Ta đang sử dụng hàm này. We're going to look at some examples in a second. Chúng ta sẽ xem xét một số ví dụ trong giây lát. But the basic idea here is that, when I call this function, Nhưng ý tưởng cơ bản ở đây là, khi ta gọi hàm này, I'm going to take the value 3, in this case, Ta sẽ lấy giá trị 3, trong trường hợp này, and everywhere I see an i in the body of the function, và ở khắp mọi nơi ta thấy chữ i trong cơ thể của hàm, I'm going to use that value in place of i. Ta sẽ sử dụng giá trị đó thay cho i. And in fact, if I look at it then, Và trên thực tế, nếu tôi nhìn vào nó thì, inside of this particular expression, bên trong biểu hiện cụ thể này, I'm going to print out simple the string hi. Ta sẽ in ra đơn giản string hi. And then I'm going to evaluate this particular expression. Và sau đó ta sẽ đánh giá biểu hiện cụ thể này. And it has the keyword return followed by an actual value. Và nó có lợi nhuận từ khóa return là một giá trị thực tế. Now, I just said, in this case, if I've Bây giờ, ta chỉ nói, trong trường hợp này, nếu ta đã called is_even with the parameter 3, được gọi là is_even với tham số 3, i now holds the value 3. bây giờ ta giữ giá trị 3. So I'm going to evaluate 3 remainder 2 and say, Vì vậy, ta sẽ đánh giá 3 phần còn lại 2 và nói, is that equal to 0? con số đó có bằng 0 không? In this case, it's not, because the remainder is 1. Trong trường hợp này, nó không phải, bởi vì phần còn lại là 1. And I'm going to then return that value to whoever Và sau đó ta sẽ return giá trị đó cho bất cứ ai called this function. được gọi là hàm này. So that's the expression I want to evaluate and actually Vì vậy, đó là biểu thức ta muốn đánh giá và thực sự return. hàm return. So return is a keyword that tells me Vì vậy,hàm return là từ khóa cho tôi biết I'm ready to stop the computation. Ta đã sẵn sàng để ngăn chặn việc tính toán. And whatever the following expression is, Và bất kể biểu thức sau đây là gì, that is the value I'm going to give back đó là giá trị ta sẽ trả lại to the person who asked for it. cho người yêu cầu nó. In this case, it was simply at my shell. Trong trường hợp này, nó chỉ đơn giản là ở vỏ của tôi. But we'll see in a second, it could Nhưng chúng ta sẽ thấy trong giây lát nữa, nó có thể be somebody else that's going to use it là người khác sẽ sử dụng nó as part of another computation. như một phần của phép tính khác.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.