Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Еще раз о функциональном программировании, , ну кто там что говорил? подсказывайте) 
V
    Опции темы
proDiva
Дата 4.10.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Значит задание такое: необходимо проставить номера рейсов, причем преобразовать из 36-ричной системы в 10-ричную. Прилагаю код, хочу упростить. Помогайте smile 
Код

def reis(self, a):
        #возвращает номер рейса
        r=""
        var = {
            "01": "01",
            "02": "02",
            "03": "03",
            "04": "04",
            "05": "05",
            "06": "06",
            "07": "07",
            "08": "08",
            "09": "09",
            "0a": "10",
            "0b": "11",
            "0c": "12",
            "0d": "13",
            "0e": "14",
            "0f": "15",
            "0g": "16",
            "0h": "17",
            "0i": "18",
            "0j": "19",
            "0k": "20",
            "0l": "21",
            "0m": "22",
            "0n": "23",
            "0o": "24",
            "0p": "25",
            "0q": "26",
            "0r": "27",
            "0s": "28",
            "0t": "29",
            "0u": "30",
            "0v": "31",
            "0w": "32",
            "0x": "33",
            "0y": "34",
            "0z": "35",
            "10": "36",
            "11": "37",
            "12": "38",
            "13": "39"
            }
        r = var.get(a, "40")
        return r

PM MAIL ICQ   Вверх
albertn
Дата 4.10.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Что-то вроде этого
Код

def reis(self, a):
    """ Возвращает номер рейса """
    alf = map(str,range(0,10))+map(chr,range(ord('a'),ord('z')+1))
    return reduce(lambda x,y:x*len(alf)+y,map(alf.index,s))

PM WWW ICQ   Вверх
proDiva
Дата 4.10.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



albertn, и Вы хотите сказать, что вот этот КУСОЧЕК делает то, что мне нужно? smile  smile 
а можно небольшую расшифровку?)))
PM MAIL ICQ   Вверх
J2A
Дата 4.10.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 17.11.2005
Где: Омск

Репутация: 16
Всего: 18



Сопровождаемость второго варианта -- никакая.
--------------------
Be easy, stay cool
PM MAIL WWW Jabber   Вверх
pythonwin
Дата 4.10.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(J2A @  4.10.2006,  20:52 Найти цитируемый пост)
Сопровождаемость второго варианта -- никакая. 

в смысле читабельность?
PM WWW GTalk Jabber   Вверх
Artemios
Дата 4.10.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Красиво, только

Цитата(albertn @  4.10.2006,  11:35 Найти цитируемый пост)
map(alf.index,s)

дает 
Цитата

global name 's' is not defined

а так работает:
Код

map(alf.index,a)

Если кто-то ++albertn за меня, буду благодарен smile


proDiva, в первой строке внутри функции создает алфавит для 36-ричной системы счисления, во второй -- преобразование входной строки (36-чного числа) в 10-чное число.

Добавлено @ 16:09 
Цитата(pythonwin @  4.10.2006,  14:19 Найти цитируемый пост)
в смысле читабельность? 

нет, в смысле: дебаг и документация

Это сообщение отредактировал(а) Artemios - 4.10.2006, 16:08


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
pythonwin
Дата 4.10.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(Artemios @  4.10.2006,  22:59 Найти цитируемый пост)

Если кто-то ++albertn за меня, буду благодарен smile

не вопрос! smile

Цитата(Artemios @  4.10.2006,  22:59 Найти цитируемый пост)

нет, в смысле: дебаг и документация

ясно!

Это сообщение отредактировал(а) pythonwin - 4.10.2006, 16:20
PM WWW GTalk Jabber   Вверх
proDiva
Дата 4.10.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Для моего "ума" это пока непостижимо smile 
PM MAIL ICQ   Вверх
J2A
Дата 4.10.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 17.11.2005
Где: Омск

Репутация: 16
Всего: 18



Код
import this


Третья строчка. Читать три раза.

Не сопровождаемый - значит, что другой человек (либо этот же, но через n недель/месяцев) не поймет что этот код делает и что/где/как исправить в случае ошибки/улучшения.
--------------------
Be easy, stay cool
PM MAIL WWW Jabber   Вверх
Cr@$h
Дата 4.10.2006, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Плохо документированный, я бы сказал. Но на форуме и без этого код такой встречается, так что как есть. А раз код сразу не стал понятен, то объяснение запросить ничего не стоит.
PM MAIL ICQ   Вверх
Artemios
Дата 5.10.2006, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Куда  albertn подевался? smile

Цитата(proDiva @  4.10.2006,  16:36 Найти цитируемый пост)
Для моего "ума" это пока непостижимо
Цитата(Cr@$h @  4.10.2006,  21:45 Найти цитируемый пост)
А раз код сразу не стал понятен, то объяснение запросить ничего не стоит.


proDiva, 
Попытаюсь выполнить чужую работу smile
На входе в a -- строка, представляющая 36-ричное число.
Здесь:
Код

alf = map(str,range(0,10))+map(chr,range(ord('a'),ord('z')+1))

строится список символов, из которых могут быть составлены 36-чные числа (т.н. алфавит), получаем:

alf == ['0','1','2',...,'8','9','a','b','c',...,'x','y','z']

Строится он таким образом: range(0,10) дает список чисел от 0 до 9, map(str,range(0,10)) строит новый список, полученный применением функции, стоящей в map первым аргументом, к каждому элементу второго аргумента (который является списком). str -- функция, дающая строковое представление своего аргумента, здесь для нее аргументами являются числа, в итоге получаем список ['0','1',...,'9'].
Далее,
Код

map(chr,range(ord('a'),ord('z')+1))

это выражение строит список ['a','b',...,'y','z'] так: 
берем порядковый номер первого англицкого символа ord('a'), и бежим от него до порядкового номера последнего символа ord('z'), а так как range верхнюю границу не включает в перечисление, а 'z' мы тоже хотим использовать, то делаем +1, и в итоге 
range(ord('a'),ord('z')+1) дает список, в котором перечисляются порядковые номера всего буржуйского алфавита от a до z. (Тут, конечно, можно было поговорить про кодовые таблицы, но нам это не важно, важно только, что символы от a до z идут по порядку друг за другом). Далее, к полученному списку порядковых номеров применяем обратную для ord операцию chr -- функция по порядковому номеру возвращает сам символ, то есть после map(chr,...) -- имеем список всех сиволов ['a',...,'z'], который и сшиваем с уже имевшимся ['0',...,'9'] и получаем уже описанный alf.
Отметим такое свойство построенного alf, что индекс каждого элемента этого списка есть значение числа, представляемого данным символом в 36-чной системе счисления, т.е.
alf[0] == '0'
...
alf[9] == '9'
alf[10] == 'a'
alf[11] == 'b'
...
alf[36] == 'z'

или, та же запись в обратную сторону:
alf.index('0') == 0 (***)
...
alf.index('9') == 9
alf.index('a') == 10
alf.index('b') == 11
...
alf.index('z') == 36 (***)


А теперь вспомним школьную математику: запись числа в позиционной системе счисления.
Пусть для записи числа используется P символов некоторого алфавита, соответственно имеется P-ичная позиционная система счисления.
Если число записано в виде A0 A1 A2 ... An, где значение каждого символа Ai удовлетворяет условию
0<=Ai<P , то значением самого числа будет 
A0*P^n + A1*P^(n-1) + A2*P^(n-2) + ... + An*P^0 (знаком ^ я обозначаю возведение в степень).
Это выражение можно переписать в реккурентной форме:
(...(((A0*P + A1)*P + A2)*P + A3)...)*P + An ,
то есть вводим некоторую переменную-накопитель B,
присваиваем B = A0,
а за тем для i от 1 до n повторяем:
B = B*P + Ai (+++)

Теперь разберем вторую строчку с учетом математики smile :
Код

return reduce(lambda x,y:x*len(alf)+y,map(alf.index,a))

В переменной a у нас строка символов, представляющая нужное 36-чное число (в позиционной системе счисления). map(alf.index,a) создает список значений этих символов (смотри выделенный мной вот так (***) столбик). Далее, к полученному списку позиционных значений применяем формулу (+++), реккурентность обеспечивает функция reduce, а длина алфавита len(alf) и есть разрядность нашей системы счисления (в данном случае 36). На выходе имеем искомое значение числа.

albertn, с тебя пиво smile smile

Добавлено @ 02:04 
Цитата(J2A @  4.10.2006,  18:35 Найти цитируемый пост)
Не сопровождаемый - значит, что другой человек (либо этот же, но через n недель/месяцев) не поймет что этот код делает и что/где/как исправить в случае ошибки/улучшения. 


В данном конкретном случае не согласен: здесь как в математике -- нет смысла помнить конкретное доказательство простой теоремы, если знаешь сам принцип доказательства. Здесь - позиционная система счисления, а конкретный алгоритм на конкретном языке - дело в пять минут восстановимое. 
В общем сплошные "конкретны" smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 5.10.2006, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
albertn, с тебя пиво smile smile

С меня ящик пива))) Расписал лучше препода на занятии))))
PM MAIL ICQ   Вверх
pythonwin
Дата 5.10.2006, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(proDiva @  5.10.2006,  15:12 Найти цитируемый пост)

С меня ящик пива))) Расписал лучше препода на занятии))))



Artemios, и есть преподователь. smile


Artemios, +1

Для модераторов - хорошоий пример для wiki по питону. smile
PM WWW GTalk Jabber   Вверх
proDiva
Дата 5.10.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(pythonwin @  5.10.2006,  08:16 Найти цитируемый пост)
Artemios, и есть преподователь. smile

 smile Не зря у меня возникла такая ассоциация)) Почему у меня в свое время не было таких преподавателей? smile  Кстати, не в тему, но интересно, в каких-нибудь ВУЗах преподают Python?
PM MAIL ICQ   Вверх
pythonwin
Дата 5.10.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



PM WWW GTalk Jabber   Вверх
albertn
Дата 5.10.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
Куда  albertn подевался? smile

Что вы ко мне пристали, пары у меня smile

Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
albertn, с тебя пиво smile smile

Да за такое разъяснение можно. 8 Октября буду в Саратове поставлю smile

Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
В данном конкретном случае не согласен: здесь как в математике -- нет смысла помнить конкретное доказательство простой теоремы, если знаешь сам принцип доказательства.
Дело человек говорит. Как математик полностью поддерживаю.

Artemios с меня тоже +1
PM WWW ICQ   Вверх
proDiva
Дата 5.10.2006, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Парни, могу тему закрывать?
PM MAIL ICQ   Вверх
pythonwin
Дата 5.10.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(proDiva @  5.10.2006,  20:26 Найти цитируемый пост)
Парни, могу тему закрывать? 

я не против. smile
PM WWW GTalk Jabber   Вверх
Artemios
Дата 6.10.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Цитата(proDiva @  5.10.2006,  08:12 Найти цитируемый пост)
С меня ящик пива)))
 smile

Цитата(albertn @  5.10.2006,  09:57 Найти цитируемый пост)
8 Октября буду в Саратове

Если что, 9-й корпус (мех-мат), 301 или 302 к., Артём smile




--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 6.10.2006, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(Artemios @  6.10.2006,  00:51 Найти цитируемый пост)
Если что, 9-й корпус (мех-мат), 301 или 302 к., Артём smile

8 октября - воскресенье....... удивительная преданность работе smile 
PM MAIL ICQ   Вверх
Artemios
Дата 6.10.2006, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Извиняюсь за,  smile 

Цитата(proDiva @  6.10.2006,  08:24 Найти цитируемый пост)
8 октября - воскресенье....... удивительная преданность работе


albertn к нам на олимпиаду собирается, не думаю, что его пребывание одним днем ограничится smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 6.10.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(Artemios @  6.10.2006,  09:03 Найти цитируемый пост)
albertn к нам на олимпиаду собирается

Ну раз на олимпиаду, тогда будем болеть   smile 
Ну что, что  smile  
PM MAIL ICQ   Вверх
Cr@$h
Дата 6.10.2006, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Да никакой это ни оффтоп smile Тема разрешилась, грех о благодарностях не поговорить  smile А встреча Винградовцев -- это вообще святое. smile 
PM MAIL ICQ   Вверх
Cr@$h
Дата 7.10.2006, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(proDiva @  5.10.2006,  14:26 Найти цитируемый пост)
Парни, могу тему закрывать?

Скорее, пометить решённой. Это дело автора, и, если он решает, что ему ответили, и он больше не ждёт конкретного ответа, то пускай смело ставит галку. В такие темы можно писать как и в любые другие, если окажется, что тема раскрыта неполностью и обсуждение идёт дальше, то галку можно снять даже. В нашем случае всё нормально. Дальше можно говорить, сколько угодно, раз вопрос решён, пускай галка и стоит.  smile 
PM MAIL ICQ   Вверх
Artemios
Дата 9.10.2006, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Ну вот, в своем посте от 5.10.2006, 01:59 я допустил ошибку, а никто и не поправил smile
Вместо строчек:
Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
alf[36] == 'z'

и
Цитата(Artemios @  5.10.2006,  01:59 Найти цитируемый пост)
alf.index('z') == 36

должно быть:


alf[35] == 'z'

alf.index('z') == 35



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
pythonwin
Дата 9.10.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Artemios, +1
PM WWW GTalk Jabber   Вверх
setq
Дата 9.10.2006, 12:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Artemios, -1. Ты разочаровал нас))

Шутка. Глупая.
  Вверх
Artemios
Дата 9.10.2006, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Цитата(setq @  9.10.2006,  12:11 Найти цитируемый пост)
Шутка. Глупая. 

smile

pythonwin, 
Цитата(pythonwin @  9.10.2006,  11:27 Найти цитируемый пост)
Artemios, +1 

спасибо, но не слишком ли мне жирнО будет 4-й плюс за один топик? smile

P.S. albertn кажется должен быть уже в Саратове, но пока еще не объявлялся.

Это сообщение отредактировал(а) Artemios - 9.10.2006, 12:46


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 9.10.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(Artemios @  9.10.2006,  06:57 Найти цитируемый пост)
Ну вот, в своем посте от 5.10.2006, 01:59 я допустил ошибку, а никто и не поправил smile

Ну вот, сразу выявилось, что я так и не попробовала этот метод smile 
Я попробую, честное слово. Щас пытаюсь изучить теорию по использованным функциям, скоро дойду и до практики. 
PM MAIL ICQ   Вверх
pythonwin
Дата 9.10.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(Artemios @  9.10.2006,  19:31 Найти цитируемый пост)

P.S. albertn кажется должен быть уже в Саратове, но пока еще не объявлялся.

пить охота? smile
PM WWW GTalk Jabber   Вверх
Artemios
Дата 9.10.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Цитата(pythonwin @  9.10.2006,  14:07 Найти цитируемый пост)
пить охота?

smile Нет, общаться
Кстати, он появился, и еще 2 олимпиадника из Ставрополя.


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
pythonwin
Дата 9.10.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(Artemios @  9.10.2006,  22:00 Найти цитируемый пост)
Кстати, он появился, и еще 2 олимпиадника из Ставрополя. 

Привет передавай! smile
PM WWW GTalk Jabber   Вверх
Artemios
Дата 11.10.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Мда...
В тему вопроса топика: 
Цитата(proDiva @  4.10.2006,  11:21 Найти цитируемый пост)
преобразовать из 36-ричной системы в 10-ричную.

а ларчик просто открывался:
Код

def reis(self, a):
    return int(a,36)


smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 11.10.2006, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Artemios, почему это элементарное решение нашлось только на 3-ей странице темы?)))
PM MAIL ICQ   Вверх
Artemios
Дата 11.10.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Потому что случайно посмотрел:
Код

print int.__doc__


smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
proDiva
Дата 11.10.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Цитата(Artemios @  11.10.2006,  11:56 Найти цитируемый пост)
Потому что случайно посмотрел:

Ну хорошо, что вообще посмотрел)))
PM MAIL ICQ   Вверх
pythonwin
Дата 11.10.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Artemios, а у меня на этот код:
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in ?
    reis([], 1)
  File "<pyshell#6>", line 2, in reis
    return int(a,36)
TypeError: int() can't convert non-string with explicit base


PM WWW GTalk Jabber   Вверх
Artemios
Дата 11.10.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Цитата(pythonwin @  11.10.2006,  13:19 Найти цитируемый пост)
 int() can't convert non-string with explicit base

А что аргументами передавал?
Код

~> python
Python 2.4.2 (#1, May  2 2006, 08:13:46)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> int('1',36)
1
>>> int('d',36)
13
>>> int('z',36)
35
>>> int('a234zc',36)
608167416
>>> print int.__doc__
int(x[, base]) -> integer

Convert a string or number to an integer, if possible.  A floating point
argument will be truncated towards zero (this does not include a string
representation of a floating point number!)  When converting a string, use
the optional base.  It is an error to supply a base when converting a
non-string. If the argument is outside the integer range a long object
will be returned instead.
>>>


первый аргумент - строка, второй - число (база).



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
pythonwin
Дата 11.10.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Artemios, спасибо, - уже сам прочитал и поэксперементировал.


PM WWW GTalk Jabber   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1133 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.