Ir para conteúdo
Entre para seguir isso  
Scarela

Aula 3: Fluxo de dados(Parte 1)

Recommended Posts

Scarela    0
Scarela

Python

 

 

Aula 3

 

 

Controle do fluxo de dados

 

 

Parte 1

 

 

 

Olá novamente ^^

Aqui estamos com nossa terceira aula sobre Python.Essa aula da início ao controle do fluxo de dados, ou seja, lhe permite ter controle sobre o que acontece no programa, como as condições por exemplo.

A parte de controle do fluxo de dados não será passada em uma única aula, mas sim em duas.

Motivo: Ela possui um número maior de comandos ESSENCIAIS.É necessário compreender todos, sem brechas e dúvidas.

 

 

• Os comandos if, elif e else

 

O if é um dos comandos mais utilizados, presente em TODAS as linguagens de programação, e é o principal comando na criação de condições.

A palavra "if" significa "se".Além do comando if temos também os comandos: elif e else.

 

Elif: Esse comando é uma abreviação do comando "Elseif" existente em outras linguagens de programação(C/C++).O comando Elif é utilizado quando existem mais de uma "alternativa" na condição.Seu significado seria "Ou se..."

 

Else: O comando Else seria a última alternativa para a "saída" da condição.Sua tradução seria "Se não...".

 

Caso esteja confuso não se preocupe, darei um exemplo que ajudará a entender melhor o funcionamente dos três:

 

Primeiramente, defina um valor a uma variável x:

 

[color=black][font=Verdana]x = 5[/font][/color]

 

Agora, vamos ao código:

 

[color=black][font=Verdana]if x < 0:[/font][/color]
[color=black][font=Verdana]print('x é um número negativo')[/font][/color]
[color=black][font=Verdana]elif x == 0:[/font][/color]
[color=black][font=Verdana]print('x é um valor nulo')[/font][/color]
[color=black][font=Verdana]else:[/font][/color]
[color=black][font=Verdana]print('x é um número positivo')[/font][/color]

 

Muito bem, agora vamos explicar o código e a atuação dos comandos.

 

- Na primeira linha temos "if x < 0:".Nunca se esqueça: quando usar o comando if, a condição virá logo depois do comando, seguida por dois pontos.No caso temos: if x < 0: .Ou seja: "se x for menor que zero...".

Ao final do comando if, assim como no while, haverá dois pontos e a ação para determinada condição será acrescentada na linha de baixo.

 

- A segunda linha corresponde a ação que irá ocorrer para o comando if.No caso temos um simples print, o qual irá mostrar a string "x é um número negativo", caso x seja um valor menor que zero.

 

- Na terceira temos um comando elif.O comando elif, assim como o if, será diretamente seguido pela condição e por dois pontos.No caso: elif x == 0: .Ou seja: "Ou se x for igual a zero...".Assim como no if, deve haver os dois pontos ao final do comando e a ação deve ser acrescentada na linha de baixo

 

- Na quarta linha a um print que responde a segunda condição, ou seja, ao elif.

 

- Na quinta temos o comando else.Perceba que o comando else não apresenta diretamente uma condição como no if e elif.Isso ocorre porque o else irá atribuir aquela ação para qualquer condição que não tenha sido especificada antes.Else aparece sempre sosinho, seguido apenas pelos dois pontos e, sua ação, deve ser feita na linha de baixo como nos demais.Devemos usar else quando chegamos a ultima condição.Nesse caso por exemplo:

1° condição: foi estabelecida uma string que deve ser retornada no caso de x ser um número negativo

 

2° condição: foi estabelecida uma string que deve ser retornada no caso de x ser igual a zero.

 

Não existe portanto outra alternativa!A única condição que pode existir agora, pois é também o único conjunto numérico que sobrou, os números positivos.Portanto é utilizado o Else: qualquer valor, que não seja o das condições citadas antes, retornará o valor definido por else.

 

 

• Comando for

 

O comando for atua sobre listas/sequências.O comando sempre irá agir de termo em termo, de acordo como estão organizados.

 

Um exemplo que utiliza o comando for:

 

a = [‘Um’, ‘Dois’, ‘Três’]

 

Aqui nós definimos uma lista para a variável a.

 

[font=Verdana][color=black][color=black][font=Verdana]for x in a:[/font][/color]
[color=black][font=Verdana]        print x[/font][/color]
[/color][/font]

 

 

Nosso resultado será:

 

[font=Verdana][color=black][color=black][font=Verdana]Um[/font][/color]
[color=black][font=Verdana]Dois[/font][/color]
[color=black][font=Verdana]Três[/font][/color]
[/color][/font]

 

Vamos explicar o código:

 

- Na primeira linha temos o comando for.O comando for sempre seguirá a seguinte estrutura: for, variável, in, variável da sequência, dois pontos.No caso: for x in a: .Então seria: para x na variável a

Nesse caso, a variável a possui três termos(0(Um), 1(Dois) e 2(Três)), portanto, x irá assumir o valor de cada um na sequência para retorná-lo.Primeiro irá assumir o termo 0 e irá retornar seu valor, no caso Um.E assim sucessivamente até acabar a lista.

 

- Na segunda linha temos o “print x”.Ele irá retornar o termo que x assumiu.

 

Podemos atribuir mais de um comando ao usar for.Ainda seguindo o mesmo exemplo:

 

[font=Verdana][color=black][color=black][font=Verdana]For x in a: [/font][/color]
[color=black][font=Verdana]        print x, len(x)[/font][/color]
[/color][/font]

 

 

Nesse caso além de mostrar o termo que x assume, também é mostrado quantos caracteres há no termo assumido.Irá retornar então:

 

[color=black][font=Verdana]Um 2[/font][/color]
[font=Verdana][color=black]Dois 4[/color][/font]
[font=Verdana][color=black]Três 4[/color][/font]

 

 

 

• O comando range()

 

O comando range() também está entre os mais utilizados na programação.Sua função é gerar sequências, ou seja: listas em progressão aritmética.

Exemplo:

 

[font=Verdana][color=black][color=black][font=Verdana]>>> range(6)[/font][/color]
[color=black][font=Verdana][0, 1, 2, 3, 4, 5][/font][/color]
[/color][/font]

 

“Mas como assim?Eu digitei (6), porque foi só até o 5? O.o”

 

Resposta: O comando considera o número entre parênteses o número de termos que haverá na lista.Ao digitar um número direto(como no caso simplesmente colocamos o 6 entre parênteses) ele considera, automaticamente, colocar 6 termos na lista e, por não haver um número que determine o começo da progressão, preencher os termos com números a partir do 0(zero) e ter o número 1 como razão(0, 1, 2...), até preencher os 6 termos.A diferença é que o 1° termo, no comando range, não começa do 0, mas sim do 1.

 

Podemos também definir a partir de qual número a lista deve começar.Por exemplo:

 

[font=Verdana][color=black][color=black][font=Verdana]>>> range(5, 10)[/font][/color]
[color=black][font=Verdana][5, 6, 7, 8, 9][/font][/color]
[/color][/font]

 

 

Para definir o início da lista utilizamos o comando da seguinte maneira: range(x, y), onde x deve ser substituído pelo valor inicial e y pelo último termo.É exatamente por isso que, nesse caso, range(5, 10) vai até 9: 10 termos – 5 termos = 5 termos.5 Termos, porém temos 6 valores: cabem apenas 5, portanto, 9 é o limite no caso.

 

 

Essa aula termina por aqui.Na próxima aula continuaremos vendo o controle do fluxo de dados.

Aprendemos então, na primeira parte:

-Comando if, elif e else

-Comando for

-Comando range()

 

Recomendo que você treine cada um desses comandos para que se acostume com os códigos, uma vez que usará maior parte do conhecimento das outras aulas.

 

Qualquer dúvida basta postar. (Y)

Em breve Aula 4: Fluxo de Dados(Parte 2)

 

Abraços

Scarela :bye:

Editado por Scarela

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Fui testar o primeiro comando e deu isso:

 

File "<pyshell#10>", line 2

print('x é um número negativo')

^

IndentationError: expected an indented block

 

To lendo o resto do tutorial ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Scarela    0
Scarela

Estranho.

Acabei de testar novamente o código aqui e funcionou.Confira se digitou tudo certo, se não há letras ou aspas faltando. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Eu tentei digitar e tambem tentei o ctrl+c ctrl+v.

Vou almoçar, volto logo e vejo a resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Scarela    0
Scarela

Entendi o que aconteceu. ^^

 

Você não especificou o valor de x!

Como pode ver, antes de aplicar o código você deve atribuir um valor a variavel utilizada no comando(no caso x).

 

No caso ele classifica a variável em negativo, positivo ou nulo.Ele retorna o erro porque, como a variável não possui um valor, ele não tem como classificar nada.

 

 

Espero ter respondido sua pergunta ;]

 

Abraços

Scarela

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Na verdade, eu defini sim o valor de x, como mostra na imagem a seguir:

 

5nsos2.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
Scarela    0
Scarela
Na verdade, eu defini sim o valor de x, como mostra na imagem a seguir:

 

5nsos2.jpg

 

Só posso supor, então, que o problema é a estrutura.Normalmente o interpretador arruma a estrutura automáticamente.Tente dar um Tab quando for adicionar os comandos "dentro" dos comandos if/elif.

 

Tente deixá-lo da seguinte maneira:

 

codigossj.jpg

 

Em caso de não dar certo, entre em contato comigo via PM 0.o

 

 

Abraços

Scarela

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Agora funcionou. =P. Obrigado. Espero mais aulas hein?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Scarela    0
Scarela

Por nada Kisin~*

 

A aula 4 já foi postada ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Agora, deu outro erro:

 

28a6t01.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
Scarela    0
Scarela

Nesse caso não tenho certeza absoluta do que você tentou.

 

Caso você tenha especificado x = -8, não foi um erro de lógica nem nada do gênero.O que aconteceu foi que você inverteu: especificou que quando x fosse menor que 0 mostrasse "Número positivo" e, no comando else, colocou para que mostrasse número negativo =P

 

Erro de atenção...fiz isso também na imagem que postei para lhe mostrar a estrutura correta xD

 

Se você fez x + 8 = 0:

x vale -8, ponto.Podemos dizer que x + 8 = 0 é uma equação, portanto, o valor de x será substituído por -8 e a conta será realizada normalmente.X continuará valendo -8, pois zero é apenas o resultado da conta ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kisin~*    0
Kisin~*

Ah, inverti na hora de escrever a msg.

Sry.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Rdgxnk    0
Rdgxnk

Otima Aula ;]

 

parabeinz... boa organização e talz...

 

;]

 

Ektos~

Compartilhar este post


Link para o post
Compartilhar em outros sites
lallau    0
lallau

foi boa, mas...

 

e como fica o:

 

for i in range(30):

 

 

hehe, isso ai em cima eu aprendi como sendo para repetir x vezes (no caso, 30 vezes)

 

 

 

obs: sei que os tópicos são antigos, mas vou postar assim mesmo, pois isto seria um desperdício se fosse deixado parado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×