TOPIC

runtime error, why?

HenriqueFelizzola0 asked 2 years ago

code1 = int(input(''))

quant1 = int(input(''))

price1 = float(input(''))

code2 = int(input(''))

quant2 = int(input(''))

price2 = float(input(''))

final_price = quant1 price1 + quant2 price2

print('VALOR A PAGAR: R$', f'{final_price:.2f}')

This topic was solved and cannot recieve new replies.

  • Tsunemori replied 2 years ago

    Vou te dar mais uma dica: como você ainda não manja muito de listas, você pode evitar ter que estressar a cabeça com isso agora e focar no programa. Toda vez que você quiser receber 3 variáveis, por exemplo, em 1 linha só, você pode fazer o seguinte:

    variavel1, variavel2, variavel3 = input().split()
    

    No caso desse problema, você recebe dois ints e um float, então você pode fazer o seguinte:

    variavel1, variavel2, variavel3 = input().split()
    variavel1, variavel2, variavel3 = int(variavel1), int(variavel2), float(variavel3)
    

    E agora vc tem os três valores, cada um separado em sua variável. O que está realmente acontecendo por trás dos panos, você vai entender melhor quando estiver estudando tuplas e listas. Se você quisesse receber apenas dois valores em uma só linha, você poderia usar:

    variavel1, variavel2 = input().split()

    Sobre o erro que você cometeu no seu código, o problema está em como você usou o map(), você o usou na variável code1, quando deveria ter usado nas variáveis list1 e list2.

  • Tsunemori replied 2 years ago

    Se você olhar para o formato da entrada do problema, perceberá que ele te dá 3 valores na mesma linha, duas vezes. Da forma como você implementou o seu código, você está tentando receber 6 linhas de entrada e é por isso que o código dá Runtime Error. Você deve receber apenas duas linhas, depois trabalhar com elas para separar os valores.

    Dica: procure ler sobre a função split().

  • HenriqueFelizzola0 replied 2 years ago

    Agora entendi! muito obrigado pela explicação! Saudações!

  • HenriqueFelizzola0 replied 2 years ago

    modifiquei o programa para: code1 = input(' ')

    list1 = code1.split(' ')

    map1 = map(float, code1)

    int1 = list(map1)

    code2 = input(' ')

    list2 = code1.split( )

    map2 = map(float, code1)

    int2 = list(map1)

    final_price = list1[0] list1[1] + list2[0] list2[1]

    print('VALOR A PAGAR: R$', f'{final_price:.2f}')

    mas ainda não deu, no compilador, o erro que aparece é: ValueError: could not convert string to float: ' '