Задать вопрос
@enq1

Объясните как работает код в примере?

Изучаю пайтон столкнулся с упражнением :

Код упражнения
# -*- coding: utf-8 -*-

import codecs, sys 
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout =outf

from sys import argv

script, user_name = argv
promt = '>'

print u"Привет %s, я - сценарий %r " % (user_name, script)
print u"Я хочу задать тебе несколько вопросов " 
print u" Я тебе нравлюсь, %s?" % user_name
likes = raw_input(promt) .decode(sys.stdin.encoding or 
                   locale.getpreferrendcoding(True))
print u"Где ты живешь, %s?" % user_name
lives = raw_input(promt) .decode(sys.stdin.encoding or 
                    locale.getpreferrendencoding(True))
print u" На каком ты компьютере работаешь ?"
computer = raw_input(promt) .decode(sys.stdin.encoding or 
                    locale.getpreferredencoding(True))
print u"""
Итак , ты ответил %r на вопрос, нравлюсь ли я тебе.
Ты живешь в %r .Не представляю , где это.
И у иеья есть компьютер %r. Прекрасно ! 
""" % (likes, lives, computer)


Мне не очень понятны некоторые строки , которые укажу ниже . Хотелось бы получить объяснение как это работает . Я напишу как понимаю я .

Первый вопрос

#импортируем модуль codecs,sys
import codecs, sys 
#так как  этот код должен работать в консоле которая работает на cp866, а пользователь вводит 
# в другой кодировке, получаются кракозябры. 
#для этого мы делаем  обертку которая перекодирует  вводимую  данные в одной кодировке в cp866
# создается переменная в которую записывается  результат перекодирования .
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
#как раз тут  отдается на вывод  в консоль уже перекодированный текст 
sys.stdout =outf

Что собственно не понятно.Хочу понять как работает код с точки компьютера.Пытаюсь читать документацию на docs.python но это сложно для меня .

Второй вопрос

#создается переменная likes в которую записывается результат ввода пользователем из input и декодируется . 
#А что дальше я не понимаю 
# Хотелось бы понять как это работает с точки зрения 
# компьютера, программирования 
likes = raw_input(prompt).decode(sys.stdin.encoding or 
locale.getpreferredencoding(True))


Надеюсь мои вопросы для вас звучат не сумбурно. На сегодняшний день для меня эта ситуация ввела меня в тупик . Надеюсь здесь мне объяснят как работает код в двух приведенных мною примерах.
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Andy_U
Код вашего упражнения - на уже мертвом питоне версии 2.X. Забудьте про эти извращения. Изучайте 3.X, где все заметно проще.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽