Mudanças entre as edições de "Python 2021 Mod1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(18 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
 
;Logística:
 
;Logística:
  
    Pressione Shift + Enter para executar cada bloco de código no ambiente do Google Colab ou copie e cole os códigos/comentários em um arquivo python.
+
*    Pressione Shift + Enter para executar cada bloco de código no ambiente do '''Google Colab''' ou copie e cole os códigos/comentários em um arquivo python.
    As apresentações e explicações conceituais são fornecidas em blocos de texto. As explicações relacionadas aos códigos são incluídas como comentários acima dos códigos.
+
*    As apresentações e explicações conceituais são fornecidas em blocos de texto. As explicações relacionadas aos códigos são incluídas como comentários acima dos códigos.
    Exercícios/problemas práticos são indicados em cada módulo. Para exercícios de codificação, você pode baixar uma IDE externa de Python (por exemplo, Anaconda) para programar e testar sua implementação. Uma possível implementação do exercício é fornecida sob o problema.
+
*    Exercícios/problemas práticos são indicados em cada módulo. Para exercícios de codificação, você pode baixar uma IDE externa de Python (por exemplo, Anaconda) para programar e testar sua implementação. Uma possível implementação do exercício é fornecida sob o problema.
  
 
;Objetivos de aprendizado:
 
;Objetivos de aprendizado:
  
    Definir e modificar variáveis de vários tipos de dados. Converter entre tipos de dados.
+
#    Definir e modificar variáveis de vários tipos de dados. Converter entre tipos de dados.
    Compreender as características e usos de cada operação e a saída (output) correspondente.
+
#    Compreender as características e usos de cada operação e a saída (output) correspondente.
    Compreender e corrigir estas declarações para verificar as condições.
+
#    Compreender e corrigir estas declarações para verificar as condições.
  
 
== Variáveis==
 
== Variáveis==
Linha 22: Linha 22:
 
Nota sobre a declaração de variáveis:
 
Nota sobre a declaração de variáveis:
  
    Case-sensitive (ou seja, caracteres em caixa alta ou baixa são tratados como diferentes)
+
*    Case-sensitive (ou seja, caracteres em caixa alta ou baixa são tratados como diferentes)
    DEVE começar com uma letra ou um sublinhado; NÃO PODE começar com números.
+
*    DEVE começar com uma letra ou um sublinhado; NÃO PODE começar com números.
    NÃO PODE ser o mesmo nome que as palavras-chave Python (por exemplo, class, finally, etc.)
+
*    NÃO PODE ser o mesmo nome que as palavras-chave Python (por exemplo, class, finally, etc.)
    NÃO especificar o tipo de informação armazenada na variável. (Consulte os seguintes códigos para um exemplo.)
+
*    NÃO especificar o tipo de informação armazenada na variável. (Consulte os seguintes códigos para um exemplo.)
 +
 
 +
<syntaxhighlight lang=python>
  
 
# Exemplos de declarações de variáveis
 
# Exemplos de declarações de variáveis
Linha 36: Linha 38:
  
 
width
 
width
 +
</syntaxhighlight>
  
10
+
10
  
 +
height
  
 +
<pre>
 
---------------------------------------------------------------------------
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
NameError                                Traceback (most recent call last)
Linha 48: Linha 53:
  
 
NameError: name 'height' is not defined
 
NameError: name 'height' is not defined
 +
</pre>
  
Height
+
Height
 
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
<ipython-input-1-e6498a6da099> in <module>()
 
----> 1 Height
 
 
 
NameError: name 'Height' is not defined
 
  
 +
<syntaxhighlight lang=python>
 
# Usando uma palavra-chave python como um nome variável
 
# Usando uma palavra-chave python como um nome variável
 
# ERROR CODE: sintaxe inválida
 
# ERROR CODE: sintaxe inválida
Linha 64: Linha 64:
  
 
global
 
global
 +
</syntaxhighlight>
  
 +
<pre>
 +
File "<ipython-input-24-b3ca504336d9>", line 4
 +
    global = 1
 +
          ^
 +
SyntaxError: invalid syntax
 +
</pre>
 +
 +
<syntaxhighlight lang=python>
 
# Mais declarações para diferentes tipos de variáveis   
 
# Mais declarações para diferentes tipos de variáveis   
  
Linha 79: Linha 88:
 
# armazenando um valor booleano
 
# armazenando um valor booleano
 
bool_Condition = True
 
bool_Condition = True
 +
</syntaxhighlight>
  
helloMessage
+
helloMessage
  
character_example
+
character_example
  
_newFloat
+
_newFloat
  
bool_Condition
+
bool_Condition
 
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
<ipython-input-10-999c5ab5a2cb> in <module>()
 
----> 1 bool_Condition
 
 
 
NameError: name 'bool_Condition' is not defined
 
  
 
=== Conversor de Tipo===
 
=== Conversor de Tipo===
Linha 101: Linha 104:
 
Uma função útil: type() define o tipo dos dados
 
Uma função útil: type() define o tipo dos dados
  
 +
<syntaxhighlight lang=python>
 
# A partir da declaração acima, width = 10 e 10 é int, então esperamos que a função retorne int
 
# A partir da declaração acima, width = 10 e 10 é int, então esperamos que a função retorne int
 
type(width)
 
type(width)
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
<ipython-input-2-1b5d9269b43f> in <module>()
 
      1 # A partir da declaração acima, width = 10 e 10 é int, então esperamos que a função retorne int
 
----> 2 type(width)
 
 
NameError: name 'width' is not defined
 
  
 
type(helloMessage)
 
type(helloMessage)
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
<ipython-input-3-2cbfd6484f50> in <module>()
 
----> 1 type(helloMessage)
 
 
NameError: name 'helloMessage' is not defined
 
  
 
type(bool_Condition)
 
type(bool_Condition)
Linha 143: Linha 132:
 
# Converter width_string de volta a um int
 
# Converter width_string de volta a um int
 
type(int(width_string))
 
type(int(width_string))
 +
</syntaxhighlight>
  
 
== Operações==
 
== Operações==
 
=== Operadores Aritméticos===
 
=== Operadores Aritméticos===
  
 +
<syntaxhighlight lang=python>
 
# Operações matemáticas básicas com Números
 
# Operações matemáticas básicas com Números
  
Linha 178: Linha 169:
 
# Divisão Modular: retornar o restante da divisão
 
# Divisão Modular: retornar o restante da divisão
 
print(10%3)
 
print(10%3)
 +
</syntaxhighlight>
  
 +
<pre>
 
28
 
28
 
75
 
75
Linha 189: Linha 182:
 
3
 
3
 
1
 
1
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
# Operações com Strings e Caracteres
 
# Operações com Strings e Caracteres
 
print("foo" * 5)
 
print("foo" * 5)
 
print('x'*3)
 
print('x'*3)
 +
</syntaxhighlight>
  
foofoofoofoofoo
+
foofoofoofoofoo
xxx
+
xxx
  
 +
<syntaxhighlight lang=python>
 
# ERRO: o compilador trata x como uma variável, não como um caractere
 
# ERRO: o compilador trata x como uma variável, não como um caractere
 
print(x*3)
 
print(x*3)
 +
</syntaxhighlight>
  
 +
<pre>
 
---------------------------------------------------------------------------
 
---------------------------------------------------------------------------
 
NameError                                Traceback (most recent call last)
 
NameError                                Traceback (most recent call last)
Linha 207: Linha 206:
  
 
NameError: name 'x' is not defined
 
NameError: name 'x' is not defined
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
# ERRO: não pode concatenar um int com uma string --> necessidade de computar int com uma string
 
# ERRO: não pode concatenar um int com uma string --> necessidade de computar int com uma string
 
print("hello" + 5)
 
print("hello" + 5)
 +
</syntaxhighlight>
  
 +
<syntaxhighlight lang=python>
 
# Fix
 
# Fix
 
print("hello " + str(5))
 
print("hello " + str(5))
 +
</syntaxhighlight>
  
 +
<syntaxhighlight lang=python>
 
# Adição de String = concatenação
 
# Adição de String = concatenação
 
print("hello " + "world")
 
print("hello " + "world")
 +
</syntaxhighlight>
  
1.1.2: Outros Operadores
+
===Outros Operadores===
  
 +
<syntaxhighlight lang=python>
 
# Comparadores: retornar valor booleano
 
# Comparadores: retornar valor booleano
  
Linha 240: Linha 247:
 
print(10 <= 20)
 
print(10 <= 20)
 
print(8 <= 3)
 
print(8 <= 3)
 +
</syntaxhighlight>
  
 +
<syntaxhighlight lang=python>
 
# Comparadores em Strings
 
# Comparadores em Strings
  
Linha 250: Linha 259:
  
 
print("cat" < "dog")
 
print("cat" < "dog")
 +
</syntaxhighlight>
  
1.3: Declarações Condicionais
+
== Declarações Condicionais==
1.3.1: Estrutura Condicional If
+
=== Estrutura Condicional If===
  
Avisos importantes:
+
;Avisos importantes:
  
    A ordem das condições importa!
+
A ordem das condições importa!
        Se mais de uma condição estiver satisfeita, então as ações associadas à primeira condição satisfeita serão executadas e saltarão as demais condições e códigos.
+
**    Se mais de uma condição estiver satisfeita, então as ações associadas à primeira condição satisfeita serão executadas e saltarão as demais condições e códigos.
    "elif" = "else if"
+
*    "elif" = "else if"
        "elif" expressa o mesmo significado que "else if"
+
**        "elif" expressa o mesmo significado que "else if"
    Pelo menos uma condição DEVE ser prevista para ambas as cláusulas if e elif, senão ERROR!
+
*    Pelo menos uma condição DEVE ser prevista para ambas as cláusulas if e elif, senão ERROR!
    Os parênteses para if e elif são opcionais. Seu código funcionará com ou sem o ().
+
*    Os parênteses para if e elif são opcionais. Seu código funcionará com ou sem o ().
  
 +
<syntaxhighlight lang=python>
 
x = 7
 
x = 7
 
y = 14
 
y = 14
 
  
 
if (2*x == y):
 
if (2*x == y):
Linha 273: Linha 283:
 
else:
 
else:
 
   print("y is NOT double of x")
 
   print("y is NOT double of x")
 +
</syntaxhighlight>
  
y is double of x
+
y is double of x
  
 +
<syntaxhighlight lang=python>
 
x = 7
 
x = 7
 
y = 49
 
y = 49
 
  
 
if (2*x == y):
 
if (2*x == y):
Linha 286: Linha 297:
 
else:
 
else:
 
   print("y is NOT related to x")
 
   print("y is NOT related to x")
 +
</syntaxhighlight>
  
y is the squared of x
+
y is the squared of x
  
 +
<syntaxhighlight lang=python>
 
x = 7
 
x = 7
 
y = 50
 
y = 50
 
  
 
if (2*x == y):
 
if (2*x == y):
Linha 299: Linha 311:
 
else:
 
else:
 
   print("y is NOT double nor squared of x")
 
   print("y is NOT double nor squared of x")
 +
</syntaxhighlight>
  
y is NOT double nor squared of x
+
y is NOT double nor squared of x
  
 
== Switch Cases==
 
== Switch Cases==
Linha 306: Linha 319:
 
O Python NÃO tem uma implementação para os switch cases, mas uma maneira de implementá-lo é com o dicionário, uma estrutura de dados que armazena o par de valores chave (Módulo 3).
 
O Python NÃO tem uma implementação para os switch cases, mas uma maneira de implementá-lo é com o dicionário, uma estrutura de dados que armazena o par de valores chave (Módulo 3).
  
    As condições switch são armazenadas como chaves no dicionário, e as ações armazenadas como valor.
+
*    As condições switch são armazenadas como chaves no dicionário, e as ações armazenadas como valor.
        Se houver uma série de ações para cada caso, então considere escrever uma função para cada caso e use as chamadas de função como o valor.
+
**        Se houver uma série de ações para cada caso, então considere escrever uma função para cada caso e use as chamadas de função como o valor.
    A condição padrão é listada manualmente como um valor chave no get().
+
*    A condição padrão é listada manualmente como um valor chave no get().
  
 +
<syntaxhighlight lang=python>
 
def switcher(number):
 
def switcher(number):
  
Linha 329: Linha 343:
  
 
# input() lê uma entrado do usuário de stdin
 
# input() lê uma entrado do usuário de stdin
number = input("Dial a number")
+
number = input("Dial a number: ")
 
switcher(number)
 
switcher(number)
 +
</syntaxhighlight>
  
---------------------------------------------------------------------------
+
Dial a number: 7
KeyboardInterrupt                        Traceback (most recent call last)
+
Entered 7
/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py in _input_request(self, prompt, ident, parent, password)
 
    728            try:
 
--> 729                ident, reply = self.session.recv(self.stdin_socket, 0)
 
    730            except Exception:
 
 
 
/usr/local/lib/python3.7/dist-packages/jupyter_client/session.py in recv(self, socket, mode, content, copy)
 
    802        try:
 
--> 803            msg_list = socket.recv_multipart(mode, copy=copy)
 
    804        except zmq.ZMQError as e:
 
 
 
/usr/local/lib/python3.7/dist-packages/zmq/sugar/socket.py in recv_multipart(self, flags, copy, track)
 
    582        """
 
--> 583        parts = [self.recv(flags, copy=copy, track=track)]
 
    584        # have first part already, only loop while more to receive
 
 
 
zmq/backend/cython/socket.pyx in zmq.backend.cython.socket.Socket.recv()
 
 
 
zmq/backend/cython/socket.pyx in zmq.backend.cython.socket.Socket.recv()
 
 
 
zmq/backend/cython/socket.pyx in zmq.backend.cython.socket._recv_copy()
 
 
 
/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/checkrc.pxd in zmq.backend.cython.checkrc._check_rc()
 
 
 
KeyboardInterrupt:
 
 
 
During handling of the above exception, another exception occurred:
 
 
 
KeyboardInterrupt                        Traceback (most recent call last)
 
<ipython-input-17-8531db5f3174> in <module>()
 
    18
 
    19 # input() reads in an user input from stdin
 
---> 20 number = input("Dial a number")
 
    21 switcher(number)
 
 
 
/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py in raw_input(self, prompt)
 
    702            self._parent_ident,
 
    703            self._parent_header,
 
--> 704            password=False,
 
    705        )
 
    706
 
 
 
/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py in _input_request(self, prompt, ident, parent, password)
 
    732            except KeyboardInterrupt:
 
    733                # re-raise KeyboardInterrupt, to truncate traceback
 
--> 734                raise KeyboardInterrupt
 
    735            else:
 
    736                break
 
 
 
KeyboardInterrupt:
 
 
 
"""
 
;EXERCÍCIO: implemente o exemplo de switch case acima usando as condições "if/else"
 
 
 
Prompt: para cada dígito entre 0-9, o programa imprimirá uma confirmação
 
para o valor inserido ou irá imprimir "invalid inputs" para todos os outros números.
 
"""
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
  
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
  
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
+
----
 +
;EXERCÍCIO: Implemente o exemplo de switch case acima usando as condições "if/else"
 +
:Prompt: para cada dígito entre 0-9, o programa imprimirá uma confirmação para o valor inserido ou irá imprimir "invalid inputs" para todos os outros números.
  
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
+
{{collapse top|NÃO VEJA A SOLUÇÃO ANTES DE TENTAR FAZER O EXERCÍCIO!}}
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
  
 +
<syntaxhighlight lang=python>
 
number = input("Dial a number")
 
number = input("Dial a number")
  
Linha 443: Linha 382:
 
else:
 
else:
 
     print("Invalid number!")
 
     print("Invalid number!")
 +
</syntaxhighlight>
 +
 +
{{collapse bottom}}
 +
 +
 +
 +
-----
 +
[[Imagem:icone_voltar.png|link=Python2021]]
 +
[[Imagem:icone_menu.png|link=Python2021]]
 +
[[Imagem:icone_prox.png|link=Python_2021_Mod2]]

Edição atual tal como às 15h26min de 28 de dezembro de 2021

Módulo 1: Variáveis, Operações, Condições

Logística
  • Pressione Shift + Enter para executar cada bloco de código no ambiente do Google Colab ou copie e cole os códigos/comentários em um arquivo python.
  • As apresentações e explicações conceituais são fornecidas em blocos de texto. As explicações relacionadas aos códigos são incluídas como comentários acima dos códigos.
  • Exercícios/problemas práticos são indicados em cada módulo. Para exercícios de codificação, você pode baixar uma IDE externa de Python (por exemplo, Anaconda) para programar e testar sua implementação. Uma possível implementação do exercício é fornecida sob o problema.
Objetivos de aprendizado
  1. Definir e modificar variáveis de vários tipos de dados. Converter entre tipos de dados.
  2. Compreender as características e usos de cada operação e a saída (output) correspondente.
  3. Compreender e corrigir estas declarações para verificar as condições.

Variáveis

Atribuição de Variáveis

As variáveis são as mesmas que as variáveis em matemática, exceto que variáveis matemáticas são muitas vezes letras, mas variáveis de programação podem ser palavras.

Variáveis: um conjunto que contém algumas informações.

Nota sobre a declaração de variáveis:

  • Case-sensitive (ou seja, caracteres em caixa alta ou baixa são tratados como diferentes)
  • DEVE começar com uma letra ou um sublinhado; NÃO PODE começar com números.
  • NÃO PODE ser o mesmo nome que as palavras-chave Python (por exemplo, class, finally, etc.)
  • NÃO especificar o tipo de informação armazenada na variável. (Consulte os seguintes códigos para um exemplo.)
# Exemplos de declarações de variáveis
width = 10

# Note que o "H" está em letra maiúscula
Height = 5

area = 0

width
10
height
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-d56756f3e5e3> in <module>()
      2 # ERROR CODE: "height" is not defined.
      3 
----> 4 height

NameError: name 'height' is not defined
Height
# Usando uma palavra-chave python como um nome variável
# ERROR CODE: sintaxe inválida
 
global = 1

global
 File "<ipython-input-24-b3ca504336d9>", line 4
    global = 1
           ^
SyntaxError: invalid syntax
# Mais declarações para diferentes tipos de variáveis  

# armazenando uma string
helloMessage = "Hello World!"
first_name = "John"

# armazenando um caractere
character_example = 'a'

# armazenando um float 
_newFloat = 1.0

# armazenando um valor booleano
bool_Condition = True
helloMessage
character_example
_newFloat
bool_Condition

Conversor de Tipo

A partir do tópico 1.1.1, aprendemos como declarar corretamente um nome variável para diferentes tipos de dados. Neste tópico, vamos explorar como "computar" ou converter o tipo dos dados entre si.

Uma função útil: type() define o tipo dos dados

# A partir da declaração acima, width = 10 e 10 é int, então esperamos que a função retorne int
type(width)

type(helloMessage)

type(bool_Condition)

# Vamos computar um float em um int e vice-versa
# Computaremos o tipo e depois o armazenaremos em uma nova variável
width_float = float(width)

type(width_float)

# Computar de float para int
width_int = int(width_float)

type(width_int)

# Computar entre string e int
# Lembrar que width armazena um int

# Converter width para string
width_string = str(width)
type(width_string)

# Converter width_string de volta a um int
type(int(width_string))

Operações

Operadores Aritméticos

# Operações matemáticas básicas com Números

# Adição
print(5+23)

# Subtração
print(100-25)

# Multiplicação
print(5*10)

# Potência/Exponente
# o operador ** é equivalente ao expoente
print(5**2)

# 5*5 = 5^2 = 5**2 
print(5*5)


# Divisão (float)
# Retornar o valor decimal real da divisão
print(36/4)
print(10/3)         

# Divisão (int)
# Retornar um int. Se o quociente real for um valor decimal, apenas um número inteiro irá retornar
print(10//3)
print(19//6)

# Divisão Modular: retornar o restante da divisão
print(10%3)
28
75
50
25
25
9.0
3.3333333333333335
3
3
1
# Operações com Strings e Caracteres
print("foo" * 5)
print('x'*3)
foofoofoofoofoo
xxx
# ERRO: o compilador trata x como uma variável, não como um caractere
print(x*3)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-47a2cb16f654> in <module>()
      1 # ERROR: compiler treats x as a variable, not a character
----> 2 print(x*3)

NameError: name 'x' is not defined
# ERRO: não pode concatenar um int com uma string --> necessidade de computar int com uma string
print("hello" + 5)
# Fix
print("hello " + str(5))
# Adição de String = concatenação
print("hello " + "world")

Outros Operadores

# Comparadores: retornar valor booleano

# Igualdade ==
# Nota: DEVE ser sinais de igual Duplos, um sinal de igual único é atribuição
print(5 == 5.0)

# Maior do que >
print(7 > 1)

# Menor do que <
print(1.5 < 90)

# Maior ou igual a >=
print(5.0 >= 5)
print(5.0 >= 4)
print(5 >= 13)

# Menor ou igual a <=
print(10 <= 10.0)
print(10 <= 20)
print(8 <= 3)
# Comparadores em Strings

print("hello" < "world")
print("hello" == "world")
print("hello" > "world")

print("hello" == "hello")

print("cat" < "dog")

Declarações Condicionais

Estrutura Condicional If

Avisos importantes
  • A ordem das condições importa!
    • Se mais de uma condição estiver satisfeita, então as ações associadas à primeira condição satisfeita serão executadas e saltarão as demais condições e códigos.
  • "elif" = "else if"
    • "elif" expressa o mesmo significado que "else if"
  • Pelo menos uma condição DEVE ser prevista para ambas as cláusulas if e elif, senão ERROR!
  • Os parênteses para if e elif são opcionais. Seu código funcionará com ou sem o ().
x = 7
y = 14

if (2*x == y):
  print("y is double of x")
elif (x**2 == y):
  print("y is the squared of x")
else:
  print("y is NOT double of x")
y is double of x
x = 7
y = 49

if (2*x == y):
  print("y is double of x")
elif (x**2 == y):
  print("y is the squared of x")
else:
  print("y is NOT related to x")
y is the squared of x
x = 7
y = 50

if (2*x == y):
  print("y is double of x")
elif (x**2 == y):
  print("y is the squared of x")
else:
  print("y is NOT double nor squared of x")
y is NOT double nor squared of x

Switch Cases

O Python NÃO tem uma implementação para os switch cases, mas uma maneira de implementá-lo é com o dicionário, uma estrutura de dados que armazena o par de valores chave (Módulo 3).

  • As condições switch são armazenadas como chaves no dicionário, e as ações armazenadas como valor.
    • Se houver uma série de ações para cada caso, então considere escrever uma função para cada caso e use as chamadas de função como o valor.
  • A condição padrão é listada manualmente como um valor chave no get().
def switcher(number):

  # Use dicionário (do Módulo 3) para armazenar switch cases
  # Se não for encontrado, o get() será o valor padrão
  return {
    '0':"Entered 0",
    '1':"Entered 1",
    '2':"Entered 2",
    '3':"Entered 3",
    '4':"Entered 4",
    '5':"Entered 5",
    '6':"Entered 6",
    '7':"Entered 7",
    '8':"Entered 8",
    '9':"Entered 9",
  }.get(number,"Invalid number!")


# input() lê uma entrado do usuário de stdin
number = input("Dial a number: ")
switcher(number)
Dial a number: 7
Entered 7



EXERCÍCIO
Implemente o exemplo de switch case acima usando as condições "if/else"
Prompt: para cada dígito entre 0-9, o programa imprimirá uma confirmação para o valor inserido ou irá imprimir "invalid inputs" para todos os outros números.
NÃO VEJA A SOLUÇÃO ANTES DE TENTAR FAZER O EXERCÍCIO!
number = input("Dial a number")

if number == '0':
    print("Entered 0")
elif number == '1':
    print("Entered 1")
elif number == '2':
    print("Entered 2")
elif number == '3':
    print("Entered 3")
elif number == '4':
    print("Entered 4")
elif number == '5':
    print("Entered 5")
elif number == '6':
    print("Entered 6")
elif number == '7':
    print("Entered 7")
elif number == '8':
    print("Entered 8")
elif number == '9':
    print("Entered 9")
else:
    print("Invalid number!")



Icone voltar.png Icone menu.png Icone prox.png