Data Science Academy - Python Fundamentos - Capítulo 4

Download: http://github.com/dsacademybr


In [1]:
# Versão da Linguagem Python
from platform import python_version
print('Versão da Linguagem Python Usada Neste Jupyter Notebook:', python_version())


Versão da Linguagem Python Usada Neste Jupyter Notebook: 3.7.6

Erros e Exceções


In [2]:
# Erro
print('Olá)


  File "<ipython-input-2-8a4956c51ec3>", line 2
    print('Olá)
               ^
SyntaxError: EOL while scanning string literal

In [3]:
# Criando uma função
def numDiv (num1, num2):
    resultado = num1 / num2
    print(resultado)

In [4]:
# Execução não gera erro
numDiv(4,2)


2.0

In [5]:
# Execução gerando erro
numDiv(4,0)


---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-5-b0b571bcf93d> in <module>
      1 # Execução gerando erro
----> 2 numDiv(4,0)

<ipython-input-3-b4d5bff9dfcf> in numDiv(num1, num2)
      1 # Criando uma função
      2 def numDiv (num1, num2):
----> 3     resultado = num1 / num2
      4     print(resultado)

ZeroDivisionError: division by zero

Try, Except, Finally


In [6]:
8 + 's'


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-963470595b1e> in <module>
----> 1 8 + 's'

TypeError: unsupported operand type(s) for +: 'int' and 'str'

In [7]:
# Utilizando try e except
try:
    8 + 's'
except TypeError:
    print("Operação não permitida")


Operação não permitida

In [8]:
# Utilizando try, except e else
try:
    f = open('arquivos/testandoerros.txt','w')
    f.write('Gravando no arquivo')
except IOError:
   print ("Erro: arquivo não encontrado ou não pode ser salvo.")
else:
   print ("Conteúdo gravado com sucesso!")
   f.close()


Conteúdo gravado com sucesso!

In [9]:
# Utilizando try, except e else
try:
    f = open('arquivos/testandoerros','r')
except IOError:
   print ("Erro: arquivo não encontrado ou não pode ser lido.")
else:
   print ("Conteúdo gravado com sucesso!")
   f.close()


Erro: arquivo não encontrado ou não pode ser lido.

In [10]:
try:
    f = open('arquivos/testandoerros.txt','w')
    f.write('Gravando no arquivo')
except IOError:
   print ("Erro: arquivo não encontrado ou não pode ser salvo.")
else:
   print ("Conteúdo gravado com sucesso!")
   f.close()
finally:
   print ("Comandos no bloco finally são sempre executados!")


Conteúdo gravado com sucesso!
Comandos no bloco finally são sempre executados!

In [11]:
def askint():
        try:
            val = int((input("Digite um número: ")))
        except UnboundLocalError:
            print ("Você não digitou um número!")
        finally:
            print ("Obrigado!")
        print (val)

In [12]:
askint()


Digite um número: 7
Obrigado!
7

In [13]:
def askint():
        try:
            val = int(input("Digite um número: "))
        except:
            print ("Você não digitou um número!")
            val = int(input("Tente novamente. Digite um número: "))
        finally:
            print ("Obrigado!")
        print (val)

In [14]:
askint()


Digite um número: 9
Obrigado!
9

In [15]:
def askint():
    while True:
        try:
            val = int(input("Digite um número: "))
        except:
            print ("Você não digitou um número!")
            continue
        else:
            print ("Obrigado por digitar um número!")
            break
        finally:
            print("Fim da execução!")
        print (val)

In [16]:
askint()


Digite um número: 8
Obrigado por digitar um número!
Fim da execução!

In [17]:
tuple = (1,2,3,4,5)
try:
    tuple.append(6)
    for each in tuple:
        print(each)
except AttributeError as e:
    print('Erro: ', e)
except IOError as e:
    print('Erro de I/O:', e)


Erro:  'tuple' object has no attribute 'append'

Uma lista completa de exceções em Python, pode ser encontrada aqui:

https://docs.python.org/3.7/library/exceptions.html

Fim

Obrigado - Data Science Academy - facebook.com/dsacademybr