gpt4 book ai didi

python - ConfigParser 不支持的操作数类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:05 27 4
gpt4 key购买 nike

我正在尝试制作一款游戏,玩家每次玩游戏时都会从 ini 文件中的值中扣除 0.5。但是我不断收到错误,我不知道该怎么做。这是我的代码。不要担心评论,这些是给我的,我稍后会关闭 while 循环。这只是代码的一部分。顺便说一句,代码可以工作,但不是这个。谢谢。

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 PlrMny

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():

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
PlrMny == type(int)
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',PlrMny - .5)
parser.write (configFile)
if User11 < 1:
print "Error"
elif User11 == 100:
sys.exit()
elif User11 > 20:
print "Error"
else:
break
except ValueError:
print "Error"

这是错误:

    Traceback (most recent call last):
File "C:\Python27\Gamb Game.py", line 181, in <module>
rerun()
File "C:\Python27\Gamb Game.py", line 180, in rerun
gamble()
File "C:\Python27\Gamb Game.py", line 174, in gamble
input()
File "C:\Python27\Gamb Game.py", line 42, in input
parser.set('money_value','Amount',PlrMny - .5)
TypeError: unsupported operand type(s) for -: 'str' and 'float'

帮忙?

最佳答案

您正在尝试从字符串而不是 float 中减去 0.5。也就是说,你的变量 PlrMny 是一个字符串。

更换线路

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

parser.set('money_value','Amount',str(float(PlrMny) - .5)) #if you want money_value to be a string

但是,使用parser.set不会更改正在运行的程序中PlrMny的值。它只会更改 .ini 文件上下文中的值。因此,您可能想要做的是使用以下代码:

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

写入 ini 时,您需要将 PlrMny 转换为字符串,以避免读取 ini 文件时出现错误。

关于python - ConfigParser 不支持的操作数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com