Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2015 23:35:02

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

Xryst
Выходные даны: строка “Everybody sing a song: <текст песенки>”.
Xryst
Входные данные: 2 3 1
Результат: Everybody sing a song: la - la la - la la - la!
Входные данные: 1 0 0
Результат: Everybody sing a song:.
def f(x, y, z):
    c = 'la' + ' - la' * (x - 1)
    return c * (y > 0) + (' ' + c) * (y - 1) + '.!'[z]
print('Everybody sing a song:' + f(2,3,1))
Everybody sing a song:la - la la - la la - la!



————————————————
-*- Simple is better than complex -*-

Офлайн

#2 Янв. 31, 2015 23:38:23

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

я бы вот так сделал

def f(x, y, z):
    c = ' la' + ' - la' * (x - 1)
    return c * y + '.!'[z]



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Янв. 31, 2015 23:43:29)

Офлайн

#3 Фев. 1, 2015 00:07:02

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

а вот первый вариант я бы так переделал

def f(x, y, z):
    return ' -'.join([' la'] * x) * y + '.!'[z]
Вы уж извините что я так много вопросов задаю, прост оч интересно :)



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Фев. 1, 2015 00:07:54)

Офлайн

#4 Фев. 1, 2015 10:41:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

terabayt
я бы вот так сделал
Тогда начальный пробел надо удалять из получившейся строки. В песенке не должно быть лишних пробелов по краям.



Отредактировано py.user.next (Фев. 1, 2015 10:42:01)

Офлайн

#5 Фев. 1, 2015 12:17:14

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

py.user.next
Тогда начальный пробел надо удалять из получившейся строки. В песенке не должно быть лишних пробелов по краям.
не, после Everybody sing a song: если есть куплеты то должен быть пробел, а иначе - нет
Входные данные: 2 3 1
Результат: Everybody sing a song: la - la la - la la - la!
Входные данные: 1 0 0
Результат: Everybody sing a song:.



————————————————
-*- Simple is better than complex -*-

Офлайн

#6 Фев. 2, 2015 06:16:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

Xryst
Выходные даны: строка “Everybody sing a song: <текст песенки>”
Видишь, пробел не входит в <текст песенки>. То есть пробелом управляет код, в котором формируется конечная строка, включающая песенку.

Он по всем правилам не должен входить в песенку. Потому что разделитель песенок тогда можно варьировать снаружи.



Отредактировано py.user.next (Фев. 2, 2015 06:17:39)

Офлайн

#7 Апрель 10, 2015 19:41:07

aas
Зарегистрирован: 2015-04-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

terabayt
ссылка
скажите, есть ли рабочий вариант этой программы?
приведенный по ссылке вариант не работает
выдает синтаксическую ошибку на апостроф
спасибо

Офлайн

#8 Апрель 10, 2015 21:38:01

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как решить данною задачу без if??

aas
скажите, есть ли рабочий вариант этой программы?
та он работал…
aas
приведенный по ссылке вариант не работает
выдает синтаксическую ошибку на апостроф
покажите ошибку



————————————————
-*- Simple is better than complex -*-

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version