Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Funções basicas não somam

O código pelo meu ver está igual ao proposto no exercício mas ao chamar a função deposita o retorna de não poder concatenar valor com string é exibido. Percebi pelo PY charm tb q ao criar a conta o campo já adquire o type "str" isso é coisa do PY charm mesmo?

Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)] on win32
from teste import cria_conta, deposita, saca, extrato
conta = cria_conta("123","Fernando","89.9","1000.0")
conta = cria_conta("123","Fernando","89.0","1000.0")
deposita(conta,350.0)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\beras\Desktop\alura\Python\oo\teste.py", line 6, in deposita
    conta["saldo"] += valor
TypeError: can only concatenate str (not "float") to str

2 respostas
solução!

Olá Fernando,

O detalhe nesse caso está nessa parte:

conta = cria_conta("123","Fernando","89.9","1000.0")

Como os números estão sendo passados entre aspas "89.9" o python vai entender esse valor como uma string (um texto). Assim quando você chama o deposita(conta, 350.0) (note o número sem aspas aqui) ele vai tentar somar uma string com um número "89.9" + 350.0

Então apenas removendo as aspas dos valores que devem ser numéricoso erro deve desaparecer:

# Agora passamos o saldo e o limite como números
conta = cria_conta("123", "Fernando", 89.9, 1000.0)
deposita(conta,350.0)

Lucas, muito obrigado pela observação. Revi várias vezes e não percebi o erro ao declarar o parâmetro da função.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software