Какое кодирование я должен отобразить знак фунта стерлингов (знак фунта) с помощью Python на cygwin в Windows XP?

Это довольно просто. размер матрицы, если (2 * input) +1, а числа в матрице - это расстояние от центра +1. см. ниже код Python.

import math

def distance(x1, y1, x2, y2):
    dist = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)
    return int(math.sqrt(dist))+1

if __name__=='__main__':
    x = int(input())
    if(x < 1):
        exit()
    dimension = (2*x)-1
    center = dimension // 2
    mat = [[None for i in range(dimension)] for i in range(dimension)]
    for i in range(dimension):
        for j in range(dimension):
            mat[i][j] = distance(center, center, i, j);
            print(mat[i][j], end=' ')
        print('')
8
задан pradyunsg 14 February 2013 в 15:07
поделиться

3 ответа

Существует две кодировки, включенные здесь:

  • Кодирование Вашего исходного кода, который должен быть корректным для Вашего входного файла для значения то, что Вы думаете, что это означает
  • Кодирование вывода, который должен быть корректным для символов, испускаемых для отображения как ожидалось.

Кажется, что Ваше выходное кодирование прочь теперь. Если это работает в окне терминала в Cygwin, именно, что кодирование терминала необходимо соответствовать.

Править: Я просто запустил следующую программу Python в (собственном) окне терминала Windows XP, думал, что это было немного интересно:

>>> ord("£")
156

156, конечно, не кодовая точка для знака фунта в Latin1, кодирующем Вас попробованный. Это, кажется, не находится в Кодовой странице 1252 Окна также, которую я ожидал бы, что мой терминал будет использовать... Странный.

2
ответ дан 5 December 2019 в 10:05
поделиться

Unicode для знака фунта 163 (десятичное число) или A3 в шестнадцатеричном числе, таким образом, следующее должно работать независимо от кодирования Вашего сценария, пока выходное кодирование работает правильно.

print u"\xA3"
11
ответ дан 5 December 2019 в 10:05
поделиться
[

] попробуйте кодировку :[

] [

][]# -*- кодировку: utf-8 -*-[][

] [

] и затем отобразите знак '£': [

] [
print unichr(163)
]
4
ответ дан 5 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: