Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2010 11:58:33

nnnrrrzzz
От:
Зарегистрирован: 2010-11-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

Всем привет!
Программирование начал изучать совсем недавно…может, для кого-то и глупый вопрос.
Суть задачи в следующем:

Преобразовать строку в формат, приведенный после каждой переменной с исходным кодом
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
otv1 = “1г, 2в, 3д, 4д, 5в, 6а, 7г, 8б, 9д, 10в, 11б, 12д, 13в, 14а, 15г, 16а, 17в, 18б, 19д, 20г”

1.4
1.3
1.5
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
otv4 = “61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания”

61.(плоды)
62.(наркотические возбуждающие средства)
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
otv5 = “77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)”

77.85
78.630
79.235
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………



Офлайн

#2 Ноя. 10, 2010 11:07:26

evilempirer
От:
Зарегистрирован: 2010-06-07
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

Вы явно наркотических плодов перебрали =) Опишите проблему нормально что на входе и что надо получить на выходе!



Офлайн

#3 Ноя. 10, 2010 13:06:59

nnnrrrzzz
От:
Зарегистрирован: 2010-11-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

Вход
otv1 = “1г, 2в, 3д, 4д, 5в, 6а, 7г, 8б, 9д, 10в, 11б, 12д, 13в, 14а, 15г, 16а, 17в, 18б, 19д, 20г”

Выход
1.4
1.3
1.5
_______________________________________________________________________________________________________________________________________________________
Вход
otv4 = “61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания”

Выход
61.(плоды)
62.(наркотические возбуждающие средства)
_______________________________________________________________________________________________________________________________________________________
Вход
otv5 = “77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)”

Выход
77.85
78.630
79.235



Офлайн

#4 Ноя. 10, 2010 13:31:31

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

В чем суть первого преобразования так и не понял, по поводу второго тоже могу ошибаться но:

list_of_tuples = re.findall('(\d+) - (.+?);', otv4)
на выходе получаем список кортежей:
>>> for i in list_of_tuples:
print
for j in i:
print j,
61 плоды
62 наркотические возбуждающие средства

74 положение в пространстве
75 пожелания (санкции)

ну и дальше с ними соответственно можно делать что-то полезное.
Или не то?

UPD:
для третьего варианта:
>>> re.findall('(\d+)\((\d+)\)', otv5)
если нужно получить список строк вида первое.второе, тогда .join поможет…
res = ['.'.join(tup) for tup in ls]



Отредактировано (Ноя. 10, 2010 13:39:56)

Офлайн

#5 Ноя. 12, 2010 01:36:53

nnnrrrzzz
От:
Зарегистрирован: 2010-11-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

ничего делать с ними не нужно потом
“otv4 = ”61 - плоды; 62 - наркотические возбуждающие средства;…“ - это в коде
”61.(плоды)…" - вывод на монитор



Офлайн

#6 Ноя. 12, 2010 07:46:06

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

nnnrrrzzz
ничего делать с ними не нужно потом
“otv4 = ”61 - плоды; 62 - наркотические возбуждающие средства;…“ - это в коде
”61.(плоды)…" - вывод на монитор
import re
otv4 = "61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания"
list_of_tuples = re.findall('(\d+) - (.+?);', otv4)
result = ['%s.(%s)'%tup for tup in list_of_tuples]
for i in result[:5]:
print i

61.(плоды)
62.(наркотические возбуждающие средства)
63.(приборы)
64.(органы чувств)
65.(отражение)


otv5 = "77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)"
list_of_tuples = re.findall('(\d+)\((\d+)', otv5)
result = ['%s.%s'%tup for tup in list_of_tuples]
for i in result:
print i

77.85
78.630
79.235
...
93.36
94.5
95.42
96.4
для первого варианта нужно преобразовать букву в число…



Офлайн

#7 Ноя. 14, 2010 15:24:52

nnnrrrzzz
От:
Зарегистрирован: 2010-11-09
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразовать строку в формат

спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version