Задача: имеем на входе строку, слова в которой разделены пробелом. Если в строке попадается число, то вставляем точки как разделители разрядов. На выходе нужно получить строку.
Например: text =
'123456' => '123.456'
'333' => '333'
'9999999' => '9.999.999'
'123456 567890' => '123.456 567.890'
'price is 5799' => 'price is 5.799'
'he was born in 1966th' => 'he was born in 1966th'
воскресенье, 29 декабря 2013 г.
вторник, 24 декабря 2013 г.
Python конвертация из арабских в греческие
Цифр в римской системе всего 7 вот они:
| Римская цифра | Десятичный эквивалент |
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
понедельник, 23 декабря 2013 г.
Excel 2003 ограничение на количество строк и столбцов
В Excel 2003 такое ограничение на количество строк и столбцов:
65536 строк
256 столбцов
65536 строк
256 столбцов
пятница, 20 декабря 2013 г.
Linux подключение дополнительного IP
Иногда нужно настроить новую железку с IP по-умолчанию не из моей сети. Для этого надо добавить новый сетевой интерфейс с адресом из сети железки.
для добавления
sudo ifconfig eth0:1 <IP>
для удаления
sudo ifconfig eth0:1 del <IP>
sudo ifconfig eth0:1 down
или после перезагрузки настройка пропадет
eth0:2 и т.д. аналогично можно добавлять еще интерфейсы
для добавления
sudo ifconfig eth0:1 <IP>
для удаления
sudo ifconfig eth0:1 del <IP>
sudo ifconfig eth0:1 down
или после перезагрузки настройка пропадет
eth0:2 и т.д. аналогично можно добавлять еще интерфейсы
четверг, 19 декабря 2013 г.
Python создаём словарь из двух списков
Задача: из двух списков получить словарь, где первый список ключи словаря, второй - значения
key_dict = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]
value_dict = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M']
dict_out = {}
for x, y in zip(key_dict, value_dict):
dict_out[x] = y
print dict_out
key_dict = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]
value_dict = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M']
dict_out = {}
for x, y in zip(key_dict, value_dict):
dict_out[x] = y
print dict_out
{1: 'I', 4: 'IV', 5: 'V', 9: 'IX', 10: 'X', 40: 'XL', 50: 'L', 90: 'XC', 100: 'C', 400: 'CD', 500: 'D', 900: 'CM', 1000: 'M'}
zip(key_dict, value_dict) создает список такого вида [(1, 'I'), (4, 'IV') ...]суббота, 14 декабря 2013 г.
Python преобразовать список из [1, [2, 3], 4] в [1, 2, 3, 4]
Задача: преобразовать список из такого типа [1, [2, 3], 4] в [1, 2, 3, 4]
check_lst = [[[2]], [4, [5, 6, [6], 6, 6, 6]]]
def check(lst):
check_bool = True
out_lst = []
copy_lst = list(lst)
while check_bool:
check_bool = False
for i in copy_lst:
if isinstance(i, list):
check_bool = True
out_lst.extend(i)
else:
out_lst.append(i)
if check_bool:
copy_lst = list(out_lst)
out_lst = []
return out_lst
print check(check_lst)
[2, 4, 5, 6, 6, 6, 6, 6]Лучшее решение
пятница, 13 декабря 2013 г.
Python использование set с классом
Задача: создадим класс, создадим пустой set. Заполним set экземплярами созданного класса. Для примера пусть экземпляры будут случайным целым числом из диапазона 0-9. Теперь мы хотим удалить из set-а все экземпляры класса значения которых совпадают с "9" и "8"
Где это можно применить на практике? В gamedeveloping игра "Астероид", в set добавляем все летающие по экрану камни, пробегаемся по set-у и сверяем дистанцию между кораблем и камнями:
для этого вычисляем дистанцию между координатами центров фигур
>>> def dist(p, q):
>>> return math.sqrt((p[0] - q[0]) ** 2 + (p[1] - q[1]) ** 2)
и вычитаем радиус корабля и радиус камня, если получившееся значение <= 0 значит столкновение, то добавляем экземпляр класса камень во временный set. После окончания обхода set-а с камнями - удаляем из этого set-а временный set (один или более камней при столкновении) и уменьшаем счетчик жизней кораблю.
Где это можно применить на практике? В gamedeveloping игра "Астероид", в set добавляем все летающие по экрану камни, пробегаемся по set-у и сверяем дистанцию между кораблем и камнями:
для этого вычисляем дистанцию между координатами центров фигур
>>> def dist(p, q):
>>> return math.sqrt((p[0] - q[0]) ** 2 + (p[1] - q[1]) ** 2)
и вычитаем радиус корабля и радиус камня, если получившееся значение <= 0 значит столкновение, то добавляем экземпляр класса камень во временный set. После окончания обхода set-а с камнями - удаляем из этого set-а временный set (один или более камней при столкновении) и уменьшаем счетчик жизней кораблю.
Подписаться на:
Сообщения (Atom)