examples ascii_lowercase python parsing numbers iterable configparser

python - ascii_lowercase - Flotas Iterables?



string ascii_lowercase python 3 (3)

Esto debería solucionar tu problema:

parser.get(''money_value'',''Amount'',True)

por supuesto, también puedes usar:

PlrMny = float(PlrMny) -.5 parser.set(''money_value'',''Amount'',str(PlrMny))

El problema es que parser.get espera un valor de cadena pero está leyendo un flotante. Entonces, las dos opciones que tiene es guardar el valor como una cadena (eso es lo que está haciendo la segunda opción), o leer el valor usando raw = True (eso es lo que está haciendo la primera opción).

Estoy tratando de hacer un juego donde el jugador se deduce .5 de un valor en un archivo ini cada vez que juega. Sin embargo, sigo recibiendo un error y no estoy seguro de qué hacer. Este es mi código No se preocupe por los comentarios, esos son para mí, y cierro el ciclo while más tarde. Esto es solo una parte del código. Por cierto, el código funciona, simplemente no esto. Gracias.

def rerun(): import ConfigParser from ConfigParser import ConfigParser parser = ConfigParser() parser.read(''Game.ini'') PlrMny = parser.get(''money_value'', ''Amount'') #config = ConfigParser.ConfigParser() configFile = open("C:/Python27/Game.ini", "w") #config.read(configFile) #valueamount = config.getfloat("section","starting_value") print "You will be given a $10 starting amount. Each game costs $.50 to play and is deducted when you input the first value." print "/nGetting one match gives $1 and the output is multiplied by 2 for each extra match." print "/nCurrent Amount =",PlrMny, def gamble(): PlrMny = parser.get(''money_value'', ''Amount'') import random import sys number1 = random.randint (1, 20) number2 = random.randint (1, 20) number3 = random.randint (1, 20) number4 = random.randint (1, 20) number5 = random.randint (1, 20) def input(): c = 0 print "/n/n/n/nTry guess what five numbers the computer will guess. Type ''100'' in any of the inputs to close program prematurely" print "Money =",PlrMny, #parser.set("money_value", "Amount",10000) #parser.write (''Game.ini'') while True: try: User11 = int(raw_input( "/n/nNumber 1 : ")) parser.set(''money_value'',''Amount'',float(PlrMny) - .5) parser.write (configFile) str(PlrMny) if User11 < 1: print "Error" elif User11 == 100: sys.exit() elif User11 > 20: print "Error" else: break except ValueError: print "Error"

Este es el error:

Traceback (most recent call last): File "C:/Python27/Gamb Game.py", line 183, in <module> rerun() File "C:/Python27/Gamb Game.py", line 182, in rerun gamble() File "C:/Python27/Gamb Game.py", line 19, in gamble PlrMny = parser.get(''money_value'', ''Amount'') File "C:/Python27/lib/ConfigParser.py", line 623, in get return self._interpolate(section, option, value, d) File "C:/Python27/lib/ConfigParser.py", line 663, in _interpolate if value and "%(" in value: TypeError: argument of type ''float'' is not iterable


No tengo idea de cuál podría ser el problema en la línea 19. Cómo se ve tu configuración e intentaste

parser.getfloat(''money_value'',''Amount'')

?


Ok, creas un analizador en una función

def rerun(): import ConfigParser from ConfigParser import ConfigParser parser = ConfigParser() parser.read(''Game.ini'')

y lo usarás en otro.

def gamble(): PlrMny = parser.get(''money_value'', ''Amount'')

esto debería fallar dado que el analizador es una variable local en la repetición y no declarado en la apuesta.