Мне нужно вычислить с заданным числом, сколько «пятерок», «двоек» и «единиц» может попасть в эти числа. Извините, мой английский немного ограничен для такого рода объяснений :) Может быть, пример лучше:
Упражнение: печать штампов (8). Результат должен быть: (1, 1, 1) (один штамп 5 пенсов, один штамп 2 пункта и один штамп 1 пенал).
Я нашел способ добиться этого, но tuple () печатает результат и «None», и я не знаю почему. Я также хотел бы знать, есть ли лучший и более короткий способ получить правильный результат.
Вот что я сделал:
def stamps(dinero):
p5=dinero/5
p5a=p5*5
resultado1=dinero-p5a
dinero=resultado1
p2=dinero/2
p2a=p2*2
resultado2=dinero-p2a
dinero=resultado2
p1=dinero/1
p1a=p1*1
resultado3=dinero-p1a
dinero=resultado3
print tuple([p5,p2,p1])
Результат, который я получаю: print stamps (8) - (1, 1, 1) None
Обновление: Я нашел лучшее решение, я размещаю его здесь на всякий случай, если кто-то поинтересуется лучшим решением:
def stamps(n):
#Basically, thats the same as return n/5, n%5/2, n%5%2
return n/5, (n-5*(n/5))/2, (n-5*(n/5))-2*((n-5*(n/5))/2)
print print_stamps(8)
? Обычно цикл командной строки не печатает None - person David Robinson   schedule 22.07.2013print stamps(8)
, и да, там написано "печать", а затем - процедура. Для упражнения требуются печатные штампы (8), как я могу избежать «Нет» внутри процедуры? Кроме того, вы упомянули цикл, но там нет цикла, о котором я знаю (if, for, while ...) :) Еще раз спасибо! - person Rosamunda   schedule 22.07.2013