Como você considera a entrada de um usuário como flutuante?
Estou executando o Python 2.7.10. Eu tenho o seguinte bloco de código de um programa em que estou trabalhando.
with open('inventory.txt', 'r+') as f:
inventory = {}
while True:
item = raw_input('Item: ')
inventory[item] = raw_input('Price: ')
if item == '':
del inventory['']
break
inv = str(inventory)
f.write(inv).rstrip()
print inventory
print inv
print f.read()
O que ele faz é solicitar ao usuário um item e preço e, em seguida, armazena todos eles como pares de chave / valor e, em seguida, grava esse dicionário final em um segundo arquivo de texto. Na linha 5, no entanto, parece ser o único tipo de entrada, exceto que há uma string. Eu tentei cercar oraw_input por umflutuador() e tentou criar variáveis extras sem sucesso. Consegui agrupar o raw_input em umint () e funcionou, então me jogou fora
Quando altero a linha 5 para inventário [item] = flutuante (raw_input ('Price:')), recebo o seguinte erro:
File "C:\Users\Jarrall\Desktop\store\script.py", line 5, in <module>
inventory[item] = float(raw_input('Price: '))
ValueError: could not convert string to float:
O que devo alterar sobre o código para que, quando um usuário insira um valor numérico na linha 5, ele salve no dicionário como tal, em vez de uma string (atualmente)?