nnnrrrzzz
Ноя. 9, 2010 11:58:33
Всем привет!
Программирование начал изучать совсем недавно…может, для кого-то и глупый вопрос.
Суть задачи в следующем:
Преобразовать строку в формат, приведенный после каждой переменной с исходным кодом
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
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
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
evilempirer
Ноя. 10, 2010 11:07:26
Вы явно наркотических плодов перебрали =) Опишите проблему нормально что на входе и что надо получить на выходе!
nnnrrrzzz
Ноя. 10, 2010 13:06:59
Вход
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
pill
Ноя. 10, 2010 13:31:31
В чем суть первого преобразования так и не понял, по поводу второго тоже могу ошибаться но:
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]
nnnrrrzzz
Ноя. 12, 2010 01:36:53
ничего делать с ними не нужно потом
“otv4 = ”61 - плоды; 62 - наркотические возбуждающие средства;…“ - это в коде
”61.(плоды)…" - вывод на монитор
pill
Ноя. 12, 2010 07:46:06
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
для первого варианта нужно преобразовать букву в число…
nnnrrrzzz
Ноя. 14, 2010 15:24:52
спасибо