2014-10-25 2 views
-1

Привет, я борюсь с этим назначением на неделю, я начинающий кодер в python 3, а присваивание - это номера из файла в виде средние значения, затем найдите средние значения. Проблема в том, что всякий раз, когда я добираюсь до точки, чтобы прочитать файл, части файлов являются str, я понимаю это и хочу изменить их на ints, но он не работает, и мне было интересно, есть ли исправление или способ обойти Это.ValueError: не удалось преобразовать строку в float: 'ï' ¿44 n '

def main(filename = 'bats.txt'): 
hits = 0 
bats = 0 
app = 0 
bases = 0 
for line in open(filename, 'r'): 
    contents = int(line.strip()) #does the placement of int here not work? 
    if contents > 4: 
     playerNum = contents 
     print(playerNum) 
    elif contents <= 4 and contents >= 1: 
     hits += 1 
    elif contents <= 4 and contents >= 0: 
     bats += 1 
     print(bats) 
    elif contents <= 4 and contents >= -1: 
     app += 1   
    else: 
     bases += 1 

Назначение является работа в процессе, и я полностью озадачен этой части, поскольку это не позволяет мне продолжать. Спасибо всем, кто может мне помочь.

ответ

0

Перед преобразованием проверьте, может ли строка быть преобразована в int. Вы можете использовать регулярные выражения для этого.

исключения задвижки Всегда (Поскольку мы не уверены в значении, которое приходит из файла), это гарантирует, что программа выполняет и обеспечивает славен пользовательский опыт

try: 
    int(line) 
except ValueError: 
    print "Not a float" 
Смежные вопросы