Some HAT...

= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 1076
| Вход | Регистрация
нет
фото
Автор:  Anabar
Дата:  12-Mar-2007 15:36 (gmt = -3)

Такое решение

Во-первых, при оформелнии кода пишут [соde:python], а не [соdе=рython] .

Во-вторых, если Вы хотите оформить "вывод в консоль", можно просто написать [соdе]...[/соdе] без спецификации языка.

В-третьих вот такое решение предлагается:

  1 #!/usr/local/bin/python
  2 # -*- coding: koi8-r -*-
  3 
  4 from string import ljust
  5 
  6 def dec(i_str):
  7     'функция позволяет нормально напечатать в виндовой консоли'
  8     return unicode( i_str, 'koi8-r').encode('cp866') 
  9 
 10 # вводим строку целиком
 11 sentence = raw_input(dec('введите предложение : '));
 12 print sentence
 13 
 14 # тестовые строки, чтоб не вводить всё время
 15 sentence =  dec('лом о смокинги гни комсомол')
 16 #sentence =  'lom o smokingi gni komsomoll'
 17 
 18 # разбиваем предложение по словам
 19 words = sentence.split()
 20 
 21 # длина максимального слова
 22 maxLen = max( map(len, words) )
 23 
 24 # дополняем короткие слова пробелами до требуемой длины
 25 normalWords =  map( lambda z : ljust(z, maxLen), words)
 26 
 27 # делаем так, что бы были пробелы между столбцами.
 28 #print range(maxLen, -1, -1)
 29 for k in range(maxLen, -1, -1):
 30     normalWords.insert(k, ' '*maxLen )
 31     #normalWords.insert(k, ' '*maxLen ) # столько раз сколько нужно пробелов 
 32 
 33 # делаем единую строку
 34 ess = ''.join(normalWords)
 35 #print '"'+ess+'"' # проверка
 36 
 37 print 4*'\n'
 38 # печатаем с помощью slice 
 39 for k in range(0, maxLen):
 40     print ess[k::maxLen] # (начиная с символа номер k, до конца строки, с шагом maxLen)
 41 
 42 
 43 print 2*'\n'
 44 raw_input('Press Ctrl+Shift+F11 to finish')

Общее замечание по Вашим функциям: Вы пока что не пользуетесь преимуществами питона и его встроенными очень полезными фукциями. Посмотрите на приведëнный код и многое станет понятно.

Удачи



все сообщения ветви:
  • 1075 Функции в python  Kengyry  | 12-Mar-2007, 01:29 | просмотров: 4392
    • 1076 Такое решение  Anabar  | 12-Mar-2007, 15:36 | просмотров: 4414   <==

Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.505