Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > При каждом выводе любого скрипта - пишет ошибку.


Автор: zluka 14.4.2007, 14:06
Здравствуйте уважаемые форумчане подфорума "Питон" !
  Только начал знакомство с Python. Но вот при написании любого скрипта, например:
Код

#!/usr/bin/env python

def main():
  try:
    res = 9/0
    print res
  except IOError:
    print "Ошибка ввода-вывода"
  except ZeroDivisionError:
    print "Деление на 0"
  except KeyboardInterrupt:
    print "Прерывание с клавиатуры"
  except:
    print "Ошибка"
 
main()

Выводит вот такое:
Код

sys:1: DeprecationWarning: Non-ASCII character '\xd0' in file python_scr.py on line 8, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Я так понял , что проблема в кодировке? Помогите плз.
P.S. Пишу скрипты в Kdevelop под ASPLinux 11 

Автор: Daevaorn 14.4.2007, 15:37
Это из-за русских букв. О чем, кстати, в ошибке и говорится. Исправляется добавлением в начало скрипт
Код

# -*- coding: utf-8 -*-

или
Код

# -*- coding: cp1251 -*-

В зависимости от кодировки в которой ты сохраняешь файл.

Автор: kulibinka 15.4.2007, 16:39
Кстати, а есть возможность где-то что-то прописать, чтобы не нужно было этот 
Код

# -*- coding: cp1251 -*-

в каждый скрипт вставлять?

Автор: Бонифаций 16.4.2007, 03:47
Где то в питоновских либах есть файл site.py вот там можно

Автор: pythonwin 16.4.2007, 07:11
zluka, почитай http://www.rupy.ru/member/5/#paper-6

попробуй этот код

Код

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def main():
    try:
        res = 9/0
        print res
    except IOError:
        print u"Ошибка ввода-вывода"
    except ZeroDivisionError:
        print unicode("Деление на 0",'utf-8')
    except KeyboardInterrupt:
        print u"Прерывание с клавиатуры"
    except:
        print u"Ошибка"
main()


если по умолчанию в системе кодировка не utf-8 - поставь в код её smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)