
Portuguese: 
Agora que temos
os inputs e os outputs,
o procedimento
é bem simples.
Especialmente porque sabemos
qual código
queremos executar antes
de definirmos o procedimento.
Eu vou escrever o procedimento
modificando o código aqui.
Vamos abrir um espaço
apagando o código que não faz
parte das 4 linhas
que queremos transformar
em procedimento.
Eu não modifiquei o código.
Eu tenho o que preciso
para o corpo do procedimento.
Era isso que queríamos.
Nós precisamos modificar isto
para transformar os inputs
em procedimentos.
Para isso, nós utilizamos
o nome de sintaxe def,
assim definimos
o procedimento.
Pegamos o próximo alvo.
Nós precisamos
dos parâmetros,
que são os inputs
do procedimento.
Nós decidimos
qual será o input,
que será uma string de conteúdo
de uma página na internet,
que é o que tínhamos
na página variável.

English: 
So now that we know the inputs and the outputs,
the procedure almost writes itself. Especially since we already know the
code that we wanted to execute before we defined the procedure.
So I'm going to write the procedure, by modifying the code here.
So first what we're going to do is make a little space.
Erasing the code that's not part of the 4 lines that we
want to turn in the procedure. So now I've, I haven't
modified the code at all. What I have is, almost exactly what
I need for the body of the procedure. This is what
we want to do. What we need to do is modify that to
get in the inputs, and turn it into a procedure. So, to
make it a procedure, we need to use the def name syntax.
So we're going to define the procedure. Get next target. So
now we need our parameters, the parameters are the inputs for
the procedures and we decided what the input should be.
Is the web contents that's the string giving the contents to
the webpage and that's what we had in the variable

Chinese: 
那么现在我们知道输入和输出
函数几乎能够自然而然地写出来的 尤其是我们在定义函数前
已经知道我们想要执行什么样的代码
所以我要通过修改这里的代码 来编写这个函数 
我们要做的第一件事是留出一些空
除了这 4 行我们打算转换为函数的代码
删掉其他代码 现在我还没有
修改这个代码 我现在拥有的 几乎正是
函数主体需要的代码 这是
我们想要做的 我们需要做的是修改它
使其接收输入 并将之转变为一个函数 那么 
要使它变成一个函数 我们需要用 def 语法
我们要定义函数 get_next_target
现在我们需要参数 即函数的输入
然后我们确定 输入应该是网页内容
即构成页面内容的字符串
也就是我们的变量 page 的值

Japanese: 
これで入力と出力が分かりました
ほとんど関数が自ら記述します
特に関数を定義する前に
実行する必要があるコードが分かっているので
このコードを修正する関数を書いていきます
まず行うことは少しスペースを作ることです
関数で変換したい4行に
含まれていないコードを消去します
完全にコードを修正していません
今あるものはほとんど
関数の主要部分に必要なものです　やりたいことは
必要なことを入力に入れるために修正し
関数に変換することです
関数作成にはdef構文を使う必要があります
では関数を定義していきます
次のターゲットを取得します
ここでパラメータが必要です
パラメータは関数の入力になります
入力が何かは決まっています
Webコンテンツです
コンテンツをWebページへ与える文字列です
これが変数pageで保持していたものです

Chinese: 
所以我们在这里再次调用 page
作为我们的输入 现在我们有
函数的主体 代码和我们之前的
代码一模一样 但是这次 page 并不是之前的
那些网页内容 而将是我们作为输入值传递给
函数的内容 那么我们可以改变 page 的名字
修改变量名是有道理的
这段代码不论我们传递任何值都会运行 它不一定是
一个网页 对于任何我们传递的字符串 这个代码都会
寻找它 所以给它一个稍微通用的名字
会更好 我们将名字改为 s 如果我们修改
参数的名字 那么所有用上 page 的地方都需要修改
现在我们没有 page 值 我们有的
是 s 的值 对应当前参数的名字
所以我们将这些都改为 s
我们差不多要完成了 这还有一个大问题等着我们
去做 那就是我们如何得到输出 好了
我们说过我们想要的输出是
url 和 end_quote 的值 我们需要某种方式
来获取这些值 而这种方式是

Portuguese: 
Nós podemos chamá-la
novamente aqui,
é isso que passamos
como nosso input.
Temos o corpo
do procedimento.
O código é exatamente o mesmo
que tínhamos antes,
mas, em vez de a página
ser qualquer uma,
ela será o que passarmos
como input do procedimento.
Nós podemos alterar o nome
da página. Faz sentido alterá-la.
Este código funciona
independente do que passarmos,
não precisa ser uma página.
Qualquer string que passarmos
será encontrado
por este código.
Faz mais sentido dar
um nome mais genérico.
Mudaremos para "S".
Se mudarmos o parâmetro,
sempre que utilizarmos
"page",
não teremos mais
o valor page.
Nós temos o valor de "S",
que é o nome do parâmetro.
Nós mudamos todos
para "S" também.
Já estamos quase terminando.
Só resta uma coisa:
como obter os outputs.
Queremos que os outputs
sejam o URL
e o valor do end-quote.
Nós precisamos
resgatar essas coisas.
Nós fazemos isso
com o return,

Japanese: 
ここにもう一度そのpageを呼び出します
これが入力として渡したものです　これで関数の
主要部分ができました
コードは以前のコードとまったく同じです
ですが今回はここにあるものを何でも
pageにするのではなく
関数の入力として渡したものが
pageになります　そしてpageの名前を変更できます
名前の変更は意味があります
渡したものが何であれこのコードは機能します
Webページである必要はなく
渡したあらゆる文字列をこのコードが見つけます
なのでより一般的な名前がいいでしょう
名前をsに変更します
もしパラメータの名前を変更したら
pageを使うすべての場所で
pageの値がなくなります
あるのはsの値です　これはパラメータの名前です
ですからこれをすべて同じようにsに変更できます
これでほぼ終了です
1つ重要なことが残っています
どう出力を取得するかです
出力はurlとend＿quoteにする必要があると言いました

English: 
page. So we can call that page again here, that's what
we are passing in as our input and now we have
the body of the procedure. The code is exactly the same
as the code we had before. But this time, instead of page
being whatever it was here, page is whatever we pass in as
the input to the procedure. And we can change the name of
the page. It sort of makes sense to change that name. This
code works no matter what we pass in. It doesn't have to
be a webpage. Any string that we pass in, this code will
find it. So it makes more sense to give it a slightly
more generic name. We'll change the name to S. If we change
the name of the parameter, well everywhere that we use page,
now we don't have the value of page. What we have
is the value of S, which is the name of the
parameter. So we'll change all of those to S's as well. So
we're almost done. There is one big thing we have left
to do and that's how do we get the outputs. Right
we said what we wanted the outputs to be is the
URL and the value of end-quote. We need some way of getting
those back and the way that you do that

Chinese: 
使用 return 语句 return 在 Python 中是一个
特殊的结构 那么我们有关键字 return 跟着
一个包含所有我们想从函数中
返回的东西的列表 那么我们要返回的是
一个包含了任意数量的表达式的列表 用逗号分开
我们可能有零个返回的表达式
这意味着没有输出 函数没有输出有时是
有一定用途的 我们只想将函数想成一个
输入输出的映射关系是不对的
函数还可以做其他的事情 它们可以
做一些我们称之为“副作用”的事情 副作用是什么东西呢 是我们能够
看见的 但是并不是输出的东西 一个副作用的
例子是 如果我们打印出一些东西 我们会
看见结果 我们看见的是代码和函数运行时
发生的一切 但是我们不能使其作为输出
所以 在这个例子中 我们确实想要从 get_next_target
函数中获得输出 我们想要返回结果 以便于我们知道如何
继续 那么我们确定了输出应该是

Portuguese: 
que é uma construção
especial do Python.
Temos a palavra-chave return
seguida de tudo que queremos
recuperar do procedimento.
Ela será uma lista
de expressões
separadas por vírgulas.
Podemos obter expressões
de "zero return",
pois não há nenhum output.
É útil ter procedimentos
sem outputs às vezes.
Isso não funciona
para procedimentos
que mapeiam inputs
em outputs,
mas eles podem
fazer outras coisas
como exibir
o efeito colateral,
que é aquilo vemos,
mas que não são outputs.
Um exemplo disso aconteceria
ao imprimir algo,
pois veríamos tudo enquanto
o código do procedimento roda,
mas não teríamos isso
como o output.
Neste caso, queremos os outputs
da obtenção do próximo alvo.
Nós queremos retornar resultados
para saber como continuar.
Nós decidimos qual deve ser
o output, o valor do URL.

English: 
is to use return. Return's a special construct in
python. So we have the keyword return, followed by
a list of all the things that we want
to return from the procedure. So what we return
is a list of any number of expressions, seperated
by commas. We can have zero return expressions, that
would mean there's no output. And it actually is useful
to have procedures with no output sometimes. That's not true if
we just think of procedures as things that map inputs to
outputs, but procedures can also do other things. They can do
what we call side-effects, and what side-effects are, are things that we
can see, but that aren't the outputs. And an example of
a side-effect would be, well, if we printed something out, we would
see that result happen. We'd see everything that happens when the
code and procedure runs. But we wouldn't get it as an output.
So, in this case, we do want to have outputs from get
next target. We want to return results, so we know how to
continue. And we decided what the output should be, are the

Japanese: 
returnを使ってこれらを戻します
returnはPythonの特別な命令文です
キーワードのreturn　それに続いて
関数から返す必要のあるもの全部のリストがあります
返すのはコンマで区切られた式の全数値のリストです
ゼロのreturn式があります
これは出力がないことを意味します
出力がない関数には実際に役に立つものです
入力を出力に対応づけるものとして
関数を考えるのは誤りです
しかし関数も別のことができます
副作用と呼んでいるもので
見ることができるものです
ですが出力ではありません
例えば何かを表示したらどんな結果になったか
見ることができます
コードや関数を実行して起きることを
見ることができますが出力として取得しません
ですからこの場合get＿next＿targetから
出力を得る必要があります
結果を返す必要があります
どのように続けるか分かっています
出力を何にするか決めています

Portuguese: 
Então definimos a string
do próximo alvo
e o valor da end-quote,
para sabermos onde
ele foi encontrado.
Vamos ver se você consegue
terminar a instrução return.
O objetivo é descobrir
o código depois do return...
para terminar
o procedimento.

Chinese: 
url 的值 即我们想要找的下一个目标字符串
以及 end_quote 的值 这样我们
知道它被找到的位置 所以让我们看看你
是否能想出如何完成这个 return 语句
你的目标是想出我们在 return 后面
需要的代码 来完成这个函数

Japanese: 
それはurlの値です
ですから次のターゲットの文字列を
見つけなければなりません
そしてend＿quoteの値です
見つかった位置が分かっています
return文を終了する方法を理解できていますか？
皆さんの目標はこの手順を終了するために
returnの後ろに必要なコードを作ることです

English: 
value of the URL. So we want to find the string that's the
next target. And the value of the end quote, so we
know the position where it was found. So let's see if you
can figure out how to finish the return statement. And your
goal is to figure out the code that we need after the
return, to finish this procedure.
