Итак, я создаю модуль python для создания и сохранения данных для игрового персонажа. класс является характер и идет следующим образом:Int() Преобразования не работают прямо в python
#!/usr/bin/python
import os
import re
class Character:
storage = None
health = None
strength = None
xp = None
def __init__(self,stg):
os.chdir('/Users/alex/Desktop/Python/Support/Character')
storage = stg
f = open(storage)
#health index = 0
#strength index = 1
#xp index = 2
string = f.read()
finder = re.compile('/n')
stats = finder.split(string)
health = int(stats[0])
strength = int(stats[1])
xp = int(stats[2])
f.close
def adjHealth(self,amount):
health += amount
def adjStrength(self,amount):
strength += amount
def adjXp(self,amount):
xp += amount
def save(self):
os.chdir('/Users/alex/Desktop/Python/Support/Character')
stats = [str(health),str(strength),str(xp)]
f = open(storage,'w')
f.writelines(stats)
Всякий раз, когда я делаю эту команду из интерпретатора Python:
>>> import character as ch
>>> ch.Character('jimmy')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/alex/Desktop/Python/Modules/character.py", line 22, in __init__
health = int(stats[0])
ValueError: invalid literal for int() with base 10: '10\n10\n0\n'
Он поставляется с этой ValueError. Должно быть разделение строки, возвращаемой f.read()
, на ['10','10','0','']
справа?
Так почему я не могу преобразовать '10' в int? Я вроде как новичок в выражениях.
Следующие две строки означают совершенно разные вещи: '\ n' и'/n'. –
Не могли бы вы просто: 'stats = string.split ('\ n')' – karthikr
@ Крис О ... боже, теперь я чувствую себя глупо. благодаря! – Awalrod