Мастерство программирования » Страница 5

-

Программирование на Python



aleksei1987


репутация:
на сайте с 1970 года
сообщений:

#41

Еще раз здравствуйте. Жаль что никто не ответил на мой предыдущий вопрос... Ну да ладно. Вопрос другой. Почему после import codecs не работает простая функция open. И ошибка не вылетает. Просто не работает. Нужно именно codecs.open использовать.

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#42

import codecs

open('d:\1', 'wb').write('abc')

open('d:\1').read()

Все прекрасно работает. Откуда такой вывод о модуле?

Virtuos86


репутация: 101
на сайте с 2008 года
сообщений: 802

где-то в России

#43

aleksei1987, мне жаль, что на твои вопросы вообще кто-то отвечает, потому что задавать их надо в соответствующей теме форума -> Python, а здесь ты разводишь мусор. Каким образом можно пройти мимо самой первой и самой большой темы форума и решить задать вопрос здесь, я не понимаю.

Почитай шапки той и этой темы и прикинь, которая больше подходит под твои нужды.

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#44

Задачка:
сформировать список всех возможных вариантов последовательности символов. И чтоб без повторов.
Пример:
input = 'abc'
output = ['abc', 'acb', 'bac', 'bca', 'cba', 'cab']

Virtuos86


репутация: 101
на сайте с 2008 года
сообщений: 802

где-то в России

#45

Нагуглил по памяти доку к модулю. Адаптировал к Python 2.2.
itertools

from __future__ import generators

def permutations (iterable, r=None):
pool = tuple(iterable)
n = len(pool)
if r is None: r = n
if r > n: return
indices = range(n)
cycles = range(n, n-r, -1)
yield ''.join([pool[i] for i in indices[:r]])
reversed_list = range(r)
reversed_list.reverse()
while n:
for i in reversed_list:
cycles[i] -= 1
if cycles[i] == 0:
indices[i:] = indices[i+1:] + indices[i:i+1]
cycles[i] = n - i
else:
j = cycles[i]
indices[i], indices[-j] = indices[-j], indices[i]
yield ''.join([pool[i] for i in indices[:r]])
break
else: return

print list(permutations('abc'))

Не тру, но для затравки пойдёт fellow.

dos12345


репутация:
на сайте с 1970 года
сообщений:

#46

всем привет помогите решать задачу:
Например два раз нажать кнопку одновременно должна "K"
пример скрипт(одна раз нажать кнопку)
if event[keycode] == key_codes.EKey2:
event[keycode] = 74 #("J")
#pyS60

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#48

Оживлю тему задачкой, хотя ничего сложненького не придумалось.
Есть список допустим range(10). Необходима функция, возвращающая тавлицу вида [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]], т.е. необходимо разбить с некоторым заданным шагом. В данном примере две строки таблицы по 4 элемента и то, что осталось.

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 53

#49

Если по-старинке


def foo(lst, step):
return [lst[i:i+step] for i in xrange(0, len(lst), step)]
print(foo(range(10), 4))

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#50

Вот интересную задачку нарыл


В современном мире вы встречаетесь с огромным количеством телефонных номеров, которые со временем становятся всё длиннее и длиннее. И вам приходится запоминать эти номера. Одним из простых способов запоминания является сопоставление букв каждой цифре, как показано на следующем рисунке:
1 ij 2 abc 3 def
4 gh 5 kl 6 mn
7 prs 8 tuv 9 wxy
0 oqz
Таким образом, каждому слову или группе слов может быть сопоставлен уникальный номер, так что можно запоминать слова вместо телефонных номеров. Очевидно, есть особый шарм в том, чтобы найти простую взаимосвязь между словом, используемым для запоминания телефонного номера, и владельцем этого номера. Так, телефонный номер 941837296 вашего друга, играющего в шахматы, может быть прочитан как WHITEPAWN (белая пешка), а номер 2855304 Вашего любимого учителя может быть прочитан как BULLDOG (бульдог).Напишите программу, находящую самую короткую последовательность слов (имеющую наименьшее количество слов), которая соответствует заданному номеру телефона и заданному списку слов. Соответствие описано на рисунке выше.Исходные данныеВвод состоит из набора тестов. Первая строка каждого теста содержит номер телефона, к которому нужно подобрать мнемонику. Номер состоит не более чем из 100 цифр. Вторая строка содержит общее количество слов в словаре (максимум 50 000). Каждая из оставшихся строк содержит одно слово, состоящее не более чем из 50 строчных латинских букв. Общий размер ввода не превосходит 300 килобайт. Последняя строка ввода содержит число −1.РезультатКаждая строка вывода должна содержать кратчайшую последовательность слов, найденную вашей программой. Слова должны быть разделены одиночными пробелами. Если для входных данных нет решения, соответствующая строка вывода должна содержать текст “No solution.”. Если существует несколько решений, имеющих одинаковое количество слов, можете выбрать любое из них.Пример исходные данные результат 7325189087
5
it
your
reality
real
our
4294967296
5
it
your
reality
real
our
-1
reality our
No solution.
Источник задачи: Central European Olympiad in Informatics 1999


Яндекс.Метрика